From owner-svn-src-head@freebsd.org Sun Oct 6 01:35:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99488143307; Sun, 6 Oct 2019 01:35: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 46m5lm2DMlz4MPc; Sun, 6 Oct 2019 01:35: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 311E01DD69; Sun, 6 Oct 2019 01:35: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 x961ZWac052042; Sun, 6 Oct 2019 01:35:32 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x961ZWOR052041; Sun, 6 Oct 2019 01:35:32 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060135.x961ZWOR052041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 6 Oct 2019 01:35:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353131 - head/sys/riscv/include X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/riscv/include X-SVN-Commit-Revision: 353131 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 01:35:32 -0000 Author: kevans Date: Sun Oct 6 01:35:31 2019 New Revision: 353131 URL: https://svnweb.freebsd.org/changeset/base/353131 Log: riscv: use the common sub-word {,f}cmpset implementation Reviewed by: mhorne Differential Revision: https://reviews.freebsd.org/D21888 Modified: head/sys/riscv/include/atomic.h Modified: head/sys/riscv/include/atomic.h ============================================================================== --- head/sys/riscv/include/atomic.h Sat Oct 5 22:17:54 2019 (r353130) +++ head/sys/riscv/include/atomic.h Sun Oct 6 01:35:31 2019 (r353131) @@ -44,6 +44,12 @@ #define rmb() fence() #define wmb() fence() +static __inline int atomic_cmpset_8(__volatile uint8_t *, uint8_t, uint8_t); +static __inline int atomic_fcmpset_8(__volatile uint8_t *, uint8_t *, uint8_t); +static __inline int atomic_cmpset_16(__volatile uint16_t *, uint16_t, uint16_t); +static __inline int atomic_fcmpset_16(__volatile uint16_t *, uint16_t *, + uint16_t); + #define ATOMIC_ACQ_REL(NAME, WIDTH) \ static __inline void \ atomic_##NAME##_acq_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\ @@ -59,6 +65,66 @@ atomic_##NAME##_rel_##WIDTH(__volatile uint##WIDTH##_t atomic_##NAME##_##WIDTH(p, v); \ } +#define ATOMIC_CMPSET_ACQ_REL(WIDTH) \ +static __inline int \ +atomic_cmpset_acq_##WIDTH(__volatile uint##WIDTH##_t *p, \ + uint##WIDTH##_t cmpval, uint##WIDTH##_t newval) \ +{ \ + int retval; \ + \ + retval = atomic_cmpset_##WIDTH(p, cmpval, newval); \ + fence(); \ + return (retval); \ +} \ + \ +static __inline int \ +atomic_cmpset_rel_##WIDTH(__volatile uint##WIDTH##_t *p, \ + uint##WIDTH##_t cmpval, uint##WIDTH##_t newval) \ +{ \ + fence(); \ + return (atomic_cmpset_##WIDTH(p, cmpval, newval)); \ +} + +#define ATOMIC_FCMPSET_ACQ_REL(WIDTH) \ +static __inline int \ +atomic_fcmpset_acq_##WIDTH(__volatile uint##WIDTH##_t *p, \ + uint##WIDTH##_t *cmpval, uint##WIDTH##_t newval) \ +{ \ + int retval; \ + \ + retval = atomic_fcmpset_##WIDTH(p, cmpval, newval); \ + fence(); \ + return (retval); \ +} \ + \ +static __inline int \ +atomic_fcmpset_rel_##WIDTH(__volatile uint##WIDTH##_t *p, \ + uint##WIDTH##_t *cmpval, uint##WIDTH##_t newval) \ +{ \ + fence(); \ + return (atomic_fcmpset_##WIDTH(p, cmpval, newval)); \ +} + +ATOMIC_CMPSET_ACQ_REL(8); +ATOMIC_FCMPSET_ACQ_REL(8); +ATOMIC_CMPSET_ACQ_REL(16); +ATOMIC_FCMPSET_ACQ_REL(16); + +#define atomic_cmpset_char atomic_cmpset_8 +#define atomic_cmpset_acq_char atomic_cmpset_acq_8 +#define atomic_cmpset_rel_char atomic_cmpset_rel_8 +#define atomic_fcmpset_char atomic_fcmpset_8 +#define atomic_fcmpset_acq_char atomic_fcmpset_acq_8 +#define atomic_fcmpset_rel_char atomic_fcmpset_rel_8 + + +#define atomic_cmpset_short atomic_cmpset_16 +#define atomic_cmpset_acq_short atomic_cmpset_acq_16 +#define atomic_cmpset_rel_short atomic_cmpset_rel_16 +#define atomic_fcmpset_short atomic_fcmpset_16 +#define atomic_fcmpset_acq_short atomic_fcmpset_acq_16 +#define atomic_fcmpset_rel_short atomic_fcmpset_rel_16 + static __inline void atomic_add_32(volatile uint32_t *p, uint32_t val) { @@ -190,48 +256,9 @@ ATOMIC_ACQ_REL(clear, 32) ATOMIC_ACQ_REL(add, 32) ATOMIC_ACQ_REL(subtract, 32) -static __inline int -atomic_cmpset_acq_32(volatile uint32_t *p, uint32_t cmpval, uint32_t newval) -{ - int res; +ATOMIC_CMPSET_ACQ_REL(32); +ATOMIC_FCMPSET_ACQ_REL(32); - res = atomic_cmpset_32(p, cmpval, newval); - - fence(); - - return (res); -} - -static __inline int -atomic_cmpset_rel_32(volatile uint32_t *p, uint32_t cmpval, uint32_t newval) -{ - - fence(); - - return (atomic_cmpset_32(p, cmpval, newval)); -} - -static __inline int -atomic_fcmpset_acq_32(volatile uint32_t *p, uint32_t *cmpval, uint32_t newval) -{ - int res; - - res = atomic_fcmpset_32(p, cmpval, newval); - - fence(); - - return (res); -} - -static __inline int -atomic_fcmpset_rel_32(volatile uint32_t *p, uint32_t *cmpval, uint32_t newval) -{ - - fence(); - - return (atomic_fcmpset_32(p, cmpval, newval)); -} - static __inline uint32_t atomic_load_acq_32(volatile uint32_t *p) { @@ -439,48 +466,9 @@ ATOMIC_ACQ_REL(clear, 64) ATOMIC_ACQ_REL(add, 64) ATOMIC_ACQ_REL(subtract, 64) -static __inline int -atomic_cmpset_acq_64(volatile uint64_t *p, uint64_t cmpval, uint64_t newval) -{ - int res; +ATOMIC_CMPSET_ACQ_REL(64); +ATOMIC_FCMPSET_ACQ_REL(64); - res = atomic_cmpset_64(p, cmpval, newval); - - fence(); - - return (res); -} - -static __inline int -atomic_cmpset_rel_64(volatile uint64_t *p, uint64_t cmpval, uint64_t newval) -{ - - fence(); - - return (atomic_cmpset_64(p, cmpval, newval)); -} - -static __inline int -atomic_fcmpset_acq_64(volatile uint64_t *p, uint64_t *cmpval, uint64_t newval) -{ - int res; - - res = atomic_fcmpset_64(p, cmpval, newval); - - fence(); - - return (res); -} - -static __inline int -atomic_fcmpset_rel_64(volatile uint64_t *p, uint64_t *cmpval, uint64_t newval) -{ - - fence(); - - return (atomic_fcmpset_64(p, cmpval, newval)); -} - static __inline uint64_t atomic_load_acq_64(volatile uint64_t *p) { @@ -566,5 +554,7 @@ atomic_thread_fence_seq_cst(void) #define atomic_set_rel_ptr atomic_set_rel_64 #define atomic_subtract_rel_ptr atomic_subtract_rel_64 #define atomic_store_rel_ptr atomic_store_rel_64 + +#include #endif /* _MACHINE_ATOMIC_H_ */ From owner-svn-src-head@freebsd.org Sun Oct 6 03:22:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2891BF9071 for ; Sun, 6 Oct 2019 03:22:07 +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 46m86l0KY5z4V0q for ; Sun, 6 Oct 2019 03:22:07 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (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 D89E810843 for ; Sun, 6 Oct 2019 03:22:06 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f178.google.com with SMTP id u22so9532765qkk.11 for ; Sat, 05 Oct 2019 20:22:06 -0700 (PDT) X-Gm-Message-State: APjAAAWoRu628jf2qPUAaViKe3Zvp7yqjgGlnQGAZM9MBU/kuZMsqxNW AvUXOk62bAvoAaeiJsXtqGiB1UuiELhWm0H8MSE= X-Received: by 2002:ae9:e88a:: with SMTP id a132mt15785205qkg.120.1570332126268; Sat, 05 Oct 2019 20:22:06 -0700 (PDT) MIME-Version: 1.0 References: <201910052152.x95Lq6IP021482@repo.freebsd.org> In-Reply-To: <201910052152.x95Lq6IP021482@repo.freebsd.org> From: Kyle Evans Date: Sat, 5 Oct 2019 22:21:55 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r353129 - in head/sys: kern sys Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 03:22:07 -0000 On Sat, Oct 5, 2019 at 4:52 PM Kyle Evans wrote: > > Author: kevans > Date: Sat Oct 5 21:52:06 2019 > New Revision: 353129 > URL: https://svnweb.freebsd.org/changeset/base/353129 > > Log: > Remove the remnants of SI_CHEAPCLONE > > SI_CHEAPCLONE was introduced in r66067 for use with cloned bpfs. It was > later also used in tty, tun, tap at points. The rough timeline for being > removed in each of these is as follows: > > - r181690: bpf switched to use cdevpriv API by ed@ > - r181905: ed@ rewrote the TTY later to be mpsafe > - r204464: kib@ removes it from tun/tap, declaring it unused > > I've not yet been able to dig up any other consumers in the intervening 9 > years. It is no longer set on any devices in the tree and leaves an > interesting situation in make_dev_sv where we're ok with the device already > being set SI_NAMED. > I guess a follow-up question to the list... do we consider SI_CHEAPCLONE imperative to keep around in stable/ branches? It hasn't been used in head for years, and I'd guess downstream projects don't intentionally use it either. I don't care enough to axe it, but I'd like to MFC my newdev() change since that was driven by some plans to use make_dev_s in if_tuntap... newdev will need a slight ~2 line addition in stable if SI_CHEAPCLONE sticks around. Thanks, Kyle Evans From owner-svn-src-head@freebsd.org Sun Oct 6 04:19:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B5B77FA894; Sun, 6 Oct 2019 04:19:51 +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 46m9PM4Bnnz4YK0; Sun, 6 Oct 2019 04:19:51 +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 565731FA69; Sun, 6 Oct 2019 04:19: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 x964Jp7N047563; Sun, 6 Oct 2019 04:19:51 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964JoXX047557; Sun, 6 Oct 2019 04:19:50 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060419.x964JoXX047557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 6 Oct 2019 04:19:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353140 - 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: 353140 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:19:51 -0000 Author: kevans Date: Sun Oct 6 04:19:49 2019 New Revision: 353140 URL: https://svnweb.freebsd.org/changeset/base/353140 Log: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around Diff partially stolen from CheriBSD; these bits need -Wl,-z,notext in order to build in an LLVM world. They are needed for all flavors/sizes of MIPS. This will eventually get fixed in LLVM, but it's unclear when. Reported by: arichardson, emaste Differential Revision: https://reviews.freebsd.org/D21696 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 Sun Oct 6 04:12:08 2019 (r353139) +++ head/lib/csu/tests/dso/Makefile Sun Oct 6 04:19:49 2019 (r353140) @@ -5,6 +5,8 @@ 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 Sun Oct 6 04:12:08 2019 (r353139) +++ head/lib/libc++/Makefile Sun Oct 6 04:19:49 2019 (r353140) @@ -11,6 +11,8 @@ 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 Sun Oct 6 04:12:08 2019 (r353139) +++ head/lib/libcxxrt/Makefile Sun Oct 6 04:19:49 2019 (r353140) @@ -5,6 +5,7 @@ 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 Sun Oct 6 04:12:08 2019 (r353139) +++ head/lib/libgcc_eh/Makefile.inc Sun Oct 6 04:19:49 2019 (r353140) @@ -6,6 +6,8 @@ UNWINDSRCDIR= ${SRCTOP}/contrib/libunwind/src 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 Sun Oct 6 04:12:08 2019 (r353139) +++ head/lib/libpmc/Makefile Sun Oct 6 04:19:49 2019 (r353140) @@ -5,6 +5,8 @@ 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} == "amd64" || ${MACHINE_ARCH} == "i386" .if ${MACHINE_ARCH} == "aarch64" Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Sun Oct 6 04:12:08 2019 (r353139) +++ head/share/mk/bsd.lib.mk Sun Oct 6 04:19:49 2019 (r353140) @@ -287,6 +287,10 @@ 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 @@ -294,6 +298,15 @@ 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-head@freebsd.org Sun Oct 6 08:47:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8F59131706; Sun, 6 Oct 2019 08:47:10 +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 46mHKp5snhz3KyC; Sun, 6 Oct 2019 08:47:10 +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 AD285229F2; Sun, 6 Oct 2019 08:47:10 +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 x968lAeW006729; Sun, 6 Oct 2019 08:47:10 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x968lABW006728; Sun, 6 Oct 2019 08:47:10 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910060847.x968lABW006728@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 6 Oct 2019 08:47:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353145 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353145 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 08:47:11 -0000 Author: tuexen Date: Sun Oct 6 08:47:10 2019 New Revision: 353145 URL: https://svnweb.freebsd.org/changeset/base/353145 Log: Plumb an mbuf leak in a code path that should not be taken. Also avoid that this path is taken by setting the tail pointer correctly. There is still bug related to handling unordered unfragmented messages which were delayed in deferred handling. This issue was found by OSS-Fuzz testing the usrsctp stack and reported in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17794 MFC after: 3 days Modified: head/sys/netinet/sctp_indata.c Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Sun Oct 6 04:36:53 2019 (r353144) +++ head/sys/netinet/sctp_indata.c Sun Oct 6 08:47:10 2019 (r353145) @@ -716,6 +716,7 @@ sctp_add_to_tail_pointer(struct sctp_queued_to_read *c } if (control->tail_mbuf == NULL) { /* TSNH */ + sctp_m_freem(control->data); control->data = m; sctp_setup_tail_pointer(control); return; @@ -2119,10 +2120,13 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struc struct mbuf *mm; control->data = dmbuf; + control->tail_mbuf = NULL; for (mm = control->data; mm; mm = mm->m_next) { control->length += SCTP_BUF_LEN(mm); + if (SCTP_BUF_NEXT(mm) == NULL) { + control->tail_mbuf = mm; + } } - control->tail_mbuf = NULL; control->end_added = 1; control->last_frag_seen = 1; control->first_frag_seen = 1; From owner-svn-src-head@freebsd.org Sun Oct 6 16:17:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B966F12E8ED; Sun, 6 Oct 2019 16:17:32 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) (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 46mTKS4Sd9z4Y4J; Sun, 6 Oct 2019 16:17:32 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (Seawolf.HML3.ScaleEngine.net [209.51.186.28]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 6634A197E2; Sun, 6 Oct 2019 16:17:31 +0000 (UTC) Subject: Re: svn commit: r353057 - head/sys/net To: Kyle Evans Cc: src-committers , svn-src-all , svn-src-head References: <201910031754.x93Hs0HD065043@repo.freebsd.org> From: Allan Jude Openpgp: preference=signencrypt Autocrypt: addr=allanjude@freebsd.org; prefer-encrypt=mutual; keydata= mQINBFVwZcYBEADwrZDH0xe0ZVjc9ORCc6PcBLwS/RTXA6NkvpD6ea02pZ8lPOVgteuuugFc D34LdDbiWr+479vfrKBh+Y38GL0oZ0/13j10tIlDMHSa5BU0y6ACtnhupFvVlQ57+XaJAb/q 7qkfSiuxVwQ3FY3PL3cl1RrIP5eGHLA9hu4eVbu+FOX/q/XVKz49HaeIaxzo2Q54572VzIo6 C28McX9m65UL5fXMUGJDDLCItLmehZlHsQQ+uBxvODLFpVV2lUgDR/0rDa0B9zHZX8jY8qQ7 ZdCSy7CwClXI054CkXZCaBzgxYh/CotdI8ezmaw7NLs5vWNTxaDEFXaFMQtMVhvqQBpHkfOD 7rjjOmFw00nJL4FuPE5Yut0CPyx8vLjVmNJSt/Y8WxxmhutsqJYFgYfWl/vaWkrFLur/Zcmz IklwLw35HLsCZytCN5A3rGKdRbQjD6QPXOTJu0JPrJF6t2xFkWAT7oxnSV0ELhl2g+JfMMz2 Z1PDmS3NRnyEdqEm7NoRGXJJ7bgxDbN+9SXTyOletqGNXj/bSrBvhvZ0RQrzdHAPwQUfVSU2 qBhQEi2apSZstgVNMan0GUPqCdbE2zpysg+zT7Yhvf9EUQbzPL4LpdK1llT9fZbrdMzEXvEF oSvwJFdV3sqKmZc7b+E3PuxK6GTsKqaukd/3Cj8aLHG1T1im1QARAQABtCJBbGxhbiBKdWRl IDxhbGxhbmp1ZGVAZnJlZWJzZC5vcmc+iQI/BBMBAgApBQJVcGXGAhsjBQkSzAMABwsJCAcD AgEGFQgCCQoLBBYCAwECHgECF4AACgkQGZU1PhKYC34Muw/+JOKpSfhhysWFYiRXynGRDe07 Z6pVsn7DzrPUMRNZfHu8Uujmmy3p2nx9FelIY9yjd2UKHhug+whM54MiIFs90eCRVa4XEsPR 4FFAm0DAWrrb7qhZFcE/GhHdRWpZ341WAElWf6Puj2devtRjfYbikvj5+1V1QmDbju7cEw5D mEET44pTuD2VMRJpu2yZZzkM0i+wKFuPxlhqreufA1VNkZXI/rIfkYWK+nkXd9Efw3YdCyCQ zUgTUCb88ttSqcyhik/li1CDbXBpkzDCKI6I/8fAb7jjOC9LAtrZJrdgONywcVFoyK9ZN7EN AVA+xvYCmuYhR/3zHWH1g4hAm1v1+gIsufhajhfo8/wY1SetlzPaYkSkVQLqD8T6zZyhf+AN bC7ci44UsiKGAplB3phAXrtSPUEqM86kbnHg3fSx37kWKUiYNOnx4AC2VXvEiKsOBlpyt3dw WQbOtOYM+vkfbBwDtoGOOPYAKxc4LOIt9r+J8aD+gTooi9Eo5tvphATf9WkCpl9+aaGbSixB tUpvQMRnSMqTqq4Z7DeiG6VMRQIjsXDSLJEUqcfhnLFo0Ko/RiaHd5xyAQ4DhQ9QpkyQjjNf /3f/dYG7JAtoD30txaQ5V8uHrz210/77DRRX+HJjEj6xCxWUGvQgvEZf5XXyxeePvqZ+zQyT DX61bYw6w6a5Ag0EVXBlxgEQAMy7YVnCCLN4oAOBVLZ5nUbVPvpUhsdA94/0/P+uqCIh28Cz ar56OCX0X19N/nAWecxL4H32zFbIRyDB2V/MEh4p9Qvyu/j4i1r3Ex5GhOT2hnit43Ng46z5 29Es4TijrHJP4/l/rB2VOqMKBS7Cq8zk1cWqaI9XZ59imxDNjtLLPPM+zQ1yE3OAMb475QwN UgWxTMw8rkA7CEaqeIn4sqpTSD5C7kT1Bh26+rbgJDZ77D6Uv1LaCZZOaW52okW3bFbdozV8 yM2u+xz2Qs8bHz67p+s+BlygryiOyYytpkiK6Iy4N7FTolyj5EIwCuqzfk0SaRHeOKX2ZRjC qatkgoD/t13PNT38V9tw3qZVOJDS0W6WM8VSg+F+bkM9LgJ8CmKV+Hj0k3pfGfYPOZJ/v18i +SmZmL/Uw2RghnwDWGAsPCKu4uZR777iw7n9Io6Vfxndw2dcS0e9klvFYoaGS6H2F13Asygr WBzFNGFQscN4mUW+ZYBzpTOcHkdT7w8WS55BmXYLna+dYer9/HaAuUrONjujukN4SPS1fMJ2 /CS/idAUKyyVVX5vozoNK2JVC1h1zUAVsdnmhEzNPsvBoqcVNfyqBFROEVLIPwq+lQMGNVjH ekLTKRWf59MEhUC2ztjSKkGmwdg73d6xSXMuq45EgIJV2wPvOgWQonoHH/kxABEBAAGJAiUE GAECAA8FAlVwZcYCGwwFCRLMAwAACgkQGZU1PhKYC34w5A//YViBtZyDV5O+SJT9FFO3lb9x Zdxf0trA3ooCt7gdBkdnBM6T5EmjgVZ3KYYyFfwXZVkteuCCycMF/zVw5eE9FL1+zz9gg663 nY9q2F77TZTKXVWOLlOV2bY+xaK94U4ytogOGhh9b4UnQ/Ct3+6aviCF78Go608BXbmF/GVT 7uhddemk7ItxM1gE5Hscx3saxGKlayaOsdPKeGTVJCDEtHDuOc7/+jGh5Zxpk/Hpi+DUt1ot 8e6hPYLIQa4uVx4f1xxxV858PQ7QysSLr9pTV7FAQ18JclCaMc7JWIa3homZQL/MNKOfST0S 2e+msuRwQo7AnnfFKBUtb02KwpA4GhWryhkjUh/kbVc1wmGxaU3DgXYQ5GV5+Zf4kk/wqr/7 KG0dkTz6NLCVLyDlmAzuFhf66DJ3zzz4yIo3pbDYi3HB/BwJXVSKB3Ko0oUo+6/qMrOIS02L s++QE/z7K12CCcs7WwOjfCYHK7VtE0Sr/PfybBdTbuDncOuAyAIeIKxdI2nmQHzl035hhvQX s4CSghsP319jAOQiIolCeSbTMD4QWMK8RL/Pe1FI1jC3Nw9s+jq8Dudtbcj2UwAP/STUEbJ9 5rznzuuhPjE0e++EU/RpWmcaIMK/z1zZDMN+ce2v1qzgV936ZhJ3iaVzyqbEE81gDxg3P+IM kiYh4ZtPB4Q= Message-ID: Date: Sun, 6 Oct 2019 12:17:30 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="XTVpOt3eZDSOPub1EOlCC4uaXs0dmBSUo" X-Rspamd-Queue-Id: 46mTKS4Sd9z4Y4J X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.94 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.94)[-0.936,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; ASN(0.00)[asn:6939, ipnet:209.51.160.0/19, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 16:17:32 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --XTVpOt3eZDSOPub1EOlCC4uaXs0dmBSUo Content-Type: multipart/mixed; boundary="nzeTaqgE5i1KQGzS8KtwOPLBv4L5ULSud"; protected-headers="v1" From: Allan Jude To: Kyle Evans Cc: src-committers , svn-src-all , svn-src-head Message-ID: Subject: Re: svn commit: r353057 - head/sys/net References: <201910031754.x93Hs0HD065043@repo.freebsd.org> In-Reply-To: --nzeTaqgE5i1KQGzS8KtwOPLBv4L5ULSud Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2019-10-04 08:57, Kyle Evans wrote: > On Thu, Oct 3, 2019 at 12:54 PM Kyle Evans wrote: >> >> Author: kevans >> Date: Thu Oct 3 17:54:00 2019 >> New Revision: 353057 >> URL: https://svnweb.freebsd.org/changeset/base/353057 >> >> Log: >> if_tuntap: create /dev aliases when a tuntap device gets renamed >> >> Currently, if you do: >> >> $ ifconfig tun0 create >> $ ifconfig tun0 name wg0 >> $ ls -l /dev | egrep 'wg|tun' >> >> You will see tun0, but no wg0. In fact, it's slightly more annoying = to make >> the association between the new name and the old name in order to op= en the >> device (if it hadn't been opened during the rename). >> >> Register an eventhandler for ifnet_arrival_events and catch interfac= e >> renames. We can determine if the ifnet is a tun easily enough from t= he >> if_dname, which matches the cevsw.d_name from the associated tuntap_= driver. >> >> Some locking dance is required because renames don't require the dev= ice to >> be opened, so it could go away in the middle of handling the ioctl, = but as >> soon as we've verified this isn't the case we can attempt to busy th= e tun >> and either bail out if the tun device is dying, or we can proceed wi= th the >> rename. >> >> We only create these aliases on a best-effort basis. Renaming a tun = device >> to "usbctl", which doesn't exist as an ifnet but does as a /dev, is = clearly >> not that disastrous, but we can't and won't create a /dev for that. >> >=20 > It's been brought to my attention that I actually had a PR that I took > six months ago that this should've belonged to. >=20 > PR: 219746 >=20 Thanks for this, I was having similar problems with this trying to use wireguard inside a VNET jail, so it was even harder to find and destroy the correct interface. --=20 Allan Jude --nzeTaqgE5i1KQGzS8KtwOPLBv4L5ULSud-- --XTVpOt3eZDSOPub1EOlCC4uaXs0dmBSUo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJdmhObAAoJEBmVNT4SmAt+vc0QAIpqq49y3A/7SWQemvwzJPdO 4mpmkhkE5om5jxm4pI8uUCv+bL8ntGNW/KHaX6MYAeGtipFl1TaYbgP1sQX6R43c cdozTI2VFkLYMM3Xzz/nCPgu63norFgEbcYdMHlBJlS8iv2vgCC3WdEZ//yigxHV Lg14jrgDtg39gF7aEBcaflbklWdWtYl318Gsix/ytwbkJ28bOv1tP6KQYtgjTCyM TPQjuypz4bU5+h0bOiWzdIoewznGQSf7ZFB6PZUEy/onIpFGhuhW7Y6uVihZdyPH Aer1XewNHdH/99iodWjA7H2iFY5kIrOsFUclWqTzeoi5WmMT8p82j6QOHlXZMXwI vnk11Fkt8CTILn5YZ3gcG5y70tZMbfIvJ8qQ54Dy8StFpq06HW6fZm+mGeyF9nbL zxl9ruOz/yAeNQBEQVMpRTvIgNBKX/HYEq1vzmwNysl90AUnhXG8/5Q6GMl/9Bz9 fYNeDMjIBxnu2OhCNEQHX03Yq9yGwK1tKnkAr8IRkw/3ENOHfLNdOYS6CR7gdIUj qstfx4DgveScq0Ytbvg8vA7Mf0ZO601rJZNM7Sl1J06IwiNMj1BzBOts5+NPkYR0 fthwJcrjqOpjS7pa0SpgR8BkQrGBrGBGeE/i6ZO8g7Int0bXZSTypSdEaqoCeekY pSGLpzBytm2m3Ei7Odsx =B2EK -----END PGP SIGNATURE----- --XTVpOt3eZDSOPub1EOlCC4uaXs0dmBSUo-- From owner-svn-src-head@freebsd.org Sun Oct 6 18:38:59 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 406CD130EA2; Sun, 6 Oct 2019 18:38:59 +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 46mXSg0vkdz3C5S; Sun, 6 Oct 2019 18:38:59 +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 024EF24D1; Sun, 6 Oct 2019 18:38:59 +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 x96Icwgp053917; Sun, 6 Oct 2019 18:38:58 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96Icw58053916; Sun, 6 Oct 2019 18:38:58 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201910061838.x96Icw58053916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Sun, 6 Oct 2019 18:38:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353146 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 353146 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 18:38:59 -0000 Author: tsoome Date: Sun Oct 6 18:38:58 2019 New Revision: 353146 URL: https://svnweb.freebsd.org/changeset/base/353146 Log: loader.efi: for text mode, use STM to scroll the whole screen Since local UEFI console is implemented on top of framebuffer, we need to avoid redrawing the whole screen ourselves, but let Simple Text Mode to do the scroll for us. Modified: head/stand/efi/libefi/efi_console.c Modified: head/stand/efi/libefi/efi_console.c ============================================================================== --- head/stand/efi/libefi/efi_console.c Sun Oct 6 08:47:10 2019 (r353145) +++ head/stand/efi/libefi/efi_console.c Sun Oct 6 18:38:58 2019 (r353146) @@ -136,7 +136,7 @@ efi_text_cursor(void *s __unused, const teken_pos_t *p } static void -efi_text_printchar(const teken_pos_t *p) +efi_text_printchar(const teken_pos_t *p, bool autoscroll) { UINTN a, attr; struct text_pixel *px; @@ -164,7 +164,8 @@ efi_text_printchar(const teken_pos_t *p) conout->SetCursorPosition(conout, p->tp_col, p->tp_row); /* to prvent autoscroll, skip print of lower right char */ - if (p->tp_row == tp.tp_row - 1 && + if (!autoscroll && + p->tp_row == tp.tp_row - 1 && p->tp_col == tp.tp_col - 1) return; @@ -183,7 +184,7 @@ efi_text_putchar(void *s __unused, const teken_pos_t * idx = p->tp_col + p->tp_row * tp.tp_col; buffer[idx].c = c; buffer[idx].a = *a; - efi_text_printchar(p); + efi_text_printchar(p, false); } static void @@ -226,6 +227,7 @@ efi_text_copy(void *ptr __unused, const teken_rect_t * int srow, drow; int nrow, ncol, x, y; /* Has to be signed - >= 0 comparison */ teken_pos_t d, s; + bool scroll = false; /* * Copying is a little tricky. We must make sure we do it in @@ -235,6 +237,13 @@ efi_text_copy(void *ptr __unused, const teken_rect_t * nrow = r->tr_end.tp_row - r->tr_begin.tp_row; ncol = r->tr_end.tp_col - r->tr_begin.tp_col; + /* + * Check if we do copy whole screen. + */ + if (p->tp_row == 0 && p->tp_col == 0 && + nrow == tp.tp_row - 2 && ncol == tp.tp_col - 2) + scroll = true; + conout->EnableCursor(conout, FALSE); if (p->tp_row < r->tr_begin.tp_row) { /* Copy from bottom to top. */ @@ -252,7 +261,17 @@ efi_text_copy(void *ptr __unused, const teken_rect_t * &buffer[s.tp_col + srow])) { buffer[d.tp_col + drow] = buffer[s.tp_col + srow]; - efi_text_printchar(&d); + if (!scroll) + efi_text_printchar(&d, false); + } else if (scroll) { + /* + * Draw last char and trigger + * scroll. + */ + if (y == nrow - 1 && + x == ncol - 1) { + efi_text_printchar(&d, true); + } } } } @@ -274,7 +293,7 @@ efi_text_copy(void *ptr __unused, const teken_rect_t * &buffer[s.tp_col + srow])) { buffer[d.tp_col + drow] = buffer[s.tp_col + srow]; - efi_text_printchar(&d); + efi_text_printchar(&d, false); } } } @@ -294,7 +313,7 @@ efi_text_copy(void *ptr __unused, const teken_rect_t * &buffer[s.tp_col + srow])) { buffer[d.tp_col + drow] = buffer[s.tp_col + srow]; - efi_text_printchar(&d); + efi_text_printchar(&d, false); } } } From owner-svn-src-head@freebsd.org Sun Oct 6 19:11:02 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86B40131779; Sun, 6 Oct 2019 19:11:02 +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 46mY9f2t6cz3DPJ; Sun, 6 Oct 2019 19:11:02 +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 4706A2BAF; Sun, 6 Oct 2019 19:11:02 +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 x96JB2so074284; Sun, 6 Oct 2019 19:11:02 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96JB2Pd074283; Sun, 6 Oct 2019 19:11:02 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910061911.x96JB2Pd074283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 6 Oct 2019 19:11:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353147 - head/sys/powerpc/aim X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/aim X-SVN-Commit-Revision: 353147 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 19:11:02 -0000 Author: jhibbits Date: Sun Oct 6 19:11:01 2019 New Revision: 353147 URL: https://svnweb.freebsd.org/changeset/base/353147 Log: powerpc/pmap64: Properly parenthesize PV_LOCK_COUNT macros As pointed out by mjg, without the parentheses the calculations done against these macros are incorrect, resulting in only 1/3 of locks being used. Reported by: mjg Modified: head/sys/powerpc/aim/mmu_oea64.c Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Sun Oct 6 18:38:58 2019 (r353146) +++ head/sys/powerpc/aim/mmu_oea64.c Sun Oct 6 19:11:01 2019 (r353147) @@ -119,8 +119,8 @@ uintptr_t moea64_get_unique_vsid(void); * */ -#define PV_LOCK_PER_DOM PA_LOCK_COUNT*3 -#define PV_LOCK_COUNT PV_LOCK_PER_DOM*MAXMEMDOM +#define PV_LOCK_PER_DOM (PA_LOCK_COUNT * 3) +#define PV_LOCK_COUNT (PV_LOCK_PER_DOM * MAXMEMDOM) static struct mtx_padalign pv_lock[PV_LOCK_COUNT]; /* From owner-svn-src-head@freebsd.org Sun Oct 6 22:13:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C72F81362BC; Sun, 6 Oct 2019 22:13:35 +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 46mdDH4skhz3Q5t; Sun, 6 Oct 2019 22:13:35 +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 8A89A4FE6; Sun, 6 Oct 2019 22:13:35 +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 x96MDZpN085524; Sun, 6 Oct 2019 22:13:35 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MDZv3085523; Sun, 6 Oct 2019 22:13:35 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062213.x96MDZv3085523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:13:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353149 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 353149 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:13:35 -0000 Author: mjg Date: Sun Oct 6 22:13:35 2019 New Revision: 353149 URL: https://svnweb.freebsd.org/changeset/base/353149 Log: amd64 pmap: implement per-superpage locks The current 256-lock sized array is a problem in the following ways: - it's way too small - there are 2 locks per cacheline - it is not NUMA-aware Solve these issues by introducing per-superpage locks backed by pages allocated from respective domains. This significantly reduces contention e.g. during poudriere -j 104. See the review for results. Reviewed by: kib Discussed with: jeff Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21833 Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r353148) +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r353149) @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) #define PV_STAT(x) do { } while (0) #endif -#define pa_index(pa) ((pa) >> PDRSHIFT) +#undef pa_index +#define pa_index(pa) ({ \ + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ + ("address %lx beyond the last segment", (pa))); \ + (pa) >> PDRSHIFT; \ +}) +#if VM_NRESERVLEVEL > 0 +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) +#define PHYS_TO_PV_LIST_LOCK(pa) \ + (&(pa_to_pmdp(pa)->pv_lock)) +#else #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) #define NPV_LIST_LOCKS MAXCPU #define PHYS_TO_PV_LIST_LOCK(pa) \ (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) +#endif #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ struct rwlock **_lockp = (lockp); \ @@ -400,14 +412,22 @@ static int pmap_initialized; /* * Data for the pv entry allocation mechanism. - * Updates to pv_invl_gen are protected by the pv_list_locks[] - * elements, but reads are not. + * Updates to pv_invl_gen are protected by the pv list lock but reads are not. */ static TAILQ_HEAD(pch, pv_chunk) pv_chunks = TAILQ_HEAD_INITIALIZER(pv_chunks); static struct mtx __exclusive_cache_line pv_chunks_mutex; +#if VM_NRESERVLEVEL > 0 +struct pmap_large_md_page { + struct rwlock pv_lock; + struct md_page pv_page; + u_long pv_invl_gen; +}; +static struct pmap_large_md_page *pv_table; +#else static struct rwlock __exclusive_cache_line pv_list_locks[NPV_LIST_LOCKS]; static u_long pv_invl_gen[NPV_LIST_LOCKS]; static struct md_page *pv_table; +#endif static struct md_page pv_dummy; /* @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, CTLFLA "Number of slow invalidation waits for lockless DI"); #endif +#if VM_NRESERVLEVEL > 0 static u_long * pmap_delayed_invl_genp(vm_page_t m) { + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); +} +#else +static u_long * +pmap_delayed_invl_genp(vm_page_t m) +{ + return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LOCKS]); } +#endif static void pmap_delayed_invl_callout_func(void *arg __unused) @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) m->md.pat_mode = PAT_WRITE_BACK; } +#if VM_NRESERVLEVEL > 0 +static void +pmap_init_pv_table(void) +{ + struct pmap_large_md_page *pvd; + vm_size_t s; + long start, end, highest, pv_npg; + int domain, i, j, pages; + + /* + * We strongly depend on the size being a power of two, so the assert + * is overzealous. However, should the struct be resized to a + * different power of two, the code below needs to be revisited. + */ + CTASSERT((sizeof(*pvd) == 64)); + + /* + * Calculate the size of the array. + */ + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); + s = round_page(s); + pv_table = (struct pmap_large_md_page *)kva_alloc(s); + if (pv_table == NULL) + panic("%s: kva_alloc failed\n", __func__); + + /* + * Iterate physical segments to allocate space for respective pages. + */ + highest = -1; + s = 0; + for (i = 0; i < vm_phys_nsegs; i++) { + start = vm_phys_segs[i].start / NBPDR; + end = vm_phys_segs[i].end / NBPDR; + domain = vm_phys_segs[i].domain; + + if (highest >= end) + continue; + + if (start < highest) { + start = highest + 1; + pvd = &pv_table[start]; + } else { + /* + * The lowest address may land somewhere in the middle + * of our page. Simplify the code by pretending it is + * at the beginning. + */ + pvd = pa_to_pmdp(vm_phys_segs[i].start); + pvd = (struct pmap_large_md_page *)trunc_page(pvd); + start = pvd - pv_table; + } + + pages = end - start + 1; + s = round_page(pages * sizeof(*pvd)); + highest = start + (s / sizeof(*pvd)) - 1; + + for (j = 0; j < s; j += PAGE_SIZE) { + vm_page_t m = vm_page_alloc_domain(NULL, 0, + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); + if (m == NULL) + panic("vm_page_alloc_domain failed for %lx\n", (vm_offset_t)pvd + j); + pmap_qenter((vm_offset_t)pvd + j, &m, 1); + } + + for (j = 0; j < s / sizeof(*pvd); j++) { + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW_NEW); + TAILQ_INIT(&pvd->pv_page.pv_list); + pvd->pv_page.pv_gen = 0; + pvd->pv_page.pat_mode = 0; + pvd->pv_invl_gen = 0; + pvd++; + } + } + TAILQ_INIT(&pv_dummy.pv_list); +} +#else +static void +pmap_init_pv_table(void) +{ + vm_size_t s; + long i, pv_npg; + + /* + * Initialize the pool of pv list locks. + */ + for (i = 0; i < NPV_LIST_LOCKS; i++) + rw_init(&pv_list_locks[i], "pmap pv list"); + + /* + * Calculate the size of the pv head table for superpages. + */ + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); + + /* + * Allocate memory for the pv head table for superpages. + */ + s = (vm_size_t)pv_npg * sizeof(struct md_page); + s = round_page(s); + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); + for (i = 0; i < pv_npg; i++) + TAILQ_INIT(&pv_table[i].pv_list); + TAILQ_INIT(&pv_dummy.pv_list); +} +#endif + /* * Initialize the pmap module. * Called by vm_init, to initialize any structures that the pmap @@ -1813,8 +1948,7 @@ pmap_init(void) { struct pmap_preinit_mapping *ppim; vm_page_t m, mpte; - vm_size_t s; - int error, i, pv_npg, ret, skz63; + int error, i, ret, skz63; /* L1TF, reserve page @0 unconditionally */ vm_page_blacklist_add(0, bootverbose); @@ -1902,26 +2036,7 @@ pmap_init(void) */ mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF); - /* - * Initialize the pool of pv list locks. - */ - for (i = 0; i < NPV_LIST_LOCKS; i++) - rw_init(&pv_list_locks[i], "pmap pv list"); - - /* - * Calculate the size of the pv head table for superpages. - */ - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); - - /* - * Allocate memory for the pv head table for superpages. - */ - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); - s = round_page(s); - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); - for (i = 0; i < pv_npg; i++) - TAILQ_INIT(&pv_table[i].pv_list); - TAILQ_INIT(&pv_dummy.pv_list); + pmap_init_pv_table(); pmap_initialized = 1; for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { From owner-svn-src-head@freebsd.org Sun Oct 6 22:14:34 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B09D136337; Sun, 6 Oct 2019 22:14:34 +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 46mdFQ3bGZz3QDg; Sun, 6 Oct 2019 22:14:34 +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 5F8B84FEC; Sun, 6 Oct 2019 22:14:34 +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 x96MEY3S085623; Sun, 6 Oct 2019 22:14:34 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MEXOg085616; Sun, 6 Oct 2019 22:14:33 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062214.x96MEXOg085616@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:14:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353150 - 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: 353150 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:14:34 -0000 Author: mjg Date: Sun Oct 6 22:14:32 2019 New Revision: 353150 URL: https://svnweb.freebsd.org/changeset/base/353150 Log: vfs: add optional root vnode caching Root vnodes looekd up all the time, e.g. when crossing a mount point. Currently used routines always perform a costly lookup which can be trivially avoided. Reviewed by: jeff (previous version), kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21646 Modified: head/sys/kern/vfs_init.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/kern/vfs_init.c ============================================================================== --- head/sys/kern/vfs_init.c Sun Oct 6 22:13:35 2019 (r353149) +++ head/sys/kern/vfs_init.c Sun Oct 6 22:14:32 2019 (r353150) @@ -201,6 +201,17 @@ vfs_root_sigdefer(struct mount *mp, int flags, struct } static int +vfs_cachedroot_sigdefer(struct mount *mp, int flags, struct vnode **vpp) +{ + int prev_stops, rc; + + prev_stops = sigdeferstop(SIGDEFERSTOP_SILENT); + rc = (*mp->mnt_vfc->vfc_vfsops_sd->vfs_cachedroot)(mp, flags, vpp); + sigallowstop(prev_stops); + return (rc); +} + +static int vfs_quotactl_sigdefer(struct mount *mp, int cmd, uid_t uid, void *arg) { int prev_stops, rc; @@ -343,6 +354,7 @@ static struct vfsops vfsops_sigdefer = { .vfs_mount = vfs_mount_sigdefer, .vfs_unmount = vfs_unmount_sigdefer, .vfs_root = vfs_root_sigdefer, + .vfs_cachedroot = vfs_cachedroot_sigdefer, .vfs_quotactl = vfs_quotactl_sigdefer, .vfs_statfs = vfs_statfs_sigdefer, .vfs_sync = vfs_sync_sigdefer, Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Sun Oct 6 22:13:35 2019 (r353149) +++ head/sys/kern/vfs_mount.c Sun Oct 6 22:14:32 2019 (r353150) @@ -134,6 +134,7 @@ mount_init(void *mem, int size, int flags) M_WAITOK | M_ZERO); mp->mnt_ref = 0; mp->mnt_vfs_ops = 1; + mp->mnt_rootvnode = NULL; return (0); } @@ -582,6 +583,10 @@ vfs_mount_destroy(struct mount *mp) panic("%s: vfs_ops should be 1 but %d found\n", __func__, mp->mnt_vfs_ops); + if (mp->mnt_rootvnode != NULL) + panic("%s: mount point still has a root vnode %p\n", __func__, + mp->mnt_rootvnode); + if (mp->mnt_vnodecovered != NULL) vrele(mp->mnt_vnodecovered); #ifdef MAC @@ -1034,6 +1039,7 @@ vfs_domount_update( ) { struct export_args export; + struct vnode *rootvp; void *bufp; struct mount *mp; int error, export_error, len; @@ -1099,7 +1105,10 @@ vfs_domount_update( MNT_SNAPSHOT | MNT_ROOTFS | MNT_UPDATEMASK | MNT_RDONLY); if ((mp->mnt_flag & MNT_ASYNC) == 0) mp->mnt_kern_flag &= ~MNTK_ASYNC; + rootvp = vfs_cache_root_clear(mp); MNT_IUNLOCK(mp); + if (rootvp != NULL) + vrele(rootvp); mp->mnt_optnew = *optlist; vfs_mergeopts(mp->mnt_optnew, mp->mnt_opt); @@ -1582,7 +1591,7 @@ vfs_mount_fetch_counter(struct mount *mp, enum mount_c int dounmount(struct mount *mp, int flags, struct thread *td) { - struct vnode *coveredvp; + struct vnode *coveredvp, *rootvp; int error; uint64_t async_flag; int mnt_gen_r; @@ -1630,12 +1639,15 @@ dounmount(struct mount *mp, int flags, struct thread * return (EBUSY); } mp->mnt_kern_flag |= MNTK_UNMOUNT; + rootvp = vfs_cache_root_clear(mp); if (flags & MNT_NONBUSY) { MNT_IUNLOCK(mp); error = vfs_check_usecounts(mp); MNT_ILOCK(mp); if (error != 0) { dounmount_cleanup(mp, coveredvp, MNTK_UNMOUNT); + if (rootvp != NULL) + vrele(rootvp); return (error); } } @@ -1663,6 +1675,9 @@ dounmount(struct mount *mp, int flags, struct thread * KASSERT(error == 0, ("%s: invalid return value for msleep in the drain path @ %s:%d", __func__, __FILE__, __LINE__)); + + if (rootvp != NULL) + vrele(rootvp); if (mp->mnt_flag & MNT_EXPUBLIC) vfs_setpublicfs(NULL, NULL, NULL); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Oct 6 22:13:35 2019 (r353149) +++ head/sys/kern/vfs_subr.c Sun Oct 6 22:14:32 2019 (r353150) @@ -5700,6 +5700,121 @@ vfs_unixify_accmode(accmode_t *accmode) } /* + * Clear out a doomed vnode (if any) and replace it with a new one as long + * as the fs is not being unmounted. Return the root vnode to the caller. + */ +static int __noinline +vfs_cache_root_fallback(struct mount *mp, int flags, struct vnode **vpp) +{ + struct vnode *vp; + int error; + +restart: + if (mp->mnt_rootvnode != NULL) { + MNT_ILOCK(mp); + vp = mp->mnt_rootvnode; + if (vp != NULL) { + if ((vp->v_iflag & VI_DOOMED) == 0) { + vrefact(vp); + MNT_IUNLOCK(mp); + error = vn_lock(vp, flags); + if (error == 0) { + *vpp = vp; + return (0); + } + vrele(vp); + goto restart; + } + /* + * Clear the old one. + */ + mp->mnt_rootvnode = NULL; + } + MNT_IUNLOCK(mp); + if (vp != NULL) { + /* + * Paired with a fence in vfs_op_thread_exit(). + */ + atomic_thread_fence_acq(); + vfs_op_barrier_wait(mp); + vrele(vp); + } + } + error = VFS_CACHEDROOT(mp, flags, vpp); + if (error != 0) + return (error); + if (mp->mnt_vfs_ops == 0) { + MNT_ILOCK(mp); + if (mp->mnt_vfs_ops != 0) { + MNT_IUNLOCK(mp); + return (0); + } + if (mp->mnt_rootvnode == NULL) { + vrefact(*vpp); + mp->mnt_rootvnode = *vpp; + } else { + if (mp->mnt_rootvnode != *vpp) { + if ((mp->mnt_rootvnode->v_iflag & VI_DOOMED) == 0) { + panic("%s: mismatch between vnode returned " + " by VFS_CACHEDROOT and the one cached " + " (%p != %p)", + __func__, *vpp, mp->mnt_rootvnode); + } + } + } + MNT_IUNLOCK(mp); + } + return (0); +} + +int +vfs_cache_root(struct mount *mp, int flags, struct vnode **vpp) +{ + struct vnode *vp; + int error; + + if (!vfs_op_thread_enter(mp)) + return (vfs_cache_root_fallback(mp, flags, vpp)); + vp = (struct vnode *)atomic_load_ptr(&mp->mnt_rootvnode); + if (vp == NULL || (vp->v_iflag & VI_DOOMED)) { + vfs_op_thread_exit(mp); + return (vfs_cache_root_fallback(mp, flags, vpp)); + } + vrefact(vp); + vfs_op_thread_exit(mp); + error = vn_lock(vp, flags); + if (error != 0) { + vrele(vp); + return (vfs_cache_root_fallback(mp, flags, vpp)); + } + *vpp = vp; + return (0); +} + +struct vnode * +vfs_cache_root_clear(struct mount *mp) +{ + struct vnode *vp; + + /* + * ops > 0 guarantees there is nobody who can see this vnode + */ + MPASS(mp->mnt_vfs_ops > 0); + vp = mp->mnt_rootvnode; + mp->mnt_rootvnode = NULL; + return (vp); +} + +void +vfs_cache_root_set(struct mount *mp, struct vnode *vp) +{ + + MPASS(mp->mnt_vfs_ops > 0); + vrefact(vp); + mp->mnt_rootvnode = vp; +} + +/* * These are helper functions for filesystems to traverse all * their vnodes. See MNT_VNODE_FOREACH_ALL() in sys/mount.h. * Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Sun Oct 6 22:13:35 2019 (r353149) +++ head/sys/sys/mount.h Sun Oct 6 22:14:32 2019 (r353150) @@ -231,6 +231,7 @@ struct mount { int *mnt_ref_pcpu; int *mnt_lockref_pcpu; int *mnt_writeopcount_pcpu; + struct vnode *mnt_rootvnode; }; /* @@ -702,6 +703,7 @@ struct vfsops { vfs_cmount_t *vfs_cmount; vfs_unmount_t *vfs_unmount; vfs_root_t *vfs_root; + vfs_root_t *vfs_cachedroot; vfs_quotactl_t *vfs_quotactl; vfs_statfs_t *vfs_statfs; vfs_sync_t *vfs_sync; @@ -741,6 +743,12 @@ vfs_statfs_t __vfs_statfs; _rc = (*(MP)->mnt_op->vfs_root)(MP, FLAGS, VPP); \ _rc; }) +#define VFS_CACHEDROOT(MP, FLAGS, VPP) ({ \ + int _rc; \ + \ + _rc = (*(MP)->mnt_op->vfs_cachedroot)(MP, FLAGS, VPP); \ + _rc; }) + #define VFS_QUOTACTL(MP, C, U, A) ({ \ int _rc; \ \ @@ -949,6 +957,9 @@ vfs_sysctl_t vfs_stdsysctl; void syncer_suspend(void); void syncer_resume(void); + +struct vnode *vfs_cache_root_clear(struct mount *); +void vfs_cache_root_set(struct mount *, struct vnode *); void vfs_op_barrier_wait(struct mount *); void vfs_op_enter(struct mount *); Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sun Oct 6 22:13:35 2019 (r353149) +++ head/sys/sys/vnode.h Sun Oct 6 22:14:32 2019 (r353150) @@ -746,6 +746,7 @@ int vn_io_fault_pgmove(vm_page_t ma[], vm_offset_t off rangelock_trywlock(&(vp)->v_rl, (start), (end), VI_MTX(vp)) int vfs_cache_lookup(struct vop_lookup_args *ap); +int vfs_cache_root(struct mount *mp, int flags, struct vnode **vpp); void vfs_timestamp(struct timespec *); void vfs_write_resume(struct mount *mp, int flags); int vfs_write_suspend(struct mount *mp, int flags); From owner-svn-src-head@freebsd.org Sun Oct 6 22:16:00 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E39561363C6; Sun, 6 Oct 2019 22:16: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 46mdH45lGSz3QMY; Sun, 6 Oct 2019 22:16: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 A8AC04FF1; Sun, 6 Oct 2019 22:16: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 x96MG0IJ085758; Sun, 6 Oct 2019 22:16:00 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MG070085756; Sun, 6 Oct 2019 22:16:00 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062216.x96MG070085756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:16:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353151 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 353151 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:16:01 -0000 Author: mjg Date: Sun Oct 6 22:16:00 2019 New Revision: 353151 URL: https://svnweb.freebsd.org/changeset/base/353151 Log: zfs: add root vnode caching This replaces the approach added in r338927. See r353150. Sponsored by: The FreeBSD Foundation Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h Sun Oct 6 22:14:32 2019 (r353150) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h Sun Oct 6 22:16:00 2019 (r353151) @@ -46,8 +46,6 @@ struct zfsvfs { zfsvfs_t *z_parent; /* parent fs */ objset_t *z_os; /* objset reference */ uint64_t z_root; /* id of root znode */ - struct vnode *z_rootvnode; /* root vnode */ - struct rmlock z_rootvnodelock;/* protection for root vnode */ uint64_t z_unlinkedobj; /* id of unlinked zapobj */ uint64_t z_max_blksz; /* maximum block size for files */ uint64_t z_fuid_obj; /* fuid table object number */ 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 Oct 6 22:14:32 2019 (r353150) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Sun Oct 6 22:16:00 2019 (r353151) @@ -65,7 +65,6 @@ #include #include #include -#include #include "zfs_comutil.h" @@ -93,9 +92,6 @@ static int zfs_version_zpl = ZPL_VERSION; SYSCTL_INT(_vfs_zfs_version, OID_AUTO, zpl, CTLFLAG_RD, &zfs_version_zpl, 0, "ZPL_VERSION"); -static int zfs_root_setvnode(zfsvfs_t *zfsvfs); -static void zfs_root_dropvnode(zfsvfs_t *zfsvfs); - static int zfs_quotactl(vfs_t *vfsp, int cmds, uid_t id, void *arg); static int zfs_mount(vfs_t *vfsp); static int zfs_umount(vfs_t *vfsp, int fflag); @@ -112,7 +108,8 @@ static void zfs_freevfs(vfs_t *vfsp); struct vfsops zfs_vfsops = { .vfs_mount = zfs_mount, .vfs_unmount = zfs_umount, - .vfs_root = zfs_root, + .vfs_root = vfs_cache_root, + .vfs_cachedroot = zfs_root, .vfs_statfs = zfs_statfs, .vfs_vget = zfs_vget, .vfs_sync = zfs_sync, @@ -1213,8 +1210,6 @@ zfsvfs_create_impl(zfsvfs_t **zfvp, zfsvfs_t *zfsvfs, for (int i = 0; i != ZFS_OBJ_MTX_SZ; i++) mutex_init(&zfsvfs->z_hold_mtx[i], NULL, MUTEX_DEFAULT, NULL); - rm_init(&zfsvfs->z_rootvnodelock, "zfs root vnode lock"); - error = zfsvfs_init(zfsvfs, os); if (error != 0) { *zfvp = NULL; @@ -1321,8 +1316,6 @@ zfsvfs_free(zfsvfs_t *zfsvfs) rw_enter(&zfsvfs_lock, RW_READER); rw_exit(&zfsvfs_lock); - rm_destroy(&zfsvfs->z_rootvnodelock); - zfs_fuid_destroy(zfsvfs); mutex_destroy(&zfsvfs->z_znodes_lock); @@ -1929,9 +1922,6 @@ zfs_mount(vfs_t *vfsp) error = zfs_domount(vfsp, osname); PICKUP_GIANT(); - if (error == 0) - zfs_root_setvnode((zfsvfs_t *)vfsp->vfs_data); - #ifdef illumos /* * Add an extra VFS_HOLD on our parent vfs so that it can't @@ -2004,65 +1994,14 @@ zfs_statfs(vfs_t *vfsp, struct statfs *statp) } static int -zfs_root_setvnode(zfsvfs_t *zfsvfs) -{ - znode_t *rootzp; - int error; - - ZFS_ENTER(zfsvfs); - error = zfs_zget(zfsvfs, zfsvfs->z_root, &rootzp); - if (error != 0) - panic("could not zfs_zget for root vnode"); - ZFS_EXIT(zfsvfs); - - rm_wlock(&zfsvfs->z_rootvnodelock); - if (zfsvfs->z_rootvnode != NULL) - panic("zfs mount point already has a root vnode: %p\n", - zfsvfs->z_rootvnode); - zfsvfs->z_rootvnode = ZTOV(rootzp); - rm_wunlock(&zfsvfs->z_rootvnodelock); - return (0); -} - -static void -zfs_root_putvnode(zfsvfs_t *zfsvfs) -{ - struct vnode *vp; - - rm_wlock(&zfsvfs->z_rootvnodelock); - vp = zfsvfs->z_rootvnode; - zfsvfs->z_rootvnode = NULL; - rm_wunlock(&zfsvfs->z_rootvnodelock); - if (vp != NULL) - vrele(vp); -} - -static int zfs_root(vfs_t *vfsp, int flags, vnode_t **vpp) { - struct rm_priotracker tracker; zfsvfs_t *zfsvfs = vfsp->vfs_data; znode_t *rootzp; int error; - rm_rlock(&zfsvfs->z_rootvnodelock, &tracker); - *vpp = zfsvfs->z_rootvnode; - if (*vpp != NULL && (((*vpp)->v_iflag & VI_DOOMED) == 0)) { - vrefact(*vpp); - rm_runlock(&zfsvfs->z_rootvnodelock, &tracker); - goto lock; - } - rm_runlock(&zfsvfs->z_rootvnodelock, &tracker); - - /* - * We found the vnode but did not like it. - */ - if (*vpp != NULL) { - *vpp = NULL; - zfs_root_putvnode(zfsvfs); - } - ZFS_ENTER(zfsvfs); + error = zfs_zget(zfsvfs, zfsvfs->z_root, &rootzp); if (error == 0) *vpp = ZTOV(rootzp); @@ -2070,7 +2009,6 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t **vpp) ZFS_EXIT(zfsvfs); if (error == 0) { -lock: error = vn_lock(*vpp, flags); if (error != 0) { VN_RELE(*vpp); @@ -2188,8 +2126,6 @@ zfs_umount(vfs_t *vfsp, int fflag) objset_t *os; cred_t *cr = td->td_ucred; int ret; - - zfs_root_putvnode(zfsvfs); ret = secpolicy_fs_unmount(cr, vfsp); if (ret) { From owner-svn-src-head@freebsd.org Sun Oct 6 22:16:55 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C1D15136496; Sun, 6 Oct 2019 22:16:55 +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 46mdJ74mgTz3QVT; Sun, 6 Oct 2019 22:16:55 +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 8866A4FF3; Sun, 6 Oct 2019 22:16:55 +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 x96MGtlw085844; Sun, 6 Oct 2019 22:16:55 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MGt3P085843; Sun, 6 Oct 2019 22:16:55 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062216.x96MGt3P085843@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:16:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353152 - head/sys/fs/devfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/devfs X-SVN-Commit-Revision: 353152 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:16:55 -0000 Author: mjg Date: Sun Oct 6 22:16:55 2019 New Revision: 353152 URL: https://svnweb.freebsd.org/changeset/base/353152 Log: devfs: add root vnode caching See r353150. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21646 Modified: head/sys/fs/devfs/devfs_vfsops.c Modified: head/sys/fs/devfs/devfs_vfsops.c ============================================================================== --- head/sys/fs/devfs/devfs_vfsops.c Sun Oct 6 22:16:00 2019 (r353151) +++ head/sys/fs/devfs/devfs_vfsops.c Sun Oct 6 22:16:55 2019 (r353152) @@ -156,6 +156,7 @@ devfs_mount(struct mount *mp) } VOP_UNLOCK(rvp, 0); + vfs_cache_root_set(mp, rvp); vfs_mountedfrom(mp, "devfs"); @@ -237,7 +238,8 @@ devfs_statfs(struct mount *mp, struct statfs *sbp) static struct vfsops devfs_vfsops = { .vfs_mount = devfs_mount, - .vfs_root = devfs_root, + .vfs_root = vfs_cache_root, + .vfs_cachedroot = devfs_root, .vfs_statfs = devfs_statfs, .vfs_unmount = devfs_unmount, }; From owner-svn-src-head@freebsd.org Sun Oct 6 22:17:11 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D2094136578; Sun, 6 Oct 2019 22:17:11 +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 46mdJR5FjTz3Qdt; Sun, 6 Oct 2019 22:17: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 973554FF5; Sun, 6 Oct 2019 22:17: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 x96MHB5w085907; Sun, 6 Oct 2019 22:17:11 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MHBAp085906; Sun, 6 Oct 2019 22:17:11 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062217.x96MHBAp085906@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:17:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353153 - 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: 353153 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:17:11 -0000 Author: mjg Date: Sun Oct 6 22:17:11 2019 New Revision: 353153 URL: https://svnweb.freebsd.org/changeset/base/353153 Log: tmpfs: add root vnode caching See r353150. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21646 Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vfsops.c Sun Oct 6 22:16:55 2019 (r353152) +++ head/sys/fs/tmpfs/tmpfs_vfsops.c Sun Oct 6 22:17:11 2019 (r353153) @@ -710,7 +710,8 @@ tmpfs_susp_clean(struct mount *mp __unused) struct vfsops tmpfs_vfsops = { .vfs_mount = tmpfs_mount, .vfs_unmount = tmpfs_unmount, - .vfs_root = tmpfs_root, + .vfs_root = vfs_cache_root, + .vfs_cachedroot = tmpfs_root, .vfs_statfs = tmpfs_statfs, .vfs_fhtovp = tmpfs_fhtovp, .vfs_sync = tmpfs_sync, From owner-svn-src-head@freebsd.org Sun Oct 6 22:17:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6405A1365ED; Sun, 6 Oct 2019 22:17:30 +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 46mdJp23PFz3Qmd; Sun, 6 Oct 2019 22:17:30 +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 29A524FF6; Sun, 6 Oct 2019 22:17:30 +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 x96MHTY1085972; Sun, 6 Oct 2019 22:17:29 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MHTkC085971; Sun, 6 Oct 2019 22:17:29 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062217.x96MHTkC085971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:17:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353154 - head/sys/fs/nfsclient X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/nfsclient X-SVN-Commit-Revision: 353154 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:17:30 -0000 Author: mjg Date: Sun Oct 6 22:17:29 2019 New Revision: 353154 URL: https://svnweb.freebsd.org/changeset/base/353154 Log: nfsclient: add root vnode caching See r353150. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21646 Modified: head/sys/fs/nfsclient/nfs_clvfsops.c Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Sun Oct 6 22:17:11 2019 (r353153) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Sun Oct 6 22:17:29 2019 (r353154) @@ -136,7 +136,8 @@ static struct vfsops nfs_vfsops = { .vfs_init = ncl_init, .vfs_mount = nfs_mount, .vfs_cmount = nfs_cmount, - .vfs_root = nfs_root, + .vfs_root = vfs_cache_root, + .vfs_cachedroot = nfs_root, .vfs_statfs = nfs_statfs, .vfs_sync = nfs_sync, .vfs_uninit = ncl_uninit, @@ -1626,6 +1627,7 @@ mountnfs(struct nfs_args *argp, struct mount *mp, stru * Lose the lock but keep the ref. */ NFSVOPUNLOCK(*vpp, 0); + vfs_cache_root_set(mp, *vpp); return (0); } error = EIO; From owner-svn-src-head@freebsd.org Sun Oct 6 22:18:04 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B887136687; Sun, 6 Oct 2019 22:18:04 +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 46mdKS2Zh0z3QvL; Sun, 6 Oct 2019 22:18:04 +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 3BF7A4FF7; Sun, 6 Oct 2019 22:18:04 +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 x96MI46T086043; Sun, 6 Oct 2019 22:18:04 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MI4sW086042; Sun, 6 Oct 2019 22:18:04 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910062218.x96MI4sW086042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 6 Oct 2019 22:18:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353155 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 353155 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:18:04 -0000 Author: mjg Date: Sun Oct 6 22:18:03 2019 New Revision: 353155 URL: https://svnweb.freebsd.org/changeset/base/353155 Log: ufs: add root vnode caching See r353150. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21646 Modified: head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Sun Oct 6 22:17:29 2019 (r353154) +++ head/sys/ufs/ffs/ffs_vfsops.c Sun Oct 6 22:18:03 2019 (r353155) @@ -109,7 +109,8 @@ static struct vfsops ufs_vfsops = { .vfs_mount = ffs_mount, .vfs_cmount = ffs_cmount, .vfs_quotactl = ufs_quotactl, - .vfs_root = ufs_root, + .vfs_root = vfs_cache_root, + .vfs_cachedroot = ufs_root, .vfs_statfs = ffs_statfs, .vfs_sync = ffs_sync, .vfs_uninit = ffs_uninit, From owner-svn-src-head@freebsd.org Sun Oct 6 22:29:03 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A562113696F; Sun, 6 Oct 2019 22:29:03 +0000 (UTC) (envelope-from rrs@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 46mdZ73dyXz3wZY; Sun, 6 Oct 2019 22:29:03 +0000 (UTC) (envelope-from rrs@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 606B951B4; Sun, 6 Oct 2019 22:29:03 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x96MT3Ua092195; Sun, 6 Oct 2019 22:29:03 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96MT2Pw092193; Sun, 6 Oct 2019 22:29:02 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <201910062229.x96MT2Pw092193@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Sun, 6 Oct 2019 22:29:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353156 - in head/sys: netinet sys X-SVN-Group: head X-SVN-Commit-Author: rrs X-SVN-Commit-Paths: in head/sys: netinet sys X-SVN-Commit-Revision: 353156 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 22:29:03 -0000 Author: rrs Date: Sun Oct 6 22:29:02 2019 New Revision: 353156 URL: https://svnweb.freebsd.org/changeset/base/353156 Log: Brad Davis identified a problem with the new LRO code, VLAN's no longer worked. The problem was that the defines used the same space as the VLAN id. This commit does three things. 1) Move the LRO used fields to the PH_per fields. This is safe since the entire PH_per is used for IP reassembly which LRO code will not hit. 2) Remove old unused pace fields that are not used in mbuf.h 3) The VLAN processing is not in the mbuf queueing code. Consequently if a VLAN submits to Rack or BBR we need to bypass the mbuf queueing for now until rack_bbr_common is updated to handle the VLAN properly. Reported by: Brad Davis Modified: head/sys/netinet/tcp_lro.c head/sys/sys/mbuf.h Modified: head/sys/netinet/tcp_lro.c ============================================================================== --- head/sys/netinet/tcp_lro.c Sun Oct 6 22:18:03 2019 (r353155) +++ head/sys/netinet/tcp_lro.c Sun Oct 6 22:29:02 2019 (r353156) @@ -875,7 +875,14 @@ tcp_lro_flush(struct lro_ctrl *lc, struct lro_entry *l /* Now lets lookup the inp first */ CURVNET_SET(lc->ifp->if_vnet); - if (tcplro_stacks_wanting_mbufq == 0) + /* + * XXXRRS Currently the common input handler for + * mbuf queuing cannot handle VLAN Tagged. This needs + * to be fixed and the or condition removed (i.e. the + * common code should do the right lookup for the vlan + * tag and anything else that the vlan_input() does). + */ + if ((tcplro_stacks_wanting_mbufq == 0) || (le->m_head->m_flags & M_VLANTAG)) goto skip_lookup; INP_INFO_RLOCK_ET(&V_tcbinfo, et); switch (le->eh_type) { Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sun Oct 6 22:18:03 2019 (r353155) +++ head/sys/sys/mbuf.h Sun Oct 6 22:29:02 2019 (r353156) @@ -194,18 +194,13 @@ struct pkthdr { }; #define ether_vtag PH_per.sixteen[0] #define PH_vt PH_per -#define vt_nrecs sixteen[0] -#define tso_segsz PH_per.sixteen[1] -#define lro_nsegs tso_segsz -#define csum_phsum PH_per.sixteen[2] -#define csum_data PH_per.thirtytwo[1] -#define lro_len PH_per.sixteen[0] /* inbound during LRO */ -#define lro_csum PH_per.sixteen[1] /* inbound during LRO */ -#define pace_thoff PH_loc.sixteen[0] -#define pace_tlen PH_loc.sixteen[1] -#define pace_drphdrlen PH_loc.sixteen[2] -#define pace_tos PH_loc.eight[6] -#define pace_lock PH_loc.eight[7] +#define vt_nrecs sixteen[0] /* mld and v6-ND */ +#define tso_segsz PH_per.sixteen[1] /* inbound after LRO */ +#define lro_nsegs tso_segsz /* inbound after LRO */ +#define csum_data PH_per.thirtytwo[1] /* inbound from hardware up */ +#define lro_len PH_loc.sixteen[0] /* inbound during LRO (no reassembly) */ +#define lro_csum PH_loc.sixteen[1] /* inbound during LRO (no reassembly) */ +/* Note PH_loc is used during IP reassembly (all 8 bytes as a ptr) */ /* * Description of external storage mapped into mbuf; valid only if M_EXT is From owner-svn-src-head@freebsd.org Mon Oct 7 02:36:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 38BC613B3BE; Mon, 7 Oct 2019 02:36:43 +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 46ml3v0n60z47dZ; Mon, 7 Oct 2019 02:36:43 +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 F246A7DF5; Mon, 7 Oct 2019 02:36:42 +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 x972agBW039459; Mon, 7 Oct 2019 02:36:42 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x972agwN039458; Mon, 7 Oct 2019 02:36:42 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910070236.x972agwN039458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 7 Oct 2019 02:36:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353158 - head/sys/powerpc/aim X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/aim X-SVN-Commit-Revision: 353158 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 02:36:43 -0000 Author: jhibbits Date: Mon Oct 7 02:36:42 2019 New Revision: 353158 URL: https://svnweb.freebsd.org/changeset/base/353158 Log: powerpc64/pmap: Fix release order to match lock order in moea64_enter() Page PV lock is always taken first, so should be released last. This also (trivially) shortens the hold time of the pmap lock. Submitted by: mjg Modified: head/sys/powerpc/aim/mmu_oea64.c Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Mon Oct 7 01:03:14 2019 (r353157) +++ head/sys/powerpc/aim/mmu_oea64.c Mon Oct 7 02:36:42 2019 (r353158) @@ -1453,8 +1453,8 @@ moea64_enter(mmu_t mmu, pmap_t pmap, vm_offset_t va, v moea64_pvo_enter(mmu, pvo, pvo_head, NULL); } } - PV_PAGE_UNLOCK(m); PMAP_UNLOCK(pmap); + PV_PAGE_UNLOCK(m); /* Free any dead pages */ if (error == EEXIST) { From owner-svn-src-head@freebsd.org Mon Oct 7 03:05:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CEAD713BBBE; Mon, 7 Oct 2019 03:05:32 +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 46mlj854nyz490V; Mon, 7 Oct 2019 03:05:32 +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 92F2883C2; Mon, 7 Oct 2019 03:05:32 +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 x9735W7M058133; Mon, 7 Oct 2019 03:05:32 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9735WuS058132; Mon, 7 Oct 2019 03:05:32 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910070305.x9735WuS058132@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 7 Oct 2019 03:05:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353160 - head/stand/powerpc/ofw X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/stand/powerpc/ofw X-SVN-Commit-Revision: 353160 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 03:05:32 -0000 Author: jhibbits Date: Mon Oct 7 03:05:32 2019 New Revision: 353160 URL: https://svnweb.freebsd.org/changeset/base/353160 Log: loader/powerpc64: Fix HV check for CAS usage Logic was backwards. The function returns true if it *is* running as a hypervisor, whereas we want to only call the CAS utility if we're running as a guest. Reported by: Shawn Anastasio Modified: head/stand/powerpc/ofw/cas.c Modified: head/stand/powerpc/ofw/cas.c ============================================================================== --- head/stand/powerpc/ofw/cas.c Mon Oct 7 02:57:00 2019 (r353159) +++ head/stand/powerpc/ofw/cas.c Mon Oct 7 03:05:32 2019 (r353160) @@ -203,7 +203,7 @@ ppc64_cas(void) } /* Skip CAS when running on PowerNV */ - if (!ppc64_hv()) + if (ppc64_hv()) return (0); ihandle = OF_open("/"); From owner-svn-src-head@freebsd.org Mon Oct 7 03:28:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A7C3313C15F; Mon, 7 Oct 2019 03:28:12 +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 46mmCJ2fXDz49xr; Mon, 7 Oct 2019 03:28:12 +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 3DF528770; Mon, 7 Oct 2019 03:28:12 +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 x973SCP3069935; Mon, 7 Oct 2019 03:28:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x973SCEJ069934; Mon, 7 Oct 2019 03:28:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910070328.x973SCEJ069934@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 7 Oct 2019 03:28:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353161 - head/stand/powerpc/uboot X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/powerpc/uboot X-SVN-Commit-Revision: 353161 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 03:28:12 -0000 Author: kevans Date: Mon Oct 7 03:28:11 2019 New Revision: 353161 URL: https://svnweb.freebsd.org/changeset/base/353161 Log: Revert r352557: powerpc/loader: Install ubldr without stripping This was committed due to what was later diagnosed as an msdosfs bug preventing in-place strip. This bug was fixed in r352564, and we agreed to keep the workaround in for a bit to allow the driver fix a suitable amount of propagation time for folks building/installing powerpc/ubldr, seeing as how we were not in any hurry to revert. Modified: head/stand/powerpc/uboot/Makefile Modified: head/stand/powerpc/uboot/Makefile ============================================================================== --- head/stand/powerpc/uboot/Makefile Mon Oct 7 03:05:32 2019 (r353160) +++ head/stand/powerpc/uboot/Makefile Mon Oct 7 03:28:11 2019 (r353161) @@ -13,7 +13,6 @@ LOADER_BZIP2_SUPPORT?= no BINDIR= /boot/uboot PROG= ubldr -STRIP= NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} INSTALLFLAGS= -b From owner-svn-src-head@freebsd.org Mon Oct 7 03:37:28 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C612013C504; Mon, 7 Oct 2019 03:37:28 +0000 (UTC) (envelope-from alc@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 46mmQ04rxyz4BQJ; Mon, 7 Oct 2019 03:37:28 +0000 (UTC) (envelope-from alc@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 89D14892E; Mon, 7 Oct 2019 03:37:28 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x973bSZG075799; Mon, 7 Oct 2019 03:37:28 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x973bSSk075798; Mon, 7 Oct 2019 03:37:28 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201910070337.x973bSSk075798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Mon, 7 Oct 2019 03:37:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353162 - head/sys/arm64/arm64 X-SVN-Group: head X-SVN-Commit-Author: alc X-SVN-Commit-Paths: head/sys/arm64/arm64 X-SVN-Commit-Revision: 353162 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 03:37:28 -0000 Author: alc Date: Mon Oct 7 03:37:28 2019 New Revision: 353162 URL: https://svnweb.freebsd.org/changeset/base/353162 Log: Eliminate a redundant bzero(). The l0 page table page was already zeroed by efi_1t1_page(). MFC after: 1 week Modified: head/sys/arm64/arm64/efirt_machdep.c Modified: head/sys/arm64/arm64/efirt_machdep.c ============================================================================== --- head/sys/arm64/arm64/efirt_machdep.c Mon Oct 7 03:28:11 2019 (r353161) +++ head/sys/arm64/arm64/efirt_machdep.c Mon Oct 7 03:37:28 2019 (r353162) @@ -176,7 +176,6 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int efi_l0_page = efi_1t1_page(); VM_OBJECT_WUNLOCK(obj_1t1_pt); efi_l0 = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(efi_l0_page)); - bzero(efi_l0, L0_ENTRIES * sizeof(*efi_l0)); for (i = 0, p = map; i < ndesc; i++, p = efi_next_descriptor(p, descsz)) { From owner-svn-src-head@freebsd.org Mon Oct 7 04:06:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E00E313D01E; Mon, 7 Oct 2019 04:06:30 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.9]) (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 46mn3V2sgfz4Cdc; Mon, 7 Oct 2019 04:06:29 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id HKHxiKRsSUIS2HKHyirAXx; Sun, 06 Oct 2019 22:06:27 -0600 X-Authority-Analysis: v=2.3 cv=N41X6F1B c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=lOS_Odmdl_pBiiOyV4YA:9 a=Lbpz2pudGXshr3yw:21 a=mYlyBKZxwNgoiiW5:21 a=rnxLagT7ZbKrBtMz:21 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id DC4261F9; Sun, 6 Oct 2019 21:06:23 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x9746Njr009110; Sun, 6 Oct 2019 21:06:23 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x9746N0U009068; Sun, 6 Oct 2019 21:06:23 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910070406.x9746N0U009068@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 In-reply-to: <201910062213.x96MDZv3085523@repo.freebsd.org> References: <201910062213.x96MDZv3085523@repo.freebsd.org> Comments: In-reply-to Mateusz Guzik message dated "Sun, 06 Oct 2019 22:13:35 -0000." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 06 Oct 2019 21:06:23 -0700 X-CMAE-Envelope: MS4wfHfMLH4vXnTl2GQYEgZUCY/mxO+CiVss4cr+92f/RGU877E+vJHEMstgUbc7DyY22TPZsiQffKknh0PrgSTWE8vLht8GxntUAWNdkW2cYyDonPzp2/Cy E6dRgRCN8txPVYdXDmtrfDd1zRCxBKXfEzSe+1GiMbVTZO9ovDamjh1g0YLSLIBureM1DDp6wJgNUSHpmQIFPce6D2T1lEFoktrQuGSi7CvUmEqFBcF3wucB m4mf8rgDM8Z5WkJ7oQ2a39EN77GZEbgJwbQVBPLrl3gfzwC2faEcytPNdQJkBAO7 X-Rspamd-Queue-Id: 46mn3V2sgfz4Cdc 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:06:31 -0000 In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz Guzik writes : > Author: mjg > Date: Sun Oct 6 22:13:35 2019 > New Revision: 353149 > URL: https://svnweb.freebsd.org/changeset/base/353149 > > Log: > amd64 pmap: implement per-superpage locks > > The current 256-lock sized array is a problem in the following ways: > - it's way too small > - there are 2 locks per cacheline > - it is not NUMA-aware > > Solve these issues by introducing per-superpage locks backed by pages > allocated from respective domains. > > This significantly reduces contention e.g. during poudriere -j 104. > See the review for results. > > Reviewed by: kib > Discussed with: jeff > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D21833 > > Modified: > head/sys/amd64/amd64/pmap.c > > Modified: head/sys/amd64/amd64/pmap.c > ============================================================================= > = > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 > 8) > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 > 9) > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) > #define PV_STAT(x) do { } while (0) > #endif > > -#define pa_index(pa) ((pa) >> PDRSHIFT) > +#undef pa_index > +#define pa_index(pa) ({ \ > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ > + ("address %lx beyond the last segment", (pa))); \ > + (pa) >> PDRSHIFT; \ > +}) > +#if VM_NRESERVLEVEL > 0 > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) > +#define PHYS_TO_PV_LIST_LOCK(pa) \ > + (&(pa_to_pmdp(pa)->pv_lock)) > +#else > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) > > #define NPV_LIST_LOCKS MAXCPU > > #define PHYS_TO_PV_LIST_LOCK(pa) \ > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) > +#endif > > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ > struct rwlock **_lockp = (lockp); \ > @@ -400,14 +412,22 @@ static int pmap_initialized; > > /* > * Data for the pv entry allocation mechanism. > - * Updates to pv_invl_gen are protected by the pv_list_locks[] > - * elements, but reads are not. > + * Updates to pv_invl_gen are protected by the pv list lock but reads are no > t. > */ > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = TAILQ_HEAD_INITIALIZER(pv_chunk > s); > static struct mtx __exclusive_cache_line pv_chunks_mutex; > +#if VM_NRESERVLEVEL > 0 > +struct pmap_large_md_page { > + struct rwlock pv_lock; > + struct md_page pv_page; > + u_long pv_invl_gen; > +}; > +static struct pmap_large_md_page *pv_table; > +#else > static struct rwlock __exclusive_cache_line pv_list_locks[NPV_LIST_LOCKS]; > static u_long pv_invl_gen[NPV_LIST_LOCKS]; > static struct md_page *pv_table; > +#endif > static struct md_page pv_dummy; > > /* > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, CTLFLA > "Number of slow invalidation waits for lockless DI"); > #endif > > +#if VM_NRESERVLEVEL > 0 > static u_long * > pmap_delayed_invl_genp(vm_page_t m) > { > > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); > +} > +#else > +static u_long * > +pmap_delayed_invl_genp(vm_page_t m) > +{ > + > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LOCKS]); > } > +#endif > > static void > pmap_delayed_invl_callout_func(void *arg __unused) > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) > m->md.pat_mode = PAT_WRITE_BACK; > } > > +#if VM_NRESERVLEVEL > 0 > +static void > +pmap_init_pv_table(void) > +{ > + struct pmap_large_md_page *pvd; > + vm_size_t s; > + long start, end, highest, pv_npg; > + int domain, i, j, pages; > + > + /* > + * We strongly depend on the size being a power of two, so the assert > + * is overzealous. However, should the struct be resized to a > + * different power of two, the code below needs to be revisited. > + */ > + CTASSERT((sizeof(*pvd) == 64)); > + > + /* > + * Calculate the size of the array. > + */ > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); > + s = round_page(s); > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); > + if (pv_table == NULL) > + panic("%s: kva_alloc failed\n", __func__); > + > + /* > + * Iterate physical segments to allocate space for respective pages. > + */ > + highest = -1; > + s = 0; > + for (i = 0; i < vm_phys_nsegs; i++) { > + start = vm_phys_segs[i].start / NBPDR; > + end = vm_phys_segs[i].end / NBPDR; > + domain = vm_phys_segs[i].domain; > + > + if (highest >= end) > + continue; > + > + if (start < highest) { > + start = highest + 1; > + pvd = &pv_table[start]; > + } else { > + /* > + * The lowest address may land somewhere in the middle > + * of our page. Simplify the code by pretending it is > + * at the beginning. > + */ > + pvd = pa_to_pmdp(vm_phys_segs[i].start); > + pvd = (struct pmap_large_md_page *)trunc_page(pvd); > + start = pvd - pv_table; > + } > + > + pages = end - start + 1; > + s = round_page(pages * sizeof(*pvd)); > + highest = start + (s / sizeof(*pvd)) - 1; > + > + for (j = 0; j < s; j += PAGE_SIZE) { > + vm_page_t m = vm_page_alloc_domain(NULL, 0, > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); > + if (m == NULL) > + panic("vm_page_alloc_domain failed for %lx\n", > (vm_offset_t)pvd + j); > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); > + } > + > + for (j = 0; j < s / sizeof(*pvd); j++) { > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW_NEW); > + TAILQ_INIT(&pvd->pv_page.pv_list); > + pvd->pv_page.pv_gen = 0; > + pvd->pv_page.pat_mode = 0; > + pvd->pv_invl_gen = 0; > + pvd++; > + } > + } > + TAILQ_INIT(&pv_dummy.pv_list); > +} > +#else > +static void > +pmap_init_pv_table(void) > +{ > + vm_size_t s; > + long i, pv_npg; > + > + /* > + * Initialize the pool of pv list locks. > + */ > + for (i = 0; i < NPV_LIST_LOCKS; i++) > + rw_init(&pv_list_locks[i], "pmap pv list"); > + > + /* > + * Calculate the size of the pv head table for superpages. > + */ > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > + > + /* > + * Allocate memory for the pv head table for superpages. > + */ > + s = (vm_size_t)pv_npg * sizeof(struct md_page); > + s = round_page(s); > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > + for (i = 0; i < pv_npg; i++) > + TAILQ_INIT(&pv_table[i].pv_list); > + TAILQ_INIT(&pv_dummy.pv_list); > +} > +#endif > + > /* > * Initialize the pmap module. > * Called by vm_init, to initialize any structures that the pmap > @@ -1813,8 +1948,7 @@ pmap_init(void) > { > struct pmap_preinit_mapping *ppim; > vm_page_t m, mpte; > - vm_size_t s; > - int error, i, pv_npg, ret, skz63; > + int error, i, ret, skz63; > > /* L1TF, reserve page @0 unconditionally */ > vm_page_blacklist_add(0, bootverbose); > @@ -1902,26 +2036,7 @@ pmap_init(void) > */ > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF); > > - /* > - * Initialize the pool of pv list locks. > - */ > - for (i = 0; i < NPV_LIST_LOCKS; i++) > - rw_init(&pv_list_locks[i], "pmap pv list"); > - > - /* > - * Calculate the size of the pv head table for superpages. > - */ > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > - > - /* > - * Allocate memory for the pv head table for superpages. > - */ > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); > - s = round_page(s); > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > - for (i = 0; i < pv_npg; i++) > - TAILQ_INIT(&pv_table[i].pv_list); > - TAILQ_INIT(&pv_dummy.pv_list); > + pmap_init_pv_table(); > > pmap_initialized = 1; > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { > This causes a page fault during X (xdm) startup, which loads drm-current-kmod. db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0093e9c260 vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 panic() at panic+0x43/frame 0xfffffe0093e9c310 vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 trap() at trap+0x2a1/frame 0xfffffe0093e9c620 calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = 0xfffffe0093e9c7a0 --- pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 trap() at trap+0x438/frame 0xfffffe0093e9cab0 calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 --- Uptime: 3m33s Dumping 945 out of 7974 MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% (kgdb) bt #0 doadump (textdump=1) at pcpu_aux.h:55 #1 0xffffffff8068c5ed in kern_reboot (howto=260) at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 #2 0xffffffff8068caa9 in vpanic (fmt=, ap=) at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 #3 0xffffffff8068c8a3 in panic (fmt=) at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 #4 0xffffffff8098c966 in vm_fault (map=, vaddr=, fault_type=, fault_flags=, m_hold=) at /opt/src/svn-current/sys/vm/vm_fault.c:672 #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, vaddr=, fault_type=2 '\002', fault_flags=, signo=0x0, ucode=0x0) at /opt/src/svn-current/sys/vm/vm_fault.c:568 #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, signo=, ucode=) at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 #8 0xffffffff809f1aac in calltrap () at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 ---Type to continue, or q to quit--- #9 0xffffffff80a054b1 in pmap_enter (pmap=, va=851443712, m=0xfffffe0005b25ce8, prot=, flags=2677542912, psind=) at atomic.h:221 #10 0xffffffff8098c4a9 in vm_fault (map=, vaddr=, fault_type=232 '\ufffd', fault_flags=, m_hold=0x0) at /opt/src/svn-current/sys/vm/vm_fault.c:489 #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, vaddr=, fault_type=2 '\002', fault_flags=, signo=0xfffffe0093e9ca84, ucode=0xfffffe0093e9ca80) at /opt/src/svn-current/sys/vm/vm_fault.c:568 #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, signo=, ucode=) at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 #14 0xffffffff809f1aac in calltrap () at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 #15 0x0000000030e2a9c3 in ?? () Previous frame inner to this frame (corrupt stack?) Current language: auto; currently minimal (kgdb) frame 9 #9 0xffffffff80a054b1 in pmap_enter (pmap=, va=851443712, m=0xfffffe0005b25ce8, prot=, flags=2677542912, psind=) at atomic.h:221 221 ATOMIC_CMPSET(long); (kgdb) l 216 } 217 218 ATOMIC_CMPSET(char); 219 ATOMIC_CMPSET(short); 220 ATOMIC_CMPSET(int); 221 ATOMIC_CMPSET(long); 222 223 /* 224 * Atomically add the value of v to the integer pointed to by p and return 225 * the previous value of *p. (kgdb) -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Mon Oct 7 04:19:28 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD66D13D3FA; Mon, 7 Oct 2019 04:19:28 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.9]) (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 46mnLR3wDnz4DDP; Mon, 7 Oct 2019 04:19:27 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id HKUWiKW6NUIS2HKUYirBxt; Sun, 06 Oct 2019 22:19:26 -0600 X-Authority-Analysis: v=2.3 cv=N41X6F1B c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=VxmjJ2MpAAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=mrD6Db6FRn1tpQ38ZcQA:9 a=EGpPWdiTKVysKlUV:21 a=5TlqYLIIbbRyA83v:21 a=YkHeFceOPo6kCEkl:21 a=CjuIK1q_8ugA:10 a=a5Ldh8olR6cA:10 a=7gXAzLPJhVmCkEl4_tsf:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id A2FB420B; Sun, 6 Oct 2019 21:19:24 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x974JO94020577; Sun, 6 Oct 2019 21:19:24 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x974JOkQ020574; Sun, 6 Oct 2019 21:19:24 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910070419.x974JOkQ020574@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 In-reply-to: <201910070406.x9746N0U009068@slippy.cwsent.com> References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> Comments: In-reply-to Cy Schubert message dated "Sun, 06 Oct 2019 21:06:23 -0700." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 06 Oct 2019 21:19:24 -0700 X-CMAE-Envelope: MS4wfAb/8i7BarQW1eFzyUi1rrdBsJPr8uUEZL1vtMLyfmnBqwQ+XMMSdd0iMZJAjDPC1BPQadIeEfpfIuK01xYxOOmdzaNpUoHY3SY8X0wNOA3SSsNt80sN AHqWemt8a4CLikHvXTaGPh3GeOGUnJPmSUZqesLD+0n896xYj9C1Lx9hBOjXxzQ28TMZTM5h/htBA7XNXZOqinVdvvqsqq1fr4NSap75zWZ5e6j1a8CD9jxi SGnTVM3RokiJQX3XICe1TkU6xxfZQCrKFPpJ/9tYX7FK83Hi1OUoPA6CEF59uReC X-Rspamd-Queue-Id: 46mnLR3wDnz4DDP X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.134.9) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-3.96 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MV_CASE(0.50)[]; REPLYTO_EQ_FROM(0.00)[]; IP_SCORE(-2.36)[ip: (-6.25), ipnet: 64.59.128.0/20(-3.07), asn: 6327(-2.38), country: CA(-0.09)]; RCVD_IN_DNSWL_NONE(0.00)[9.134.59.64.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,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:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:19:28 -0000 In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy Schubert writes: > In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz Guzik > writes > : > > Author: mjg > > Date: Sun Oct 6 22:13:35 2019 > > New Revision: 353149 > > URL: https://svnweb.freebsd.org/changeset/base/353149 > > > > Log: > > amd64 pmap: implement per-superpage locks > > > > The current 256-lock sized array is a problem in the following ways: > > - it's way too small > > - there are 2 locks per cacheline > > - it is not NUMA-aware > > > > Solve these issues by introducing per-superpage locks backed by pages > > allocated from respective domains. > > > > This significantly reduces contention e.g. during poudriere -j 104. > > See the review for results. > > > > Reviewed by: kib > > Discussed with: jeff > > Sponsored by: The FreeBSD Foundation > > Differential Revision: https://reviews.freebsd.org/D21833 > > > > Modified: > > head/sys/amd64/amd64/pmap.c > > > > Modified: head/sys/amd64/amd64/pmap.c > > =========================================================================== > == > > = > > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 > > 8) > > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 > > 9) > > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) > > #define PV_STAT(x) do { } while (0) > > #endif > > > > -#define pa_index(pa) ((pa) >> PDRSHIFT) > > +#undef pa_index > > +#define pa_index(pa) ({ \ > > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ > > + ("address %lx beyond the last segment", (pa))); \ > > + (pa) >> PDRSHIFT; \ > > +}) > > +#if VM_NRESERVLEVEL > 0 > > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) > > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) > > +#define PHYS_TO_PV_LIST_LOCK(pa) \ > > + (&(pa_to_pmdp(pa)->pv_lock)) > > +#else > > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) > > > > #define NPV_LIST_LOCKS MAXCPU > > > > #define PHYS_TO_PV_LIST_LOCK(pa) \ > > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) > > +#endif > > > > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ > > struct rwlock **_lockp = (lockp); \ > > @@ -400,14 +412,22 @@ static int pmap_initialized; > > > > /* > > * Data for the pv entry allocation mechanism. > > - * Updates to pv_invl_gen are protected by the pv_list_locks[] > > - * elements, but reads are not. > > + * Updates to pv_invl_gen are protected by the pv list lock but reads are > no > > t. > > */ > > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = TAILQ_HEAD_INITIALIZER(pv_chu > nk > > s); > > static struct mtx __exclusive_cache_line pv_chunks_mutex; > > +#if VM_NRESERVLEVEL > 0 > > +struct pmap_large_md_page { > > + struct rwlock pv_lock; > > + struct md_page pv_page; > > + u_long pv_invl_gen; > > +}; > > +static struct pmap_large_md_page *pv_table; > > +#else > > static struct rwlock __exclusive_cache_line pv_list_locks[NPV_LIST_LOCKS]; > > static u_long pv_invl_gen[NPV_LIST_LOCKS]; > > static struct md_page *pv_table; > > +#endif > > static struct md_page pv_dummy; > > > > /* > > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, CTLFL > A > > "Number of slow invalidation waits for lockless DI"); > > #endif > > > > +#if VM_NRESERVLEVEL > 0 > > static u_long * > > pmap_delayed_invl_genp(vm_page_t m) > > { > > > > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); > > +} > > +#else > > +static u_long * > > +pmap_delayed_invl_genp(vm_page_t m) > > +{ > > + > > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LOCKS]); > > } > > +#endif > > > > static void > > pmap_delayed_invl_callout_func(void *arg __unused) > > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) > > m->md.pat_mode = PAT_WRITE_BACK; > > } > > > > +#if VM_NRESERVLEVEL > 0 > > +static void > > +pmap_init_pv_table(void) > > +{ > > + struct pmap_large_md_page *pvd; > > + vm_size_t s; > > + long start, end, highest, pv_npg; > > + int domain, i, j, pages; > > + > > + /* > > + * We strongly depend on the size being a power of two, so the assert > > + * is overzealous. However, should the struct be resized to a > > + * different power of two, the code below needs to be revisited. > > + */ > > + CTASSERT((sizeof(*pvd) == 64)); > > + > > + /* > > + * Calculate the size of the array. > > + */ > > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); > > + s = round_page(s); > > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); > > + if (pv_table == NULL) > > + panic("%s: kva_alloc failed\n", __func__); > > + > > + /* > > + * Iterate physical segments to allocate space for respective pages. > > + */ > > + highest = -1; > > + s = 0; > > + for (i = 0; i < vm_phys_nsegs; i++) { > > + start = vm_phys_segs[i].start / NBPDR; > > + end = vm_phys_segs[i].end / NBPDR; > > + domain = vm_phys_segs[i].domain; > > + > > + if (highest >= end) > > + continue; > > + > > + if (start < highest) { > > + start = highest + 1; > > + pvd = &pv_table[start]; > > + } else { > > + /* > > + * The lowest address may land somewhere in the middle > > + * of our page. Simplify the code by pretending it is > > + * at the beginning. > > + */ > > + pvd = pa_to_pmdp(vm_phys_segs[i].start); > > + pvd = (struct pmap_large_md_page *)trunc_page(pvd); > > + start = pvd - pv_table; > > + } > > + > > + pages = end - start + 1; > > + s = round_page(pages * sizeof(*pvd)); > > + highest = start + (s / sizeof(*pvd)) - 1; > > + > > + for (j = 0; j < s; j += PAGE_SIZE) { > > + vm_page_t m = vm_page_alloc_domain(NULL, 0, > > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); > > + if (m == NULL) > > + panic("vm_page_alloc_domain failed for %lx\n", > > (vm_offset_t)pvd + j); > > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); > > + } > > + > > + for (j = 0; j < s / sizeof(*pvd); j++) { > > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW_NEW); > > + TAILQ_INIT(&pvd->pv_page.pv_list); > > + pvd->pv_page.pv_gen = 0; > > + pvd->pv_page.pat_mode = 0; > > + pvd->pv_invl_gen = 0; > > + pvd++; > > + } > > + } > > + TAILQ_INIT(&pv_dummy.pv_list); > > +} > > +#else > > +static void > > +pmap_init_pv_table(void) > > +{ > > + vm_size_t s; > > + long i, pv_npg; > > + > > + /* > > + * Initialize the pool of pv list locks. > > + */ > > + for (i = 0; i < NPV_LIST_LOCKS; i++) > > + rw_init(&pv_list_locks[i], "pmap pv list"); > > + > > + /* > > + * Calculate the size of the pv head table for superpages. > > + */ > > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > > + > > + /* > > + * Allocate memory for the pv head table for superpages. > > + */ > > + s = (vm_size_t)pv_npg * sizeof(struct md_page); > > + s = round_page(s); > > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > > + for (i = 0; i < pv_npg; i++) > > + TAILQ_INIT(&pv_table[i].pv_list); > > + TAILQ_INIT(&pv_dummy.pv_list); > > +} > > +#endif > > + > > /* > > * Initialize the pmap module. > > * Called by vm_init, to initialize any structures that the pmap > > @@ -1813,8 +1948,7 @@ pmap_init(void) > > { > > struct pmap_preinit_mapping *ppim; > > vm_page_t m, mpte; > > - vm_size_t s; > > - int error, i, pv_npg, ret, skz63; > > + int error, i, ret, skz63; > > > > /* L1TF, reserve page @0 unconditionally */ > > vm_page_blacklist_add(0, bootverbose); > > @@ -1902,26 +2036,7 @@ pmap_init(void) > > */ > > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF); > > > > - /* > > - * Initialize the pool of pv list locks. > > - */ > > - for (i = 0; i < NPV_LIST_LOCKS; i++) > > - rw_init(&pv_list_locks[i], "pmap pv list"); > > - > > - /* > > - * Calculate the size of the pv head table for superpages. > > - */ > > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > > - > > - /* > > - * Allocate memory for the pv head table for superpages. > > - */ > > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); > > - s = round_page(s); > > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > > - for (i = 0; i < pv_npg; i++) > > - TAILQ_INIT(&pv_table[i].pv_list); > > - TAILQ_INIT(&pv_dummy.pv_list); > > + pmap_init_pv_table(); > > > > pmap_initialized = 1; > > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { > > > > This causes a page fault during X (xdm) startup, which loads > drm-current-kmod. > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > 0xfffffe0093e9c260 > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > panic() at panic+0x43/frame 0xfffffe0093e9c310 > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = > 0xfffffe0093e9c7a0 --- > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > trap() at trap+0x438/frame 0xfffffe0093e9cab0 > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 > --- > Uptime: 3m33s > Dumping 945 out of 7974 MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > > (kgdb) bt > #0 doadump (textdump=1) at pcpu_aux.h:55 > #1 0xffffffff8068c5ed in kern_reboot (howto=260) > at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 > #2 0xffffffff8068caa9 in vpanic (fmt=, > ap=) > at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 > #3 0xffffffff8068c8a3 in panic (fmt=) > at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 > #4 0xffffffff8098c966 in vm_fault (map=, > vaddr=, fault_type=, > fault_flags=, m_hold=) > at /opt/src/svn-current/sys/vm/vm_fault.c:672 > #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, > vaddr=, fault_type=2 '\002', > fault_flags=, signo=0x0, ucode=0x0) > at /opt/src/svn-current/sys/vm/vm_fault.c:568 > #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, > signo=, ucode=) > at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) > at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 > #8 0xffffffff809f1aac in calltrap () > at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > ---Type to continue, or q to quit--- > #9 0xffffffff80a054b1 in pmap_enter (pmap=, > va=851443712, m=0xfffffe0005b25ce8, prot=, > flags=2677542912, psind=) at atomic.h:221 > #10 0xffffffff8098c4a9 in vm_fault (map=, > vaddr=, fault_type=232 '\ufffd', > fault_flags=, m_hold=0x0) > at /opt/src/svn-current/sys/vm/vm_fault.c:489 > #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, > vaddr=, fault_type=2 '\002', > fault_flags=, signo=0xfffffe0093e9ca84, > ucode=0xfffffe0093e9ca80) at /opt/src/svn-current/sys/vm/vm_fault.c:568 > #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, > signo=, ucode=) > at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) > at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 > #14 0xffffffff809f1aac in calltrap () > at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > #15 0x0000000030e2a9c3 in ?? () > Previous frame inner to this frame (corrupt stack?) > Current language: auto; currently minimal > (kgdb) frame 9 > #9 0xffffffff80a054b1 in pmap_enter (pmap=, > va=851443712, m=0xfffffe0005b25ce8, prot=, > flags=2677542912, psind=) at atomic.h:221 > 221 ATOMIC_CMPSET(long); > (kgdb) l > 216 } > 217 > 218 ATOMIC_CMPSET(char); > 219 ATOMIC_CMPSET(short); > 220 ATOMIC_CMPSET(int); > 221 ATOMIC_CMPSET(long); > 222 > 223 /* > 224 * Atomically add the value of v to the integer pointed to by p and > return > 225 * the previous value of *p. > (kgdb) I should use kgdb from ports instead of /usr/libexec version. Similar result. <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> lock)) panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 cpuid = 1 time = 1570417211 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0093e9c260 vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 panic() at panic+0x43/frame 0xfffffe0093e9c310 vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 trap() at trap+0x2a1/frame 0xfffffe0093e9c620 calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = 0xfffffe0093e9c7a0 --- pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 trap() at trap+0x438/frame 0xfffffe0093e9cab0 calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 --- Uptime: 3m33s Dumping 945 out of 7974 MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu, (kgdb) Backtrace stopped: Cannot access memory at address 0x7fffffffea50 (kgdb) frame 10 #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, src=, expect=) at /opt/src/svn-current/sys/amd64/include/atomic.h:221 221 ATOMIC_CMPSET(long); (kgdb) l 216 } 217 218 ATOMIC_CMPSET(char); 219 ATOMIC_CMPSET(short); 220 ATOMIC_CMPSET(int); 221 ATOMIC_CMPSET(long); 222 223 /* 224 * Atomically add the value of v to the integer pointed to by p and return 225 * the previous value of *p. (kgdb) -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Mon Oct 7 04:22:04 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AE2913D615; Mon, 7 Oct 2019 04:22:04 +0000 (UTC) (envelope-from alc@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 46mnPR73YNz4Db7; Mon, 7 Oct 2019 04:22:03 +0000 (UTC) (envelope-from alc@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 D552291D0; Mon, 7 Oct 2019 04:22:03 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x974M3MX004980; Mon, 7 Oct 2019 04:22:03 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x974M3lt004978; Mon, 7 Oct 2019 04:22:03 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201910070422.x974M3lt004978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Mon, 7 Oct 2019 04:22:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353163 - in head/sys: arm64/include riscv/include X-SVN-Group: head X-SVN-Commit-Author: alc X-SVN-Commit-Paths: in head/sys: arm64/include riscv/include X-SVN-Commit-Revision: 353163 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:22:04 -0000 Author: alc Date: Mon Oct 7 04:22:03 2019 New Revision: 353163 URL: https://svnweb.freebsd.org/changeset/base/353163 Log: Eliminate an unused declaration. The variable in question is only defined and used on sparc64. MFC after: 1 week Modified: head/sys/arm64/include/vmparam.h head/sys/riscv/include/vmparam.h Modified: head/sys/arm64/include/vmparam.h ============================================================================== --- head/sys/arm64/include/vmparam.h Mon Oct 7 03:37:28 2019 (r353162) +++ head/sys/arm64/include/vmparam.h Mon Oct 7 04:22:03 2019 (r353163) @@ -234,7 +234,6 @@ extern vm_paddr_t dmap_phys_base; extern vm_paddr_t dmap_phys_max; extern vm_offset_t dmap_max_addr; -extern u_int tsb_kernel_ldd_phys; extern vm_offset_t vm_max_kernel_address; extern vm_offset_t init_pt_va; Modified: head/sys/riscv/include/vmparam.h ============================================================================== --- head/sys/riscv/include/vmparam.h Mon Oct 7 03:37:28 2019 (r353162) +++ head/sys/riscv/include/vmparam.h Mon Oct 7 04:22:03 2019 (r353163) @@ -228,7 +228,6 @@ extern vm_paddr_t dmap_phys_base; extern vm_paddr_t dmap_phys_max; extern vm_offset_t dmap_max_addr; -extern u_int tsb_kernel_ldd_phys; extern vm_offset_t vm_max_kernel_address; extern vm_offset_t init_pt_va; #endif From owner-svn-src-head@freebsd.org Mon Oct 7 07:37:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1838DF981E; Mon, 7 Oct 2019 07:37:43 +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 46mslB6wvvz4NfP; Mon, 7 Oct 2019 07:37:42 +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 D114BB35C; Mon, 7 Oct 2019 07:37:42 +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 x977bg2N015963; Mon, 7 Oct 2019 07:37:42 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x977bgPi015962; Mon, 7 Oct 2019 07:37:42 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910070737.x977bgPi015962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 07:37:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353165 - head/sys/arm/include X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/arm/include X-SVN-Commit-Revision: 353165 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 07:37:43 -0000 Author: avg Date: Mon Oct 7 07:37:42 2019 New Revision: 353165 URL: https://svnweb.freebsd.org/changeset/base/353165 Log: align use of cp15_pmccntr_get with its availability According to ian, the only armv6 cpu we support is the 1176, so this change is effectively a no-op. The change is just to make the code more self-consistent. The issue was noticed by a standalone module build for armv6. Reviewed by: ian MFC after: 3 weeks Modified: head/sys/arm/include/cpu.h Modified: head/sys/arm/include/cpu.h ============================================================================== --- head/sys/arm/include/cpu.h Mon Oct 7 04:44:01 2019 (r353164) +++ head/sys/arm/include/cpu.h Mon Oct 7 07:37:42 2019 (r353165) @@ -20,7 +20,7 @@ void swi_vm(void *); static __inline uint64_t get_cyclecount(void) { -#if __ARM_ARCH >= 6 +#if __ARM_ARCH > 6 || (__ARM_ARCH == 6 && defined(CPU_ARM1176)) #if (__ARM_ARCH > 6) && defined(DEV_PMU) if (pmu_attched) { u_int cpu; From owner-svn-src-head@freebsd.org Mon Oct 7 07:42:27 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45103F9D0C; Mon, 7 Oct 2019 07:42:27 +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 46msrg0xxnz4PFG; Mon, 7 Oct 2019 07:42:27 +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 04CDCB50C; Mon, 7 Oct 2019 07:42:27 +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 x977gQrs021841; Mon, 7 Oct 2019 07:42:26 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x977gQ92021840; Mon, 7 Oct 2019 07:42:26 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910070742.x977gQ92021840@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 07:42:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353166 - head/sys/mips/include X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/mips/include X-SVN-Commit-Revision: 353166 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 07:42:27 -0000 Author: avg Date: Mon Oct 7 07:42:26 2019 New Revision: 353166 URL: https://svnweb.freebsd.org/changeset/base/353166 Log: add atomic_load_64 for mipsn32 It's just an alias for atomic_load_acq_64 (same as on i386). MFC after: 1 week Modified: head/sys/mips/include/atomic.h Modified: head/sys/mips/include/atomic.h ============================================================================== --- head/sys/mips/include/atomic.h Mon Oct 7 07:37:42 2019 (r353165) +++ head/sys/mips/include/atomic.h Mon Oct 7 07:42:26 2019 (r353166) @@ -348,6 +348,10 @@ ATOMIC_STORE_LOAD(32) ATOMIC_STORE_LOAD(64) #undef ATOMIC_STORE_LOAD +#ifdef __mips_n32 +#define atomic_load_64 atomic_load_acq_64 +#endif + /* * Atomically compare the value stored at *p with cmpval and if the * two values are equal, update the value of *p with newval. Returns From owner-svn-src-head@freebsd.org Mon Oct 7 07:54:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 64C96FA770; Mon, 7 Oct 2019 07:54:35 +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 46mt6g210gz4QV6; Mon, 7 Oct 2019 07:54:35 +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 27F8AB6F2; Mon, 7 Oct 2019 07:54:35 +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 x977sYL7028099; Mon, 7 Oct 2019 07:54:34 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x977sYLd028098; Mon, 7 Oct 2019 07:54:34 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910070754.x977sYLd028098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 07:54:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353167 - in head/sys/cddl/compat/opensolaris: kern sys X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head/sys/cddl/compat/opensolaris: kern sys X-SVN-Commit-Revision: 353167 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 07:54:35 -0000 Author: avg Date: Mon Oct 7 07:54:34 2019 New Revision: 353167 URL: https://svnweb.freebsd.org/changeset/base/353167 Log: ZFS: add emulation of atomic_swap_64 and atomic_load_64 Some 32-bit platforms do not provide 64-bit atomic operations that ZFS requires, either in userland or at all. We emulate those operations for those platforms using a mutex. That is not entirely correct and it's very efficient. Besides, the loads are plain loads, so torn values are possible. Nevertheless, the emulation seems to work for some definition of work. This change adds atomic_swap_64, which is already used in ZFS code, and atomic_load_64 that can be used to prevent torn reads. MFC after: 1 week Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c head/sys/cddl/compat/opensolaris/sys/atomic.h Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Mon Oct 7 07:42:26 2019 (r353166) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Mon Oct 7 07:54:34 2019 (r353167) @@ -71,6 +71,29 @@ atomic_dec_64(volatile uint64_t *target) *target -= 1; mtx_unlock(&atomic_mtx); } + +uint64_t +atomic_swap_64(volatile uint64_t *a, uint64_t value) +{ + uint64_t ret; + + mtx_lock(&atomic_mtx); + ret = *a; + *a = value; + mtx_unlock(&atomic_mtx); + return (ret); +} + +uint64_t +atomic_load_64(volatile uint64_t *a) +{ + uint64_t ret; + + mtx_lock(&atomic_mtx); + ret = *a; + mtx_unlock(&atomic_mtx); + return (ret); +} #endif uint64_t Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Mon Oct 7 07:42:26 2019 (r353166) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Mon Oct 7 07:54:34 2019 (r353167) @@ -44,6 +44,8 @@ !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) extern void atomic_add_64(volatile uint64_t *target, int64_t delta); extern void atomic_dec_64(volatile uint64_t *target); +extern uint64_t atomic_swap_64(volatile uint64_t *a, uint64_t value); +extern uint64_t atomic_load_64(volatile uint64_t *a); #endif #ifndef __sparc64__ extern uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, From owner-svn-src-head@freebsd.org Mon Oct 7 08:00:54 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A7050FB321; Mon, 7 Oct 2019 08:00:54 +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 46mtFy3y7fz4R1w; Mon, 7 Oct 2019 08:00:54 +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 6B058B71F; Mon, 7 Oct 2019 08:00:54 +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 x9780s7f030253; Mon, 7 Oct 2019 08:00:54 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9780sRM030252; Mon, 7 Oct 2019 08:00:54 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910070800.x9780sRM030252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 08:00:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353168 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 353168 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:00:54 -0000 Author: avg Date: Mon Oct 7 08:00:54 2019 New Revision: 353168 URL: https://svnweb.freebsd.org/changeset/base/353168 Log: ZFS: unconditionally use atomic_swap_64 Previously, the code used a plain store on platforms that lacked atomic_swap_64 and possibly some other platforms as the condition worked only if atomic_swap_64 was a macro. MFC after: 1 week X-MFC after: r353166, r353167 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 07:54:34 2019 (r353167) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 08:00:54 2019 (r353168) @@ -313,12 +313,8 @@ feature_sync(spa_t *spa, zfeature_info_t *feature, uin if (feature->fi_feature != SPA_FEATURE_NONE) { uint64_t *refcount_cache = &spa->spa_feat_refcount_cache[feature->fi_feature]; -#ifdef atomic_swap_64 VERIFY3U(*refcount_cache, ==, atomic_swap_64(refcount_cache, refcount)); -#else - *refcount_cache = refcount; -#endif } if (refcount == 0) From owner-svn-src-head@freebsd.org Mon Oct 7 08:11:49 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF0CBFBE2A; Mon, 7 Oct 2019 08:11:49 +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 46mtVY49Bzz4S8W; Mon, 7 Oct 2019 08:11:49 +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 72E50B935; Mon, 7 Oct 2019 08:11:49 +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 x978BnhX039459; Mon, 7 Oct 2019 08:11:49 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978BnA5039458; Mon, 7 Oct 2019 08:11:49 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201910070811.x978BnA5039458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 Oct 2019 08:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353172 - head/sys/gnu/dts/arm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/gnu/dts/arm X-SVN-Commit-Revision: 353172 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:11:49 -0000 Author: manu Date: Mon Oct 7 08:11:49 2019 New Revision: 353172 URL: https://svnweb.freebsd.org/changeset/base/353172 Log: arm: dts: ti: Fix mmc3 instance by setting it to disabled DTS Import of Linux 5.3 added a patch that rework the L3 mmc instance in the AM335x SoC but removed the status = 'disabled' on the node. This cause the kernel to probe the device even if the board doesn't have this mmc used and since we don't correctly activate the clock for this module we panic with an external data abort. Beaglebone(s) don't have this device anyway so simply disabling it. Patch for the DTS was sent upstream. https://patchwork.kernel.org/patch/11176921/ PR: 241089 Reported by: phk Modified: head/sys/gnu/dts/arm/am33xx.dtsi Modified: head/sys/gnu/dts/arm/am33xx.dtsi ============================================================================== --- head/sys/gnu/dts/arm/am33xx.dtsi Mon Oct 7 08:11:12 2019 (r353171) +++ head/sys/gnu/dts/arm/am33xx.dtsi Mon Oct 7 08:11:49 2019 (r353172) @@ -260,6 +260,7 @@ ti,needs-special-reset; interrupts = <29>; reg = <0x0 0x1000>; + status = "disabled"; }; }; From owner-svn-src-head@freebsd.org Mon Oct 7 08:14:47 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B56D5FC12A; Mon, 7 Oct 2019 08:14:47 +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 46mtYz55qzz4Snh; Mon, 7 Oct 2019 08:14:47 +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 91BE1BA77; Mon, 7 Oct 2019 08:14:47 +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 x978ElNJ040655; Mon, 7 Oct 2019 08:14:47 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978EjAO040644; Mon, 7 Oct 2019 08:14:45 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910070814.x978EjAO040644@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 08:14:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353176 - in head: cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zstreamdump cddl/contrib/opensolaris/cmd/ztest sys/cddl/contrib/opensolaris/common/zfs sys/cddl/contrib/... X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head: cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zstreamdump cddl/contrib/opensolaris/cmd/ztest sys/cddl/contrib/opensolaris/common/zfs sys/cddl/contrib/opensolaris/uts/common/fs... X-SVN-Commit-Revision: 353176 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:14:47 -0000 Author: avg Date: Mon Oct 7 08:14:45 2019 New Revision: 353176 URL: https://svnweb.freebsd.org/changeset/base/353176 Log: MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool feature 8423 8199 7432 Implement large_dnode pool feature 7432 Large dnode pool feature 8199 multi-threaded dmu_object_alloc() 8423 Implement large_dnode pool feature 10406 large_dnode changes broke zfs recv of legacy stream llumos/illumos-gate@54811da5ac6b517992fdc173df5d605e4e61fdc0 https://github.com/illumos/illumos-gate/commit/54811da5ac6b517992fdc173df5d605e4e61fdc0 https://www.illumos.org/issues/8423 https://www.illumos.org/issues/8199 https://www.illumos.org/issues/7432 illumos/illumos-gate@811964cd9f1fbae0fc3b93d116269e9b1fca090a https://github.com/illumos/illumos-gate/commit/811964cd9f1fbae0fc3b93d116269e9b1fca090a https://www.illumos.org/issues/10406 ZoL issues: Improved dnode allocation #6564 Clean up large dnode code #6262 Fix dnode_hold() freeing dnode behavior #8172 Fix dnode allocation race #6414, #6439 Partial: Raw sends must be able to decrease nlevels #6821, #6864 Remove unnecessary txg syncs from receive_object() Closes #7197 This updates FreeBSD large_dnode code (that was imported from ZoL) to a version that was committed to illumos. It has some cleanups, improvements and fixes comparing to what we have in FreeBSD now. I think that the most significant update is 8199 multi-threaded dmu_object_alloc(). This commit reverts r351077 that was a revert of r351074 and r351076 and restores those changes. Required atomic operations should be available now on all platforms where we build ZFS. Obtained from: illumos MFC after: 3 weeks Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c head/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c head/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c head/cddl/contrib/opensolaris/cmd/ztest/ztest.c head/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zdb/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Mon Oct 7 08:14:45 2019 (r353176) @@ -2134,7 +2134,8 @@ static object_viewer_t *object_viewer[DMU_OT_NUMTYPES }; static void -dump_object(objset_t *os, uint64_t object, int verbosity, int *print_header) +dump_object(objset_t *os, uint64_t object, int verbosity, int *print_header, + uint64_t *dnode_slots_used) { dmu_buf_t *db = NULL; dmu_object_info_t doi; @@ -2154,7 +2155,7 @@ dump_object(objset_t *os, uint64_t object, int verbosi CTASSERT(sizeof (bonus_size) >= NN_NUMBUF_SZ); if (*print_header) { - (void) printf("\n%10s %3s %5s %5s %5s %6s %5s %6s %s\n", + (void) printf("\n%10s %3s %5s %5s %5s %6s %5s %6s %s\n", "Object", "lvl", "iblk", "dblk", "dsize", "dnsize", "lsize", "%full", "type"); *print_header = 0; @@ -2173,6 +2174,9 @@ dump_object(objset_t *os, uint64_t object, int verbosi } dmu_object_info_from_dnode(dn, &doi); + if (dnode_slots_used != NULL) + *dnode_slots_used = doi.doi_dnodesize / DNODE_MIN_SIZE; + zdb_nicenum(doi.doi_metadata_block_size, iblk, sizeof (iblk)); zdb_nicenum(doi.doi_data_block_size, dblk, sizeof (dblk)); zdb_nicenum(doi.doi_max_offset, lsize, sizeof (lsize)); @@ -2195,8 +2199,9 @@ dump_object(objset_t *os, uint64_t object, int verbosi ZDB_COMPRESS_NAME(doi.doi_compress)); } - (void) printf("%10lld %3u %5s %5s %5s %6s %5s %6s %s%s\n", - (u_longlong_t)object, doi.doi_indirection, iblk, dblk, + (void) printf("%10" PRIu64 + " %3u %5s %5s %5s %5s %5s %6s %s%s\n", + object, doi.doi_indirection, iblk, dblk, asize, dnsize, lsize, fill, ZDB_OT_NAME(doi.doi_type), aux); if (doi.doi_bonus_type != DMU_OT_NONE && verbosity > 3) { @@ -2305,6 +2310,9 @@ dump_dir(objset_t *os) int print_header = 1; unsigned i; int error; + uint64_t total_slots_used = 0; + uint64_t max_slot_used = 0; + uint64_t dnode_slots; /* make sure nicenum has enough space */ CTASSERT(sizeof (numbuf) >= NN_NUMBUF_SZ); @@ -2349,7 +2357,7 @@ dump_dir(objset_t *os) if (zopt_objects != 0) { for (i = 0; i < zopt_objects; i++) dump_object(os, zopt_object[i], verbosity, - &print_header); + &print_header, NULL); (void) printf("\n"); return; } @@ -2374,22 +2382,37 @@ dump_dir(objset_t *os) if (BP_IS_HOLE(os->os_rootbp)) return; - dump_object(os, 0, verbosity, &print_header); + dump_object(os, 0, verbosity, &print_header, NULL); object_count = 0; if (DMU_USERUSED_DNODE(os) != NULL && DMU_USERUSED_DNODE(os)->dn_type != 0) { - dump_object(os, DMU_USERUSED_OBJECT, verbosity, &print_header); - dump_object(os, DMU_GROUPUSED_OBJECT, verbosity, &print_header); + dump_object(os, DMU_USERUSED_OBJECT, verbosity, &print_header, + NULL); + dump_object(os, DMU_GROUPUSED_OBJECT, verbosity, &print_header, + NULL); } object = 0; while ((error = dmu_object_next(os, &object, B_FALSE, 0)) == 0) { - dump_object(os, object, verbosity, &print_header); + dump_object(os, object, verbosity, &print_header, &dnode_slots); object_count++; + total_slots_used += dnode_slots; + max_slot_used = object + dnode_slots - 1; } (void) printf("\n"); + (void) printf(" Dnode slots:\n"); + (void) printf("\tTotal used: %10llu\n", + (u_longlong_t)total_slots_used); + (void) printf("\tMax used: %10llu\n", + (u_longlong_t)max_slot_used); + (void) printf("\tPercent empty: %10lf\n", + (double)(max_slot_used - total_slots_used)*100 / + (double)max_slot_used); + + (void) printf("\n"); + if (error != ESRCH) { (void) fprintf(stderr, "dmu_object_next() = %d\n", error); abort(); @@ -2581,7 +2604,7 @@ dump_path_impl(objset_t *os, uint64_t obj, char *name) return (dump_path_impl(os, child_obj, s + 1)); /*FALLTHROUGH*/ case DMU_OT_PLAIN_FILE_CONTENTS: - dump_object(os, child_obj, dump_opt['v'], &header); + dump_object(os, child_obj, dump_opt['v'], &header, NULL); return (0); default: (void) fprintf(stderr, "object %llu has non-file/directory " Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c Mon Oct 7 08:14:45 2019 (r353176) @@ -84,15 +84,15 @@ zil_prt_rec_create(zilog_t *zilog, int txtype, void *a } (void) printf("%s%s", tab_prefix, ctime(&crtime)); - (void) printf("%sdoid %llu, foid %llu, slots %llu, mode %llo\n", tab_prefix, - (u_longlong_t)lr->lr_doid, - (u_longlong_t)LR_FOID_GET_OBJ(lr->lr_foid), - (u_longlong_t)LR_FOID_GET_SLOTS(lr->lr_foid), - (longlong_t)lr->lr_mode); - (void) printf("%suid %llu, gid %llu, gen %llu, rdev 0x%llx\n", - tab_prefix, - (u_longlong_t)lr->lr_uid, (u_longlong_t)lr->lr_gid, - (u_longlong_t)lr->lr_gen, (u_longlong_t)lr->lr_rdev); + (void) printf("%sdoid %" PRIu64 ", foid %" PRIu64 ", slots %" PRIu64 + ", mode %" PRIo64 "\n", + tab_prefix, lr->lr_doid, + (uint64_t)LR_FOID_GET_OBJ(lr->lr_foid), + (uint64_t)LR_FOID_GET_SLOTS(lr->lr_foid), + lr->lr_mode); + (void) printf("%suid %" PRIu64 ", gid %" PRIu64 ", gen %" PRIu64 + ", rdev %#" PRIx64 "\n", + tab_prefix, lr->lr_uid, lr->lr_gid, lr->lr_gen, lr->lr_rdev); } /* ARGSUSED */ Modified: head/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c Mon Oct 7 08:14:45 2019 (r353176) @@ -416,13 +416,15 @@ main(int argc, char *argv[]) drro->drr_toguid = BSWAP_64(drro->drr_toguid); } if (verbose) { - (void) printf("OBJECT object = %llu type = %u " - "bonustype = %u blksz = %u bonuslen = %u\n", - (u_longlong_t)drro->drr_object, + (void) printf("OBJECT object = %" PRIu64 + " type = %u bonustype = %u blksz = %u" + " bonuslen = %u dn_slots = %u\n", + drro->drr_object, drro->drr_type, drro->drr_bonustype, drro->drr_blksz, - drro->drr_bonuslen); + drro->drr_bonuslen, + drro->drr_dn_slots); } if (drro->drr_bonuslen > 0) { (void) ssread(buf, Modified: head/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/ztest/ztest.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/cddl/contrib/opensolaris/cmd/ztest/ztest.c Mon Oct 7 08:14:45 2019 (r353176) @@ -196,6 +196,7 @@ extern uint64_t zfs_deadman_synctime_ms; extern int metaslab_preload_limit; extern boolean_t zfs_compressed_arc_enabled; extern boolean_t zfs_abd_scatter_enabled; +extern int dmu_object_alloc_chunk_shift; extern boolean_t zfs_force_some_double_word_sm_entries; static ztest_shared_opts_t *ztest_shared_opts; @@ -322,6 +323,7 @@ static ztest_shared_callstate_t *ztest_shared_callstat ztest_func_t ztest_dmu_read_write; ztest_func_t ztest_dmu_write_parallel; ztest_func_t ztest_dmu_object_alloc_free; +ztest_func_t ztest_dmu_object_next_chunk; ztest_func_t ztest_dmu_commit_callbacks; ztest_func_t ztest_zap; ztest_func_t ztest_zap_parallel; @@ -363,6 +365,7 @@ ztest_info_t ztest_info[] = { { ztest_dmu_read_write, 1, &zopt_always }, { ztest_dmu_write_parallel, 10, &zopt_always }, { ztest_dmu_object_alloc_free, 1, &zopt_always }, + { ztest_dmu_object_next_chunk, 1, &zopt_sometimes }, { ztest_dmu_commit_callbacks, 1, &zopt_always }, { ztest_zap, 30, &zopt_always }, { ztest_zap_parallel, 100, &zopt_always }, @@ -1366,7 +1369,7 @@ ztest_bt_bonus(dmu_buf_t *db) * it unique to the object, generation, and offset to verify that data * is not getting overwritten by data from other dnodes. */ -#define ZTEST_BONUS_FILL_TOKEN(obj, ds, gen, offset) \ +#define ZTEST_BONUS_FILL_TOKEN(obj, ds, gen, offset) \ (((ds) << 48) | ((gen) << 32) | ((obj) << 8) | (offset)) /* @@ -1895,6 +1898,7 @@ ztest_replay_setattr(void *arg1, void *arg2, boolean_t ztest_bt_generate(bbt, os, lr->lr_foid, dnodesize, -1ULL, lr->lr_mode, txg, crtxg); ztest_fill_unused_bonus(db, bbt, lr->lr_foid, os, bbt->bt_gen); + dmu_buf_rele(db, FTAG); (void) ztest_log_setattr(zd, tx, lr); @@ -3815,8 +3819,10 @@ ztest_dmu_object_alloc_free(ztest_ds_t *zd, uint64_t i ztest_od_t od[4]; int batchsize = sizeof (od) / sizeof (od[0]); - for (int b = 0; b < batchsize; b++) - ztest_od_init(&od[b], id, FTAG, b, DMU_OT_UINT64_OTHER, 0, 0, 0); + for (int b = 0; b < batchsize; b++) { + ztest_od_init(&od[b], id, FTAG, b, DMU_OT_UINT64_OTHER, + 0, 0, 0); + } /* * Destroy the previous batch of objects, create a new batch, @@ -3831,6 +3837,26 @@ ztest_dmu_object_alloc_free(ztest_ds_t *zd, uint64_t i } /* + * Rewind the global allocator to verify object allocation backfilling. + */ +void +ztest_dmu_object_next_chunk(ztest_ds_t *zd, uint64_t id) +{ + objset_t *os = zd->zd_os; + int dnodes_per_chunk = 1 << dmu_object_alloc_chunk_shift; + uint64_t object; + + /* + * Rewind the global allocator randomly back to a lower object number + * to force backfilling and reclamation of recently freed dnodes. + */ + mutex_enter(&os->os_obj_lock); + object = ztest_random(os->os_obj_next_chunk); + os->os_obj_next_chunk = P2ALIGN(object, dnodes_per_chunk); + mutex_exit(&os->os_obj_lock); +} + +/* * Verify that dmu_{read,write} work as expected. */ void @@ -3876,8 +3902,10 @@ ztest_dmu_read_write(ztest_ds_t *zd, uint64_t id) /* * Read the directory info. If it's the first time, set things up. */ - ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, 0, 0, chunksize); - ztest_od_init(&od[1], id, FTAG, 1, DMU_OT_UINT64_OTHER, 0, 0, chunksize); + ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, 0, 0, + chunksize); + ztest_od_init(&od[1], id, FTAG, 1, DMU_OT_UINT64_OTHER, 0, 0, + chunksize); if (ztest_object_init(zd, od, sizeof (od), B_FALSE) != 0) return; @@ -4146,8 +4174,10 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *zd, uint64_t id /* * Read the directory info. If it's the first time, set things up. */ - ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, 0, 0); - ztest_od_init(&od[1], id, FTAG, 1, DMU_OT_UINT64_OTHER, 0, 0, chunksize); + ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, + 0, 0); + ztest_od_init(&od[1], id, FTAG, 1, DMU_OT_UINT64_OTHER, 0, 0, + chunksize); if (ztest_object_init(zd, od, sizeof (od), B_FALSE) != 0) return; @@ -4347,7 +4377,8 @@ ztest_dmu_write_parallel(ztest_ds_t *zd, uint64_t id) * to verify that parallel writes to an object -- even to the * same blocks within the object -- doesn't cause any trouble. */ - ztest_od_init(&od[0], ID_PARALLEL, FTAG, 0, DMU_OT_UINT64_OTHER, 0, 0, 0); + ztest_od_init(&od[0], ID_PARALLEL, FTAG, 0, DMU_OT_UINT64_OTHER, + 0, 0, 0); if (ztest_object_init(zd, od, sizeof (od), B_FALSE) != 0) return; @@ -4366,7 +4397,8 @@ ztest_dmu_prealloc(ztest_ds_t *zd, uint64_t id) uint64_t blocksize = ztest_random_blocksize(); void *data; - ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, 0, 0); + ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, + 0, 0); if (ztest_object_init(zd, od, sizeof (od), !ztest_random(2)) != 0) return; @@ -4590,7 +4622,8 @@ ztest_zap_parallel(ztest_ds_t *zd, uint64_t id) char name[20], string_value[20]; void *data; - ztest_od_init(&od[0], ID_PARALLEL, FTAG, micro, DMU_OT_ZAP_OTHER, 0, 0, 0); + ztest_od_init(&od[0], ID_PARALLEL, FTAG, micro, DMU_OT_ZAP_OTHER, + 0, 0, 0); if (ztest_object_init(zd, od, sizeof (od), B_FALSE) != 0) return; @@ -5411,7 +5444,8 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_t id) blocksize = ztest_random_blocksize(); blocksize = MIN(blocksize, 2048); /* because we write so many */ - ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, 0, 0); + ztest_od_init(&od[0], id, FTAG, 0, DMU_OT_UINT64_OTHER, blocksize, + 0, 0); if (ztest_object_init(zd, od, sizeof (od), B_FALSE) != 0) return; Modified: head/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c Mon Oct 7 08:14:45 2019 (r353176) @@ -292,10 +292,11 @@ zfs_prop_init(void) ZFS_VOLMODE_DEFAULT, PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME, "default | geom | dev | none", "VOLMODE", volmode_table); + zprop_register_index(ZFS_PROP_DNODESIZE, "dnodesize", ZFS_DNSIZE_LEGACY, PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "legacy | auto | 1k | 2k | 4k | 8k | 16k", "DNSIZE", dnsize_table); - + /* inherit index (boolean) properties */ zprop_register_index(ZFS_PROP_ATIME, "atime", 1, PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "on | off", "ATIME", boolean_table); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Mon Oct 7 08:14:45 2019 (r353176) @@ -3757,7 +3757,8 @@ dbuf_write_ready(zio_t *zio, arc_buf_t *buf, void *vdb if (dn->dn_type == DMU_OT_DNODE) { i = 0; while (i < db->db.db_size) { - dnode_phys_t *dnp = db->db.db_data + i; + dnode_phys_t *dnp = + (void *)(((char *)db->db.db_data) + i); i += DNODE_MIN_SIZE; if (dnp->dn_type != DMU_OT_NONE) { Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Mon Oct 7 08:14:45 2019 (r353176) @@ -32,6 +32,14 @@ #include #include +/* + * Each of the concurrent object allocators will grab + * 2^dmu_object_alloc_chunk_shift dnode slots at a time. The default is to + * grab 128 slots, which is 4 blocks worth. This was experimentally + * determined to be the lowest value that eliminates the measurable effect + * of lock contention from this code path. + */ +int dmu_object_alloc_chunk_shift = 7; static uint64_t dmu_object_alloc_impl(objset_t *os, dmu_object_type_t ot, int blocksize, @@ -44,6 +52,10 @@ dmu_object_alloc_impl(objset_t *os, dmu_object_type_t dnode_t *dn = NULL; int dn_slots = dnodesize >> DNODE_SHIFT; boolean_t restarted = B_FALSE; + uint64_t *cpuobj = &os->os_obj_next_percpu[CPU_SEQID % + os->os_obj_next_percpu_len]; + int dnodes_per_chunk = 1 << dmu_object_alloc_chunk_shift; + int error; if (dn_slots == 0) { dn_slots = DNODE_MIN_SLOTS; @@ -51,93 +63,145 @@ dmu_object_alloc_impl(objset_t *os, dmu_object_type_t ASSERT3S(dn_slots, >=, DNODE_MIN_SLOTS); ASSERT3S(dn_slots, <=, DNODE_MAX_SLOTS); } - - mutex_enter(&os->os_obj_lock); + + /* + * The "chunk" of dnodes that is assigned to a CPU-specific + * allocator needs to be at least one block's worth, to avoid + * lock contention on the dbuf. It can be at most one L1 block's + * worth, so that the "rescan after polishing off a L1's worth" + * logic below will be sure to kick in. + */ + if (dnodes_per_chunk < DNODES_PER_BLOCK) + dnodes_per_chunk = DNODES_PER_BLOCK; + if (dnodes_per_chunk > L1_dnode_count) + dnodes_per_chunk = L1_dnode_count; + + object = *cpuobj; + for (;;) { - object = os->os_obj_next; /* - * Each time we polish off a L1 bp worth of dnodes (2^12 - * objects), move to another L1 bp that's still - * reasonably sparse (at most 1/4 full). Look from the - * beginning at most once per txg. If we still can't - * allocate from that L1 block, search for an empty L0 - * block, which will quickly skip to the end of the - * metadnode if the no nearby L0 blocks are empty. This - * fallback avoids a pathology where full dnode blocks - * containing large dnodes appear sparse because they - * have a low blk_fill, leading to many failed - * allocation attempts. In the long term a better - * mechanism to search for sparse metadnode regions, - * such as spacemaps, could be implemented. - * - * os_scan_dnodes is set during txg sync if enough objects - * have been freed since the previous rescan to justify - * backfilling again. - * - * Note that dmu_traverse depends on the behavior that we use - * multiple blocks of the dnode object before going back to - * reuse objects. Any change to this algorithm should preserve - * that property or find another solution to the issues - * described in traverse_visitbp. + * If we finished a chunk of dnodes, get a new one from + * the global allocator. */ - if (P2PHASE(object, L1_dnode_count) == 0) { - uint64_t offset; - uint64_t blkfill; - int minlvl; - int error; - if (os->os_rescan_dnodes) { - offset = 0; - os->os_rescan_dnodes = B_FALSE; - } else { - offset = object << DNODE_SHIFT; + if ((P2PHASE(object, dnodes_per_chunk) == 0) || + (P2PHASE(object + dn_slots - 1, dnodes_per_chunk) < + dn_slots)) { + DNODE_STAT_BUMP(dnode_alloc_next_chunk); + mutex_enter(&os->os_obj_lock); + ASSERT0(P2PHASE(os->os_obj_next_chunk, + dnodes_per_chunk)); + object = os->os_obj_next_chunk; + + /* + * Each time we polish off a L1 bp worth of dnodes + * (2^12 objects), move to another L1 bp that's + * still reasonably sparse (at most 1/4 full). Look + * from the beginning at most once per txg. If we + * still can't allocate from that L1 block, search + * for an empty L0 block, which will quickly skip + * to the end of the metadnode if the no nearby L0 + * blocks are empty. This fallback avoids a + * pathology where full dnode blocks containing + * large dnodes appear sparse because they have a + * low blk_fill, leading to many failed allocation + * attempts. In the long term a better mechanism to + * search for sparse metadnode regions, such as + * spacemaps, could be implemented. + * + * os_scan_dnodes is set during txg sync if enough + * objects have been freed since the previous + * rescan to justify backfilling again. + * + * Note that dmu_traverse depends on the behavior + * that we use multiple blocks of the dnode object + * before going back to reuse objects. Any change + * to this algorithm should preserve that property + * or find another solution to the issues described + * in traverse_visitbp. + */ + if (P2PHASE(object, L1_dnode_count) == 0) { + uint64_t offset; + uint64_t blkfill; + int minlvl; + if (os->os_rescan_dnodes) { + offset = 0; + os->os_rescan_dnodes = B_FALSE; + } else { + offset = object << DNODE_SHIFT; + } + blkfill = restarted ? 1 : DNODES_PER_BLOCK >> 2; + minlvl = restarted ? 1 : 2; + restarted = B_TRUE; + error = dnode_next_offset(DMU_META_DNODE(os), + DNODE_FIND_HOLE, &offset, minlvl, + blkfill, 0); + if (error == 0) { + object = offset >> DNODE_SHIFT; + } } - blkfill = restarted ? 1 : DNODES_PER_BLOCK >> 2; - minlvl = restarted ? 1 : 2; - restarted = B_TRUE; - error = dnode_next_offset(DMU_META_DNODE(os), - DNODE_FIND_HOLE, &offset, minlvl, blkfill, 0); - if (error == 0) - object = offset >> DNODE_SHIFT; + /* + * Note: if "restarted", we may find a L0 that + * is not suitably aligned. + */ + os->os_obj_next_chunk = + P2ALIGN(object, dnodes_per_chunk) + + dnodes_per_chunk; + (void) atomic_swap_64(cpuobj, object); + mutex_exit(&os->os_obj_lock); } - os->os_obj_next = object + dn_slots; /* + * The value of (*cpuobj) before adding dn_slots is the object + * ID assigned to us. The value afterwards is the object ID + * assigned to whoever wants to do an allocation next. + */ + object = atomic_add_64_nv(cpuobj, dn_slots) - dn_slots; + + /* * XXX We should check for an i/o error here and return * up to our caller. Actually we should pre-read it in * dmu_tx_assign(), but there is currently no mechanism * to do so. */ - (void) dnode_hold_impl(os, object, DNODE_MUST_BE_FREE, dn_slots, - FTAG, &dn); - if (dn) - break; - - if (dmu_object_next(os, &object, B_TRUE, 0) == 0) - os->os_obj_next = object; - else + error = dnode_hold_impl(os, object, DNODE_MUST_BE_FREE, + dn_slots, FTAG, &dn); + if (error == 0) { + rw_enter(&dn->dn_struct_rwlock, RW_WRITER); /* - * Skip to next known valid starting point for a dnode. + * Another thread could have allocated it; check + * again now that we have the struct lock. */ - os->os_obj_next = P2ROUNDUP(object + 1, - DNODES_PER_BLOCK); - } + if (dn->dn_type == DMU_OT_NONE) { + dnode_allocate(dn, ot, blocksize, 0, + bonustype, bonuslen, dn_slots, tx); + rw_exit(&dn->dn_struct_rwlock); + dmu_tx_add_new_object(tx, dn); + dnode_rele(dn, FTAG); + return (object); + } + rw_exit(&dn->dn_struct_rwlock); + dnode_rele(dn, FTAG); + DNODE_STAT_BUMP(dnode_alloc_race); + } - dnode_allocate(dn, ot, blocksize, indirect_blockshift, - bonustype, bonuslen, dn_slots, tx); - mutex_exit(&os->os_obj_lock); - - dmu_tx_add_new_object(tx, dn); - dnode_rele(dn, FTAG); - - return (object); + /* + * Skip to next known valid starting point on error. This + * is the start of the next block of dnodes. + */ + if (dmu_object_next(os, &object, B_TRUE, 0) != 0) { + object = P2ROUNDUP(object + 1, DNODES_PER_BLOCK); + DNODE_STAT_BUMP(dnode_alloc_next_block); + } + (void) atomic_swap_64(cpuobj, object); + } } uint64_t dmu_object_alloc(objset_t *os, dmu_object_type_t ot, int blocksize, dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx) { - return dmu_object_alloc_impl(os, ot, blocksize, 0, bonustype, - bonuslen, 0, tx); + return (dmu_object_alloc_impl(os, ot, blocksize, 0, bonustype, + bonuslen, 0, tx)); } uint64_t @@ -145,8 +209,8 @@ dmu_object_alloc_ibs(objset_t *os, dmu_object_type_t o int indirect_blockshift, dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx) { - return dmu_object_alloc_impl(os, ot, blocksize, indirect_blockshift, - bonustype, bonuslen, 0, tx); + return (dmu_object_alloc_impl(os, ot, blocksize, indirect_blockshift, + bonustype, bonuslen, 0, tx)); } uint64_t @@ -178,7 +242,7 @@ dmu_object_claim_dnsize(objset_t *os, uint64_t object, dn_slots = DNODE_MIN_SLOTS; ASSERT3S(dn_slots, >=, DNODE_MIN_SLOTS); ASSERT3S(dn_slots, <=, DNODE_MAX_SLOTS); - + if (object == DMU_META_DNODE_OBJECT && !dmu_tx_private_ok(tx)) return (SET_ERROR(EBADF)); @@ -211,6 +275,9 @@ dmu_object_reclaim_dnsize(objset_t *os, uint64_t objec int dn_slots = dnodesize >> DNODE_SHIFT; int err; + if (dn_slots == 0) + dn_slots = DNODE_MIN_SLOTS; + if (object == DMU_META_DNODE_OBJECT) return (SET_ERROR(EBADF)); @@ -260,28 +327,52 @@ int dmu_object_next(objset_t *os, uint64_t *objectp, boolean_t hole, uint64_t txg) { uint64_t offset; - dmu_object_info_t doi; + uint64_t start_obj; struct dsl_dataset *ds = os->os_dsl_dataset; - int dnodesize; int error; - /* - * Avoid expensive dnode hold if this dataset doesn't use large dnodes. - */ - if (ds && ds->ds_feature_inuse[SPA_FEATURE_LARGE_DNODE]) { - error = dmu_object_info(os, *objectp, &doi); - if (error && !(error == EINVAL && *objectp == 0)) - return (SET_ERROR(error)); - else - dnodesize = doi.doi_dnodesize; + if (*objectp == 0) { + start_obj = 1; + } else if (ds && ds->ds_feature_inuse[SPA_FEATURE_LARGE_DNODE]) { + uint64_t i = *objectp + 1; + uint64_t last_obj = *objectp | (DNODES_PER_BLOCK - 1); + dmu_object_info_t doi; + + /* + * Scan through the remaining meta dnode block. The contents + * of each slot in the block are known so it can be quickly + * checked. If the block is exhausted without a match then + * hand off to dnode_next_offset() for further scanning. + */ + while (i <= last_obj) { + error = dmu_object_info(os, i, &doi); + if (error == ENOENT) { + if (hole) { + *objectp = i; + return (0); + } else { + i++; + } + } else if (error == EEXIST) { + i++; + } else if (error == 0) { + if (hole) { + i += doi.doi_dnodesize >> DNODE_SHIFT; + } else { + *objectp = i; + return (0); + } + } else { + return (error); + } + } + + start_obj = i; } else { - dnodesize = DNODE_MIN_SIZE; + start_obj = *objectp + 1; } - if (*objectp == 0) - offset = 1 << DNODE_SHIFT; - else - offset = (*objectp << DNODE_SHIFT) + dnodesize; + offset = start_obj << DNODE_SHIFT; error = dnode_next_offset(DMU_META_DNODE(os), (hole ? DNODE_FIND_HOLE : 0), &offset, 0, DNODES_PER_BLOCK, txg); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Mon Oct 7 08:14:45 2019 (r353176) @@ -566,6 +566,9 @@ dmu_objset_open_impl(spa_t *spa, dsl_dataset_t *ds, bl mutex_init(&os->os_userused_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&os->os_obj_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&os->os_user_ptr_lock, NULL, MUTEX_DEFAULT, NULL); + os->os_obj_next_percpu_len = boot_ncpus; + os->os_obj_next_percpu = kmem_zalloc(os->os_obj_next_percpu_len * + sizeof (os->os_obj_next_percpu[0]), KM_SLEEP); dnode_special_open(os, &os->os_phys->os_meta_dnode, DMU_META_DNODE_OBJECT, &os->os_meta_dnode); @@ -843,6 +846,9 @@ dmu_objset_evict_done(objset_t *os) */ rw_enter(&os_lock, RW_READER); rw_exit(&os_lock); + + kmem_free(os->os_obj_next_percpu, + os->os_obj_next_percpu_len * sizeof (os->os_obj_next_percpu[0])); mutex_destroy(&os->os_lock); mutex_destroy(&os->os_userused_lock); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Mon Oct 7 08:14:45 2019 (r353176) @@ -1441,17 +1441,12 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) /* * The receiving code doesn't know how to translate large blocks * to smaller ones, so the pool must have the LARGE_BLOCKS - * feature enabled if the stream has LARGE_BLOCKS. + * feature enabled if the stream has LARGE_BLOCKS. Same with + * large dnodes. */ if ((featureflags & DMU_BACKUP_FEATURE_LARGE_BLOCKS) && !spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_LARGE_BLOCKS)) return (SET_ERROR(ENOTSUP)); - - /* - * The receiving code doesn't know how to translate large dnodes - * to smaller ones, so the pool must have the LARGE_DNODE - * feature enabled if the stream has LARGE_DNODE. - */ if ((featureflags & DMU_BACKUP_FEATURE_LARGE_DNODE) && !spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_LARGE_DNODE)) return (SET_ERROR(ENOTSUP)); @@ -1659,6 +1654,9 @@ dmu_recv_resume_begin_check(void *arg, dmu_tx_t *tx) dsl_dataset_t *ds; const char *tofs = drba->drba_cookie->drc_tofs; + /* 6 extra bytes for /%recv */ + char recvname[ZFS_MAX_DATASET_NAME_LEN + 6]; + /* already checked */ ASSERT3U(drrb->drr_magic, ==, DMU_BACKUP_MAGIC); ASSERT(featureflags & DMU_BACKUP_FEATURE_RESUMING); @@ -1686,8 +1684,18 @@ dmu_recv_resume_begin_check(void *arg, dmu_tx_t *tx) !spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_LZ4_COMPRESS)) return (SET_ERROR(ENOTSUP)); - /* 6 extra bytes for /%recv */ - char recvname[ZFS_MAX_DATASET_NAME_LEN + 6]; + /* + * The receiving code doesn't know how to translate large blocks + * to smaller ones, so the pool must have the LARGE_BLOCKS + * feature enabled if the stream has LARGE_BLOCKS. Same with + * large dnodes. + */ + if ((featureflags & DMU_BACKUP_FEATURE_LARGE_BLOCKS) && + !spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_LARGE_BLOCKS)) + return (SET_ERROR(ENOTSUP)); + if ((featureflags & DMU_BACKUP_FEATURE_LARGE_DNODE) && + !spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_LARGE_DNODE)) + return (SET_ERROR(ENOTSUP)); (void) snprintf(recvname, sizeof (recvname), "%s/%s", tofs, recv_clone_name); @@ -2149,6 +2157,8 @@ receive_object(struct receive_writer_arg *rwa, struct dmu_tx_t *tx; uint64_t object; int err; + uint8_t dn_slots = drro->drr_dn_slots != 0 ? + drro->drr_dn_slots : DNODE_MIN_SLOTS; if (drro->drr_type == DMU_OT_NONE || !DMU_OT_IS_VALID(drro->drr_type) || @@ -2159,15 +2169,16 @@ receive_object(struct receive_writer_arg *rwa, struct drro->drr_blksz < SPA_MINBLOCKSIZE || drro->drr_blksz > spa_maxblocksize(dmu_objset_spa(rwa->os)) || drro->drr_bonuslen > - DN_BONUS_SIZE(spa_maxdnodesize(dmu_objset_spa(rwa->os)))) { + DN_BONUS_SIZE(spa_maxdnodesize(dmu_objset_spa(rwa->os))) || + dn_slots > + (spa_maxdnodesize(dmu_objset_spa(rwa->os)) >> DNODE_SHIFT)) { return (SET_ERROR(EINVAL)); } err = dmu_object_info(rwa->os, drro->drr_object, &doi); - if (err != 0 && err != ENOENT) + if (err != 0 && err != ENOENT && err != EEXIST) return (SET_ERROR(EINVAL)); - object = err == 0 ? drro->drr_object : DMU_NEW_OBJECT; if (drro->drr_object > rwa->max_object) rwa->max_object = drro->drr_object; @@ -2180,18 +2191,66 @@ receive_object(struct receive_writer_arg *rwa, struct if (err == 0) { int nblkptr; + object = drro->drr_object; + nblkptr = deduce_nblkptr(drro->drr_bonustype, drro->drr_bonuslen); if (drro->drr_blksz != doi.doi_data_block_size || - nblkptr < doi.doi_nblkptr) { + nblkptr < doi.doi_nblkptr || + dn_slots != doi.doi_dnodesize >> DNODE_SHIFT) { err = dmu_free_long_range(rwa->os, drro->drr_object, 0, DMU_OBJECT_END); if (err != 0) return (SET_ERROR(EINVAL)); } + } else if (err == EEXIST) { + /* + * The object requested is currently an interior slot of a + * multi-slot dnode. This will be resolved when the next txg + * is synced out, since the send stream will have told us + * to free this slot when we freed the associated dnode + * earlier in the stream. + */ + txg_wait_synced(dmu_objset_pool(rwa->os), 0); + object = drro->drr_object; + } else { + /* object is free and we are about to allocate a new one */ + object = DMU_NEW_OBJECT; } + /* + * If this is a multi-slot dnode there is a chance that this + * object will expand into a slot that is already used by + * another object from the previous snapshot. We must free + * these objects before we attempt to allocate the new dnode. + */ + if (dn_slots > 1) { + boolean_t need_sync = B_FALSE; + + for (uint64_t slot = drro->drr_object + 1; + slot < drro->drr_object + dn_slots; + slot++) { + dmu_object_info_t slot_doi; + + err = dmu_object_info(rwa->os, slot, &slot_doi); + if (err == ENOENT || err == EEXIST) + continue; + else if (err != 0) + return (err); + + err = dmu_free_long_object(rwa->os, slot); + + if (err != 0) + return (err); + + need_sync = B_TRUE; + } + + if (need_sync) + txg_wait_synced(dmu_objset_pool(rwa->os), 0); + } + tx = dmu_tx_create(rwa->os); dmu_tx_hold_bonus(tx, object); err = dmu_tx_assign(tx, TXG_WAIT); @@ -2205,7 +2264,7 @@ receive_object(struct receive_writer_arg *rwa, struct err = dmu_object_claim_dnsize(rwa->os, drro->drr_object, drro->drr_type, drro->drr_blksz, drro->drr_bonustype, drro->drr_bonuslen, - drro->drr_dn_slots << DNODE_SHIFT, tx); + dn_slots << DNODE_SHIFT, tx); } else if (drro->drr_type != doi.doi_type || drro->drr_blksz != doi.doi_data_block_size || drro->drr_bonustype != doi.doi_bonus_type || @@ -2263,10 +2322,10 @@ receive_freeobjects(struct receive_writer_arg *rwa, dmu_object_info_t doi; int err; - err = dmu_object_info(rwa->os, obj, &doi); + err = dmu_object_info(rwa->os, obj, NULL); if (err == ENOENT) { obj++; - continue; + continue; } else if (err != 0) { return (err); } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c Mon Oct 7 08:14:45 2019 (r353176) @@ -1252,11 +1252,13 @@ dmu_tx_sa_registration_hold(sa_os_t *sa, dmu_tx_t *tx) void dmu_tx_hold_spill(dmu_tx_t *tx, uint64_t object) { - dmu_tx_hold_t *txh = dmu_tx_hold_object_impl(tx, - tx->tx_objset, object, THT_SPILL, 0, 0); + dmu_tx_hold_t *txh; - (void) refcount_add_many(&txh->txh_space_towrite, - SPA_OLD_MAXBLOCKSIZE, FTAG); + txh = dmu_tx_hold_object_impl(tx, tx->tx_objset, object, + THT_SPILL, 0, 0); + if (txh != NULL) + (void) refcount_add_many(&txh->txh_space_towrite, + SPA_OLD_MAXBLOCKSIZE, FTAG); } void Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Mon Oct 7 08:13:49 2019 (r353175) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Mon Oct 7 08:14:45 2019 (r353176) @@ -40,21 +40,41 @@ #include #include +dnode_stats_t dnode_stats = { + { "dnode_hold_dbuf_hold", KSTAT_DATA_UINT64 }, + { "dnode_hold_dbuf_read", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_hits", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_misses", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_interior", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_lock_retry", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_lock_misses", KSTAT_DATA_UINT64 }, + { "dnode_hold_alloc_type_none", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_hits", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_misses", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_lock_misses", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_lock_retry", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_overflow", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_refcount", KSTAT_DATA_UINT64 }, + { "dnode_hold_free_txg", KSTAT_DATA_UINT64 }, + { "dnode_free_interior_lock_retry", KSTAT_DATA_UINT64 }, + { "dnode_allocate", KSTAT_DATA_UINT64 }, + { "dnode_reallocate", KSTAT_DATA_UINT64 }, + { "dnode_buf_evict", KSTAT_DATA_UINT64 }, + { "dnode_alloc_next_chunk", KSTAT_DATA_UINT64 }, + { "dnode_alloc_race", KSTAT_DATA_UINT64 }, + { "dnode_alloc_next_block", KSTAT_DATA_UINT64 }, + { "dnode_move_invalid", KSTAT_DATA_UINT64 }, + { "dnode_move_recheck1", KSTAT_DATA_UINT64 }, + { "dnode_move_recheck2", KSTAT_DATA_UINT64 }, + { "dnode_move_special", KSTAT_DATA_UINT64 }, + { "dnode_move_handle", KSTAT_DATA_UINT64 }, + { "dnode_move_rwlock", KSTAT_DATA_UINT64 }, + { "dnode_move_active", KSTAT_DATA_UINT64 }, +}; + +static kstat_t *dnode_ksp; static kmem_cache_t *dnode_cache; -/* - * Define DNODE_STATS to turn on statistic gathering. By default, it is only - * turned on when DEBUG is also defined. - */ -#ifdef DEBUG -#define DNODE_STATS -#endif /* DEBUG */ -#ifdef DNODE_STATS -#define DNODE_STAT_ADD(stat) ((stat)++) -#else -#define DNODE_STAT_ADD(stat) /* nothing */ -#endif /* DNODE_STATS */ - static dnode_phys_t dnode_phys_zero; int zfs_default_bs = SPA_MINBLOCKSHIFT; @@ -215,12 +235,25 @@ dnode_init(void) 0, dnode_cons, dnode_dest, NULL, NULL, NULL, 0); #ifdef _KERNEL kmem_cache_set_move(dnode_cache, dnode_move); + + dnode_ksp = kstat_create("zfs", 0, "dnodestats", "misc", + KSTAT_TYPE_NAMED, sizeof (dnode_stats) / sizeof (kstat_named_t), + KSTAT_FLAG_VIRTUAL); + if (dnode_ksp != NULL) { + dnode_ksp->ks_data = &dnode_stats; + kstat_install(dnode_ksp); + } #endif /* _KERNEL */ } void dnode_fini(void) { + if (dnode_ksp != NULL) { + kstat_delete(dnode_ksp); + dnode_ksp = NULL; + } + kmem_cache_destroy(dnode_cache); dnode_cache = NULL; } @@ -333,6 +366,7 @@ dnode_byteswap(dnode_phys_t *dnp) /* Swap SPILL block if we have one */ if (dnp->dn_flags & DNODE_FLAG_SPILL_BLKPTR) byteswap_uint64_array(DN_SPILL_BLKPTR(dnp), sizeof (blkptr_t)); + } void @@ -344,7 +378,7 @@ dnode_buf_byteswap(void *vbuf, size_t size) ASSERT((size & (sizeof (dnode_phys_t)-1)) == 0); while (i < size) { - dnode_phys_t *dnp = vbuf + i; + dnode_phys_t *dnp = (void *)(((char *)vbuf) + i); dnode_byteswap(dnp); i += DNODE_MIN_SIZE; @@ -448,14 +482,10 @@ dnode_create(objset_t *os, dnode_phys_t *dnp, dmu_buf_ dmu_zfetch_init(&dn->dn_zfetch, dn); ASSERT(DMU_OT_IS_VALID(dn->dn_phys->dn_type)); + ASSERT(zrl_is_locked(&dnh->dnh_zrlock)); + ASSERT(!DN_SLOT_IS_PTR(dnh->dnh_dnode)); mutex_enter(&os->os_lock); - if (dnh->dnh_dnode != NULL) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Oct 7 10:39:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 180DA12A62E; Mon, 7 Oct 2019 10:39:10 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (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 46mxmY6tb3z3L2S; Mon, 7 Oct 2019 10:39:09 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.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 41FA0260042; Mon, 7 Oct 2019 12:39:06 +0200 (CEST) Subject: Re: svn commit: r353168 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs To: Andriy Gapon , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910070800.x9780sRM030252@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <392e0ada-7ec9-7147-4300-ccaefc5a5ce8@selasky.org> Date: Mon, 7 Oct 2019 12:37:39 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: <201910070800.x9780sRM030252@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46mxmY6tb3z3L2S 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:39:10 -0000 On 2019-10-07 10:00, Andriy Gapon wrote: > Author: avg > Date: Mon Oct 7 08:00:54 2019 > New Revision: 353168 > URL: https://svnweb.freebsd.org/changeset/base/353168 > > Log: > ZFS: unconditionally use atomic_swap_64 > > Previously, the code used a plain store on platforms that lacked > atomic_swap_64 and possibly some other platforms as the condition worked > only if atomic_swap_64 was a macro. > > MFC after: 1 week > X-MFC after: r353166, r353167 > > Modified: > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c > > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c > ============================================================================== > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 07:54:34 2019 (r353167) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 08:00:54 2019 (r353168) > @@ -313,12 +313,8 @@ feature_sync(spa_t *spa, zfeature_info_t *feature, uin > if (feature->fi_feature != SPA_FEATURE_NONE) { > uint64_t *refcount_cache = > &spa->spa_feat_refcount_cache[feature->fi_feature]; > -#ifdef atomic_swap_64 > VERIFY3U(*refcount_cache, ==, > atomic_swap_64(refcount_cache, refcount)); > -#else > - *refcount_cache = refcount; > -#endif > } > > if (refcount == 0) > Hi, Is this yours for i386? You maybe need to include: /sys/i386/include/atomic.h:atomic_swap_64(volatile uint64_t *p, uint64_t v) --HPS > 09:27:46 --- gdtoa_dtoa.po --- > 09:27:46 --- all_subdir_rescue --- > 09:27:46 ld: error: undefined symbol: atomic_swap_64 > 09:27:46 >>> referenced by zfeature.c:316 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c:316) > 09:27:46 >>> zfeature.o:(feature_sync) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a > 09:27:46 > 09:27:46 ld: error: undefined symbol: atomic_swap_64 > 09:27:46 >>> referenced by dmu_object.c:195 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c:195) > 09:27:46 >>> dmu_object.o:(dmu_object_alloc_impl) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a > 09:27:46 > 09:27:46 ld: error: undefined symbol: atomic_swap_64 > 09:27:46 >>> referenced by dmu_object.c:149 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c:149) > 09:27:46 >>> dmu_object.o:(dmu_object_alloc_impl) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a > 09:27:46 --- all_subdir_lib --- > 09:27:46 --- gdtoa_gdtoa.po --- > 09:27:46 --- gdtoa_dtoa.po --- From owner-svn-src-head@freebsd.org Mon Oct 7 10:48:31 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A69E712AA8A; Mon, 7 Oct 2019 10:48:31 +0000 (UTC) (envelope-from agapon@gmail.com) Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.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 46mxzL6T1Tz3Lfb; Mon, 7 Oct 2019 10:48:30 +0000 (UTC) (envelope-from agapon@gmail.com) Received: by mail-lj1-f178.google.com with SMTP id j19so13106971lja.1; Mon, 07 Oct 2019 03:48:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=VeLIi5KOviq4HCNQOAMBiPTcRoey7VVez+3gVfwHy/w=; b=ht+cP6JGDRdBZqutfHrNSDvoci3BVyZrneAK3T4omEprXBG1EgILFrd0P+gS2seI/2 WZ0RAxXLOEF30/aAaVRs94kxVLy6rjI6s2YWe4bYJEWP8Z2bihXqCNXSgwdTPv0mAxTE 27JJy8JV/y725bt7ZgFuIXhoQ+QYJkC8w8kHNW0zC4laOL69YUW7+YeMKObRsRV9choe 815vf1dPE14acaI4ialxH+JUDu/bK7F49iobIDU8hwvHRrGUldHM1xtHa93JHGudSbQZ U6EgUnSYmEhAatamXGTfu2nTJLdEOimCE+GtZZWhu18ZLUPEawxmEdFeje8w9BKFUwCz czJg== X-Gm-Message-State: APjAAAUk3mPE8xvsjEDdPWuvCcaNfmrWt8RZYMrUXti6euJXIS4tPoGS I7kDiY/QhjswD5xqQufwvHzmxYVRF9k= X-Google-Smtp-Source: APXvYqwBvQ9Uc27nwcdrUonE3/PjYd6vg1SKPmLezMbz7rOlA1RG8b0TTT3qoBOHzN64siVOrrNMbg== X-Received: by 2002:a2e:1246:: with SMTP id t67mr17272199lje.174.1570445308507; Mon, 07 Oct 2019 03:48:28 -0700 (PDT) Received: from [192.168.0.88] (east.meadow.volia.net. [93.72.151.96]) by smtp.googlemail.com with ESMTPSA id n17sm3002302ljc.44.2019.10.07.03.48.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Oct 2019 03:48:27 -0700 (PDT) Subject: Re: svn commit: r353168 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs To: Hans Petter Selasky , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201910070800.x9780sRM030252@repo.freebsd.org> <392e0ada-7ec9-7147-4300-ccaefc5a5ce8@selasky.org> From: Andriy Gapon Openpgp: preference=signencrypt Autocrypt: addr=avg@FreeBSD.org; prefer-encrypt=mutual; keydata= mQINBFm4LIgBEADNB/3lT7f15UKeQ52xCFQx/GqHkSxEdVyLFZTmY3KyNPQGBtyvVyBfprJ7 mAeXZWfhat6cKNRAGZcL5EmewdQuUfQfBdYmKjbw3a9GFDsDNuhDA2QwFt8BmkiVMRYyvI7l N0eVzszWCUgdc3qqM6qqcgBaqsVmJluwpvwp4ZBXmch5BgDDDb1MPO8AZ2QZfIQmplkj8Y6Z AiNMknkmgaekIINSJX8IzRzKD5WwMsin70psE8dpL/iBsA2cpJGzWMObVTtCxeDKlBCNqM1i gTXta1ukdUT7JgLEFZk9ceYQQMJJtUwzWu1UHfZn0Fs29HTqawfWPSZVbulbrnu5q55R4PlQ /xURkWQUTyDpqUvb4JK371zhepXiXDwrrpnyyZABm3SFLkk2bHlheeKU6Yql4pcmSVym1AS4 dV8y0oHAfdlSCF6tpOPf2+K9nW1CFA8b/tw4oJBTtfZ1kxXOMdyZU5fiG7xb1qDgpQKgHUX8 7Rd2T1UVLVeuhYlXNw2F+a2ucY+cMoqz3LtpksUiBppJhw099gEXehcN2JbUZ2TueJdt1FdS ztnZmsHUXLxrRBtGwqnFL7GSd6snpGIKuuL305iaOGODbb9c7ne1JqBbkw1wh8ci6vvwGlzx rexzimRaBzJxlkjNfMx8WpCvYebGMydNoeEtkWldtjTNVsUAtQARAQABtB5BbmRyaXkgR2Fw b24gPGF2Z0BGcmVlQlNELm9yZz6JAlQEEwEIAD4WIQS+LEO7ngQnXA4Bjr538m7TUc1yjwUC WbgsiAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRB38m7TUc1yj+JAEACV l9AK/nOWAt/9cufV2fRj0hdOqB1aCshtSrwHk/exXsDa4/FkmegxXQGY+3GWX3deIyesbVRL rYdtdK0dqJyT1SBqXK1h3/at9rxr9GQA6KWOxTjUFURsU7ok/6SIlm8uLRPNKO+yq0GDjgaO LzN+xykuBA0FlhQAXJnpZLcVfPJdWv7sSHGedL5ln8P8rxR+XnmsA5TUaaPcbhTB+mG+iKFj GghASDSfGqLWFPBlX/fpXikBDZ1gvOr8nyMY9nXhgfXpq3B6QCRYKPy58ChrZ5weeJZ29b7/ QdEO8NFNWHjSD9meiLdWQaqo9Y7uUxN3wySc/YUZxtS0bhAd8zJdNPsJYG8sXgKjeBQMVGuT eCAJFEYJqbwWvIXMfVWop4+O4xB+z2YE3jAbG/9tB/GSnQdVSj3G8MS80iLS58frnt+RSEw/ psahrfh0dh6SFHttE049xYiC+cM8J27Aaf0i9RflyITq57NuJm+AHJoU9SQUkIF0nc6lfA+o JRiyRlHZHKoRQkIg4aiKaZSWjQYRl5Txl0IZUP1dSWMX4s3XTMurC/pnja45dge/4ESOtJ9R 8XuIWg45Oq6MeIWdjKddGhRj3OohsltKgkEU3eLKYtB6qRTQypHHUawCXz88uYt5e3w4V16H lCpSTZV/EVHnNe45FVBlvK7k7HFfDDkryLkCDQRZuCyIARAAlq0slcsVboY/+IUJdcbEiJRW be9HKVz4SUchq0z9MZPX/0dcnvz/gkyYA+OuM78dNS7Mbby5dTvOqfpLJfCuhaNYOhlE0wY+ 1T6Tf1f4c/uA3U/YiadukQ3+6TJuYGAdRZD5EqYFIkreARTVWg87N9g0fT9BEqLw9lJtEGDY EWUE7L++B8o4uu3LQFEYxcrb4K/WKmgtmFcm77s0IKDrfcX4doV92QTIpLiRxcOmCC/OCYuO jB1oaaqXQzZrCutXRK0L5XN1Y1PYjIrEzHMIXmCDlLYnpFkK+itlXwlE2ZQxkfMruCWdQXye syl2fynAe8hvp7Mms9qU2r2K9EcJiR5N1t1C2/kTKNUhcRv7Yd/vwusK7BqJbhlng5ZgRx0m WxdntU/JLEntz3QBsBsWM9Y9wf2V4tLv6/DuDBta781RsCB/UrU2zNuOEkSixlUiHxw1dccI 6CVlaWkkJBxmHX22GdDFrcjvwMNIbbyfQLuBq6IOh8nvu9vuItup7qemDG3Ms6TVwA7BD3j+ 3fGprtyW8Fd/RR2bW2+LWkMrqHffAr6Y6V3h5kd2G9Q8ZWpEJk+LG6Mk3fhZhmCnHhDu6CwN MeUvxXDVO+fqc3JjFm5OxhmfVeJKrbCEUJyM8ESWLoNHLqjywdZga4Q7P12g8DUQ1mRxYg/L HgZY3zfKOqcAEQEAAYkCPAQYAQgAJhYhBL4sQ7ueBCdcDgGOvnfybtNRzXKPBQJZuCyIAhsM BQkFo5qAAAoJEHfybtNRzXKPBVwQAKfFy9P7N3OsLDMB56A4Kf+ZT+d5cIx0Yiaf4n6w7m3i ImHHHk9FIetI4Xe54a2IXh4Bq5UkAGY0667eIs+Z1Ea6I2i27Sdo7DxGwq09Qnm/Y65ADvXs 3aBvokCcm7FsM1wky395m8xUos1681oV5oxgqeRI8/76qy0hD9WR65UW+HQgZRIcIjSel9vR XDaD2HLGPTTGr7u4v00UeTMs6qvPsa2PJagogrKY8RXdFtXvweQFz78NbXhluwix2Tb9ETPk LIpDrtzV73CaE2aqBG/KrboXT2C67BgFtnk7T7Y7iKq4/XvEdDWscz2wws91BOXuMMd4c/c4 OmGW9m3RBLufFrOag1q5yUS9QbFfyqL6dftJP3Zq/xe+mr7sbWbhPVCQFrH3r26mpmy841ym dwQnNcsbIGiBASBSKksOvIDYKa2Wy8htPmWFTEOPRpFXdGQ27awcjjnB42nngyCK5ukZDHi6 w0qK5DNQQCkiweevCIC6wc3p67jl1EMFY5+z+zdTPb3h7LeVnGqW0qBQl99vVFgzLxchKcl0 R/paSFgwqXCZhAKMuUHncJuynDOP7z5LirUeFI8qsBAJi1rXpQoLJTVcW72swZ42IdPiboqx NbTMiNOiE36GqMcTPfKylCbF45JNX4nF9ElM0E+Y8gi4cizJYBRr2FBJgay0b9Cp Message-ID: <40663be2-1aa1-5ec4-8024-98bf1b90b5c8@FreeBSD.org> Date: Mon, 7 Oct 2019 13:48:26 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <392e0ada-7ec9-7147-4300-ccaefc5a5ce8@selasky.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46mxzL6T1Tz3Lfb X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of agapon@gmail.com designates 209.85.208.178 as permitted sender) smtp.mailfrom=agapon@gmail.com X-Spamd-Result: default: False [-3.19 / 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]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[178.208.85.209.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-1.19)[ip: (-0.49), ipnet: 209.85.128.0/17(-3.26), asn: 15169(-2.14), country: US(-0.05)]; FORGED_SENDER(0.30)[avg@FreeBSD.org,agapon@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[178.208.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)[avg@FreeBSD.org,agapon@gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[96.151.72.93.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:48:31 -0000 On 07/10/2019 13:37, Hans Petter Selasky wrote: > Hi, > > Is this yours for i386? > > You maybe need to include: > > /sys/i386/include/atomic.h:atomic_swap_64(volatile uint64_t *p, uint64_t v) Yes, it's me, but the fix is different. -- Andriy Gapon From owner-svn-src-head@freebsd.org Mon Oct 7 12:53:28 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3534D12E995; Mon, 7 Oct 2019 12:53:28 +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 46n0lX0cNrz3yWs; Mon, 7 Oct 2019 12:53:28 +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 EC2F9EE81; Mon, 7 Oct 2019 12:53:27 +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 x97CrRDx015961; Mon, 7 Oct 2019 12:53:27 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97CrRcF015960; Mon, 7 Oct 2019 12:53:27 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910071253.x97CrRcF015960@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 Oct 2019 12:53:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353270 - head/sys/cddl/contrib/opensolaris/common/atomic/i386 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/common/atomic/i386 X-SVN-Commit-Revision: 353270 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 12:53:28 -0000 Author: avg Date: Mon Oct 7 12:53:27 2019 New Revision: 353270 URL: https://svnweb.freebsd.org/changeset/base/353270 Log: fix up r353168, add atomic_swap_64 to i386 version of opensolaris_atomic.S The compatibility code for the atomic operations in ZFS code is a bit messy. In some cases the native definitions are directly made available, in some cases there are emulated operations in opensolaris_atomic.c and in yet other cases there are atomic operations implemented in assembly that were obtained from OpenSolaris / illumos. This commit adds atomic_swap_64 for use with i386 userland. The code is copied from illumos. I am not sure why FreeBSD does not provide that operation natively. Maybe because we try (or pretend) to support processors that did not have the necessary instructions. While here I also added atomic_load_64 for the same reasons. This is original code based on iilumos atomic_swap_64 and FreeBSD atomic_load_acq_64_i586. Pointyhat to: avg MFC after: 1 week Modified: head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Modified: head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Mon Oct 7 12:51:36 2019 (r353269) +++ head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Mon Oct 7 12:53:27 2019 (r353270) @@ -126,6 +126,34 @@ ret SET_SIZE(atomic_cas_64) + ENTRY(atomic_swap_64) + pushl %esi + pushl %ebx + movl 12(%esp), %esi + movl 16(%esp), %ebx + movl 20(%esp), %ecx + movl (%esi), %eax + movl 4(%esi), %edx // %edx:%eax = old value +1: + lock + cmpxchg8b (%esi) + jne 1b + popl %ebx + popl %esi + ret + SET_SIZE(atomic_swap_64) + + ENTRY(atomic_load_64) + pushl %esi + movl 8(%esp), %esi + movl %ebx, %eax // make old and new values equal, so that + movl %ecx, %edx // destination is never changed + lock + cmpxchg8b (%esi) + popl %esi + ret + SET_SIZE(atomic_load_64) + ENTRY(membar_producer) lock xorl $0, (%esp) From owner-svn-src-head@freebsd.org Mon Oct 7 13:40:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B85012FC5A; Mon, 7 Oct 2019 13:40:30 +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 46n1np0ndvz42Nc; Mon, 7 Oct 2019 13:40:30 +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 EF8F7F608; Mon, 7 Oct 2019 13:40:29 +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 x97DeTTU040334; Mon, 7 Oct 2019 13:40:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97DeTUb040333; Mon, 7 Oct 2019 13:40:29 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071340.x97DeTUb040333@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 7 Oct 2019 13:40:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353273 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 353273 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 13:40:30 -0000 Author: hselasky Date: Mon Oct 7 13:40:29 2019 New Revision: 353273 URL: https://svnweb.freebsd.org/changeset/base/353273 Log: Make control endpoint quirk for xhci(4) configurable. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Mon Oct 7 13:13:06 2019 (r353272) +++ head/sys/dev/usb/controller/xhci.c Mon Oct 7 13:40:29 2019 (r353273) @@ -95,6 +95,10 @@ static int xhcistreams; SYSCTL_INT(_hw_usb_xhci, OID_AUTO, streams, CTLFLAG_RWTUN, &xhcistreams, 0, "Set to enable streams mode support"); +static int xhcictlquirk = 1; +SYSCTL_INT(_hw_usb_xhci, OID_AUTO, ctlquirk, CTLFLAG_RWTUN, + &xhcictlquirk, 0, "Set to enable control endpoint quirk"); + #ifdef USB_DEBUG static int xhcidebug; static int xhciroute; @@ -602,7 +606,7 @@ xhci_init(struct xhci_softc *sc, device_t self, uint8_ sc->sc_ctx_is_64_byte ? 64 : 32, (int)sc->sc_bus.dma_bits); /* enable 64Kbyte control endpoint quirk */ - sc->sc_bus.control_ep_quirk = 1; + sc->sc_bus.control_ep_quirk = (xhcictlquirk ? 1 : 0); temp = XREAD4(sc, capa, XHCI_HCSPARAMS1); From owner-svn-src-head@freebsd.org Mon Oct 7 14:15:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D0B01306E0; Mon, 7 Oct 2019 14:15:42 +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 46n2ZQ1q2Tz44Kx; Mon, 7 Oct 2019 14:15:42 +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 22990FD20; Mon, 7 Oct 2019 14:15:42 +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 x97EFg5Y064063; Mon, 7 Oct 2019 14:15:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97EFfiN064058; Mon, 7 Oct 2019 14:15:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071415.x97EFfiN064058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 7 Oct 2019 14:15:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353274 - in head/sys: net sys X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys: net sys X-SVN-Commit-Revision: 353274 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 14:15:42 -0000 Author: hselasky Date: Mon Oct 7 14:15:41 2019 New Revision: 353274 URL: https://svnweb.freebsd.org/changeset/base/353274 Log: Factor out VNET shutdown check into an own vnet structure field. Remove the now obsolete vnet_state field. This greatly simplifies the detection of VNET shutdown and avoids code duplication. Discussed with: bz@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/net/if.c head/sys/net/vnet.c head/sys/net/vnet.h head/sys/sys/param.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Mon Oct 7 13:40:29 2019 (r353273) +++ head/sys/net/if.c Mon Oct 7 14:15:41 2019 (r353274) @@ -1088,10 +1088,9 @@ if_detach_internal(struct ifnet *ifp, int vmove, struc struct ifnet *iter; int found = 0; #ifdef VIMAGE - int shutdown; + bool shutdown; - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; + shutdown = ifp->if_vnet->vnet_shutdown; #endif IFNET_WLOCK(); CK_STAILQ_FOREACH(iter, &V_ifnet, if_link) @@ -1341,7 +1340,6 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch { struct prison *pr; struct ifnet *difp; - int shutdown; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1369,9 +1367,7 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch } /* Make sure the VNET is stable. */ - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; - if (shutdown) { + if (ifp->if_vnet->vnet_shutdown) { CURVNET_RESTORE(); prison_free(pr); return (EBUSY); @@ -1394,7 +1390,6 @@ if_vmove_reclaim(struct thread *td, char *ifname, int struct prison *pr; struct vnet *vnet_dst; struct ifnet *ifp; - int shutdown; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1423,9 +1418,7 @@ if_vmove_reclaim(struct thread *td, char *ifname, int } /* Make sure the VNET is stable. */ - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; - if (shutdown) { + if (ifp->if_vnet->vnet_shutdown) { CURVNET_RESTORE(); prison_free(pr); return (EBUSY); @@ -2996,16 +2989,11 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s struct ifreq *ifr; int error; int oif_flags; -#ifdef VIMAGE - int shutdown; -#endif CURVNET_SET(so->so_vnet); #ifdef VIMAGE /* Make sure the VNET is stable. */ - shutdown = (so->so_vnet->vnet_state > SI_SUB_VNET && - so->so_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; - if (shutdown) { + if (so->so_vnet->vnet_shutdown) { CURVNET_RESTORE(); return (EBUSY); } Modified: head/sys/net/vnet.c ============================================================================== --- head/sys/net/vnet.c Mon Oct 7 13:40:29 2019 (r353273) +++ head/sys/net/vnet.c Mon Oct 7 14:15:41 2019 (r353274) @@ -235,7 +235,6 @@ vnet_alloc(void) SDT_PROBE1(vnet, functions, vnet_alloc, entry, __LINE__); vnet = malloc(sizeof(struct vnet), M_VNET, M_WAITOK | M_ZERO); vnet->vnet_magic_n = VNET_MAGIC_N; - vnet->vnet_state = 0; SDT_PROBE2(vnet, functions, vnet_alloc, alloc, __LINE__, vnet); /* @@ -280,6 +279,9 @@ vnet_destroy(struct vnet *vnet) LIST_REMOVE(vnet, vnet_le); VNET_LIST_WUNLOCK(); + /* Signal that VNET is being shutdown. */ + vnet->vnet_shutdown = 1; + CURVNET_SET_QUIET(vnet); vnet_sysuninit(); CURVNET_RESTORE(); @@ -573,10 +575,8 @@ vnet_sysinit(void) struct vnet_sysinit *vs; VNET_SYSINIT_RLOCK(); - TAILQ_FOREACH(vs, &vnet_constructors, link) { - curvnet->vnet_state = vs->subsystem; + TAILQ_FOREACH(vs, &vnet_constructors, link) vs->func(vs->arg); - } VNET_SYSINIT_RUNLOCK(); } @@ -592,10 +592,8 @@ vnet_sysuninit(void) VNET_SYSINIT_RLOCK(); TAILQ_FOREACH_REVERSE(vs, &vnet_destructors, vnet_sysuninit_head, - link) { - curvnet->vnet_state = vs->subsystem; + link) vs->func(vs->arg); - } VNET_SYSINIT_RUNLOCK(); } @@ -709,7 +707,7 @@ db_vnet_print(struct vnet *vnet) db_printf(" vnet_data_mem = %p\n", vnet->vnet_data_mem); db_printf(" vnet_data_base = %#jx\n", (uintmax_t)vnet->vnet_data_base); - db_printf(" vnet_state = %#08x\n", vnet->vnet_state); + db_printf(" vnet_shutdown = %#08x\n", vnet->vnet_shutdown); db_printf("\n"); } Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Mon Oct 7 13:40:29 2019 (r353273) +++ head/sys/net/vnet.h Mon Oct 7 14:15:41 2019 (r353274) @@ -72,7 +72,7 @@ struct vnet { u_int vnet_magic_n; u_int vnet_ifcnt; u_int vnet_sockcnt; - u_int vnet_state; /* SI_SUB_* */ + u_int vnet_shutdown; /* Shutdown in progress. */ void *vnet_data_mem; uintptr_t vnet_data_base; }; Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Mon Oct 7 13:40:29 2019 (r353273) +++ head/sys/sys/param.h Mon Oct 7 14:15:41 2019 (r353274) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300048 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300049 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-head@freebsd.org Mon Oct 7 14:24:59 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6713130A1A; Mon, 7 Oct 2019 14:24: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 46n2n75mMbz44qW; Mon, 7 Oct 2019 14:24: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 AA8DAFEFB; Mon, 7 Oct 2019 14:24: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 x97EOxx4069825; Mon, 7 Oct 2019 14:24:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97EOxVl069824; Mon, 7 Oct 2019 14:24:59 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071424.x97EOxVl069824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 7 Oct 2019 14:24:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353275 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353275 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 14:25:00 -0000 Author: hselasky Date: Mon Oct 7 14:24:59 2019 New Revision: 353275 URL: https://svnweb.freebsd.org/changeset/base/353275 Log: Compile time assert a valid subsystem for all VNET init and uninit functions. Using VNET init and uninit functions outside the given range has undefined behaviour. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/net/vnet.h Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Mon Oct 7 14:15:41 2019 (r353274) +++ head/sys/net/vnet.h Mon Oct 7 14:24:59 2019 (r353275) @@ -326,6 +326,8 @@ struct vnet_sysinit { }; #define VNET_SYSINIT(ident, subsystem, order, func, arg) \ + CTASSERT((subsystem) > SI_SUB_VNET && \ + (subsystem) <= SI_SUB_VNET_DONE); \ static struct vnet_sysinit ident ## _vnet_init = { \ subsystem, \ order, \ @@ -338,6 +340,8 @@ struct vnet_sysinit { vnet_deregister_sysinit, &ident ## _vnet_init) #define VNET_SYSUNINIT(ident, subsystem, order, func, arg) \ + CTASSERT((subsystem) > SI_SUB_VNET && \ + (subsystem) <= SI_SUB_VNET_DONE); \ static struct vnet_sysinit ident ## _vnet_uninit = { \ subsystem, \ order, \ From owner-svn-src-head@freebsd.org Mon Oct 7 14:25:00 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C7EBD130A2A; Mon, 7 Oct 2019 14:25:00 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-oi1-x244.google.com (mail-oi1-x244.google.com [IPv6:2607:f8b0:4864:20::244]) (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 46n2n82D6Cz44qX; Mon, 7 Oct 2019 14:25:00 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-oi1-x244.google.com with SMTP id w6so11770312oie.11; Mon, 07 Oct 2019 07:25:00 -0700 (PDT) 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=z2Ye/OD9y8IiGVQg1q8nyxdu6P+sFfyVBz31eDixN+o=; b=WLR1QjG94lt3EVmE5d3f4lKYPv7N6boad/bGrrOmugv5T1u/wgVZnhiKsRaIf5y6fm fLLDMs48dY3TaLnS04ZG5JEuIcTgWfjFFZw9vTxuzqoChDFEDar492bpL7uDv+acriKG 6AHGFgrEz9ekpHhYigpXzkyQ1lfgRWxDM2bkmK25SCVno7sfpySaUYBe91P88Ans4Yxc Lc481SsD9ndSKk1aJdEXWT8/wRUOFmAIPLMCjRaNPV4fOskdw2CUCDfz7xy7USAycdvg rvzNRDgBw3ZY3ppXhFdkCRRVhPVqAW4ZI7w6oezqW9YEzhj5MVZTt+injQjRDHhre2EG lctg== 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=z2Ye/OD9y8IiGVQg1q8nyxdu6P+sFfyVBz31eDixN+o=; b=ki+mO2rhq8uhTsb7CYp+TjmhkzDmcFf2N3b+QWZzdreU73M3eYYC+DemBPCnop4Elz p1w4pNqSuxdZazx4NoRM84jX71GrZzSexs0urco8brftwGNP9LnF/rHVIB7PQaQZMtmo 6mgWNJEH4T0/RNDSXASwp3pR6gKOjAVuO49wUevocI49nBTyuWjQtsGjktZIgIb0OIkc DquC6mjG5ATl3FQlN6KZlYvHg37g7umhB7XI2M7FaVyu+8HBxLbSmkPl+z1wOGRQeMM5 wDVbgsc+MvQXQXET/RofBjRIpPOIktjJeZgBCzIqkZV0G8DsQFTPRi6B41Y7vZe2so6H qPVA== X-Gm-Message-State: APjAAAV//38GB0bS1jA0h2xONCBtgzZbw8T066p2o3ufLAadJFy/Txks Qv6zQxa8YZjdxjX5LcS4A9Em9Trx7QMPuRtZZRoXDQ== X-Google-Smtp-Source: APXvYqyWxOaYjCviKcjIBqCG83D9ilACytfY45wGbOwicuC5vap3h1A+2R1iOKo1d9axNkjml8GrcLcHOlbBPJygsNc= X-Received: by 2002:a54:4e1d:: with SMTP id a29mr18541696oiy.5.1570458299167; Mon, 07 Oct 2019 07:24:59 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:458d:0:0:0:0:0 with HTTP; Mon, 7 Oct 2019 07:24:58 -0700 (PDT) In-Reply-To: <201910070419.x974JOkQ020574@slippy.cwsent.com> References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> From: Mateusz Guzik Date: Mon, 7 Oct 2019 16:24:58 +0200 Message-ID: Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 To: Cy Schubert 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: 46n2n82D6Cz44qX X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=WLR1QjG9; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2607:f8b0:4864:20::244 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]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (2.14), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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.2.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]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 14:25:00 -0000 Can you show: sysctl vm.phys_segs and from the crashdump: p pv_table On 10/7/19, Cy Schubert wrote: > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy Schubert > writes: >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz Guzik >> writes >> : >> > Author: mjg >> > Date: Sun Oct 6 22:13:35 2019 >> > New Revision: 353149 >> > URL: https://svnweb.freebsd.org/changeset/base/353149 >> > >> > Log: >> > amd64 pmap: implement per-superpage locks >> > >> > The current 256-lock sized array is a problem in the following ways: >> > - it's way too small >> > - there are 2 locks per cacheline >> > - it is not NUMA-aware >> > >> > Solve these issues by introducing per-superpage locks backed by pages >> > allocated from respective domains. >> > >> > This significantly reduces contention e.g. during poudriere -j 104. >> > See the review for results. >> > >> > Reviewed by: kib >> > Discussed with: jeff >> > Sponsored by: The FreeBSD Foundation >> > Differential Revision: https://reviews.freebsd.org/D21833 >> > >> > Modified: >> > head/sys/amd64/amd64/pmap.c >> > >> > Modified: head/sys/amd64/amd64/pmap.c >> > =========================================================================== >> == >> > = >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 >> > 8) >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 >> > 9) >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) >> > #define PV_STAT(x) do { } while (0) >> > #endif >> > >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) >> > +#undef pa_index >> > +#define pa_index(pa) ({ \ >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ >> > + ("address %lx beyond the last segment", (pa))); \ >> > + (pa) >> PDRSHIFT; \ >> > +}) >> > +#if VM_NRESERVLEVEL > 0 >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ >> > + (&(pa_to_pmdp(pa)->pv_lock)) >> > +#else >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) >> > >> > #define NPV_LIST_LOCKS MAXCPU >> > >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) >> > +#endif >> > >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ >> > struct rwlock **_lockp = (lockp); \ >> > @@ -400,14 +412,22 @@ static int pmap_initialized; >> > >> > /* >> > * Data for the pv entry allocation mechanism. >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] >> > - * elements, but reads are not. >> > + * Updates to pv_invl_gen are protected by the pv list lock but reads >> > are >> no >> > t. >> > */ >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = >> > TAILQ_HEAD_INITIALIZER(pv_chu >> nk >> > s); >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; >> > +#if VM_NRESERVLEVEL > 0 >> > +struct pmap_large_md_page { >> > + struct rwlock pv_lock; >> > + struct md_page pv_page; >> > + u_long pv_invl_gen; >> > +}; >> > +static struct pmap_large_md_page *pv_table; >> > +#else >> > static struct rwlock __exclusive_cache_line >> > pv_list_locks[NPV_LIST_LOCKS]; >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; >> > static struct md_page *pv_table; >> > +#endif >> > static struct md_page pv_dummy; >> > >> > /* >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, >> > CTLFL >> A >> > "Number of slow invalidation waits for lockless DI"); >> > #endif >> > >> > +#if VM_NRESERVLEVEL > 0 >> > static u_long * >> > pmap_delayed_invl_genp(vm_page_t m) >> > { >> > >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); >> > +} >> > +#else >> > +static u_long * >> > +pmap_delayed_invl_genp(vm_page_t m) >> > +{ >> > + >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LOCKS]); >> > } >> > +#endif >> > >> > static void >> > pmap_delayed_invl_callout_func(void *arg __unused) >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) >> > m->md.pat_mode = PAT_WRITE_BACK; >> > } >> > >> > +#if VM_NRESERVLEVEL > 0 >> > +static void >> > +pmap_init_pv_table(void) >> > +{ >> > + struct pmap_large_md_page *pvd; >> > + vm_size_t s; >> > + long start, end, highest, pv_npg; >> > + int domain, i, j, pages; >> > + >> > + /* >> > + * We strongly depend on the size being a power of two, so the assert >> > + * is overzealous. However, should the struct be resized to a >> > + * different power of two, the code below needs to be revisited. >> > + */ >> > + CTASSERT((sizeof(*pvd) == 64)); >> > + >> > + /* >> > + * Calculate the size of the array. >> > + */ >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); >> > + s = round_page(s); >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); >> > + if (pv_table == NULL) >> > + panic("%s: kva_alloc failed\n", __func__); >> > + >> > + /* >> > + * Iterate physical segments to allocate space for respective pages. >> > + */ >> > + highest = -1; >> > + s = 0; >> > + for (i = 0; i < vm_phys_nsegs; i++) { >> > + start = vm_phys_segs[i].start / NBPDR; >> > + end = vm_phys_segs[i].end / NBPDR; >> > + domain = vm_phys_segs[i].domain; >> > + >> > + if (highest >= end) >> > + continue; >> > + >> > + if (start < highest) { >> > + start = highest + 1; >> > + pvd = &pv_table[start]; >> > + } else { >> > + /* >> > + * The lowest address may land somewhere in the middle >> > + * of our page. Simplify the code by pretending it is >> > + * at the beginning. >> > + */ >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); >> > + pvd = (struct pmap_large_md_page *)trunc_page(pvd); >> > + start = pvd - pv_table; >> > + } >> > + >> > + pages = end - start + 1; >> > + s = round_page(pages * sizeof(*pvd)); >> > + highest = start + (s / sizeof(*pvd)) - 1; >> > + >> > + for (j = 0; j < s; j += PAGE_SIZE) { >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); >> > + if (m == NULL) >> > + panic("vm_page_alloc_domain failed for %lx\n", >> > (vm_offset_t)pvd + j); >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); >> > + } >> > + >> > + for (j = 0; j < s / sizeof(*pvd); j++) { >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW_NEW); >> > + TAILQ_INIT(&pvd->pv_page.pv_list); >> > + pvd->pv_page.pv_gen = 0; >> > + pvd->pv_page.pat_mode = 0; >> > + pvd->pv_invl_gen = 0; >> > + pvd++; >> > + } >> > + } >> > + TAILQ_INIT(&pv_dummy.pv_list); >> > +} >> > +#else >> > +static void >> > +pmap_init_pv_table(void) >> > +{ >> > + vm_size_t s; >> > + long i, pv_npg; >> > + >> > + /* >> > + * Initialize the pool of pv list locks. >> > + */ >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) >> > + rw_init(&pv_list_locks[i], "pmap pv list"); >> > + >> > + /* >> > + * Calculate the size of the pv head table for superpages. >> > + */ >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> > + >> > + /* >> > + * Allocate memory for the pv head table for superpages. >> > + */ >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); >> > + s = round_page(s); >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >> > + for (i = 0; i < pv_npg; i++) >> > + TAILQ_INIT(&pv_table[i].pv_list); >> > + TAILQ_INIT(&pv_dummy.pv_list); >> > +} >> > +#endif >> > + >> > /* >> > * Initialize the pmap module. >> > * Called by vm_init, to initialize any structures that the pmap >> > @@ -1813,8 +1948,7 @@ pmap_init(void) >> > { >> > struct pmap_preinit_mapping *ppim; >> > vm_page_t m, mpte; >> > - vm_size_t s; >> > - int error, i, pv_npg, ret, skz63; >> > + int error, i, ret, skz63; >> > >> > /* L1TF, reserve page @0 unconditionally */ >> > vm_page_blacklist_add(0, bootverbose); >> > @@ -1902,26 +2036,7 @@ pmap_init(void) >> > */ >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF); >> > >> > - /* >> > - * Initialize the pool of pv list locks. >> > - */ >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) >> > - rw_init(&pv_list_locks[i], "pmap pv list"); >> > - >> > - /* >> > - * Calculate the size of the pv head table for superpages. >> > - */ >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> > - >> > - /* >> > - * Allocate memory for the pv head table for superpages. >> > - */ >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); >> > - s = round_page(s); >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >> > - for (i = 0; i < pv_npg; i++) >> > - TAILQ_INIT(&pv_table[i].pv_list); >> > - TAILQ_INIT(&pv_dummy.pv_list); >> > + pmap_init_pv_table(); >> > >> > pmap_initialized = 1; >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { >> > >> >> This causes a page fault during X (xdm) startup, which loads >> drm-current-kmod. >> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >> 0xfffffe0093e9c260 >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >> panic() at panic+0x43/frame 0xfffffe0093e9c310 >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = >> 0xfffffe0093e9c7a0 --- >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 >> >> --- >> Uptime: 3m33s >> Dumping 945 out of 7974 >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >> >> (kgdb) bt >> #0 doadump (textdump=1) at pcpu_aux.h:55 >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 >> #2 0xffffffff8068caa9 in vpanic (fmt=, >> ap=) >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 >> #3 0xffffffff8068c8a3 in panic (fmt=) >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 >> #4 0xffffffff8098c966 in vm_fault (map=, >> vaddr=, fault_type=, >> fault_flags=, m_hold=) >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, >> vaddr=, fault_type=2 '\002', >> fault_flags=, signo=0x0, ucode=0x0) >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, >> signo=, ucode=) >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 >> #8 0xffffffff809f1aac in calltrap () >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> ---Type to continue, or q to quit--- >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> va=851443712, m=0xfffffe0005b25ce8, prot=, >> flags=2677542912, psind=) at atomic.h:221 >> #10 0xffffffff8098c4a9 in vm_fault (map=, >> vaddr=, fault_type=232 '\ufffd', >> fault_flags=, m_hold=0x0) >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, >> vaddr=, fault_type=2 '\002', >> fault_flags=, signo=0xfffffe0093e9ca84, >> ucode=0xfffffe0093e9ca80) at >> /opt/src/svn-current/sys/vm/vm_fault.c:568 >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, >> signo=, ucode=) >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 >> #14 0xffffffff809f1aac in calltrap () >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> #15 0x0000000030e2a9c3 in ?? () >> Previous frame inner to this frame (corrupt stack?) >> Current language: auto; currently minimal >> (kgdb) frame 9 >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> va=851443712, m=0xfffffe0005b25ce8, prot=, >> flags=2677542912, psind=) at atomic.h:221 >> 221 ATOMIC_CMPSET(long); >> (kgdb) l >> 216 } >> 217 >> 218 ATOMIC_CMPSET(char); >> 219 ATOMIC_CMPSET(short); >> 220 ATOMIC_CMPSET(int); >> 221 ATOMIC_CMPSET(long); >> 222 >> 223 /* >> 224 * Atomically add the value of v to the integer pointed to by p and >> return >> 225 * the previous value of *p. >> (kgdb) > > I should use kgdb from ports instead of /usr/libexec version. Similar > result. > > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> > lock)) > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 > cpuid = 1 > time = 1570417211 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > 0xfffffe0093e9c260 > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > panic() at panic+0x43/frame 0xfffffe0093e9c310 > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = > 0xfffffe0093e9c7a0 --- > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > trap() at trap+0x438/frame 0xfffffe0093e9cab0 > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 > --- > Uptime: 3m33s > Dumping 945 out of 7974 > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > > __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu, > (kgdb) > > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 > (kgdb) frame 10 > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, > src=, expect=) > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 > 221 ATOMIC_CMPSET(long); > (kgdb) l > 216 } > 217 > 218 ATOMIC_CMPSET(char); > 219 ATOMIC_CMPSET(short); > 220 ATOMIC_CMPSET(int); > 221 ATOMIC_CMPSET(long); > 222 > 223 /* > 224 * Atomically add the value of v to the integer pointed to by p and > return > 225 * the previous value of *p. > (kgdb) > > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > -- Mateusz Guzik From owner-svn-src-head@freebsd.org Mon Oct 7 16:12:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C542D13348B; Mon, 7 Oct 2019 16:12:39 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (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 46n59K1bZSz4DjV; Mon, 7 Oct 2019 16:12:36 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id HVceiWZ5yIhW9HVcfiQLTi; Mon, 07 Oct 2019 10:12:35 -0600 X-Authority-Analysis: v=2.3 cv=FcFJO626 c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=VxmjJ2MpAAAA:8 a=pGLkceISAAAA:8 a=ydAlt18Ey_zP8UujD2AA:9 a=nCypQBBfJwDvtQfG:21 a=klMJWfLo0AJK64rW:21 a=YkHeFceOPo6kCEkl:21 a=CjuIK1q_8ugA:10 a=a5Ldh8olR6cA:10 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 a=7gXAzLPJhVmCkEl4_tsf:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id E9A768B1; Mon, 7 Oct 2019 09:12:31 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x97GCV8h003717; Mon, 7 Oct 2019 09:12:31 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x97GCVx3003714; Mon, 7 Oct 2019 09:12:31 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910071612.x97GCVx3003714@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 In-reply-to: References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> Comments: In-reply-to Mateusz Guzik message dated "Mon, 07 Oct 2019 16:24:58 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 07 Oct 2019 09:12:31 -0700 X-CMAE-Envelope: MS4wfLaIuHc7Dn6zDC2/0HF/ZyEiKMiXgIvCdhLHSQX/x0/8YhebY8elZN6cfKp8KFlFhQyDsNqvFmG9UD9Xq74kBevOdDQZpVmJJDRlMw1MEW+W9Z1MTQv2 l+s9ce+Ygntu0M5h5eTvjSM7xPekjdOfpkZIxIj0gvGqt9vOalLsBHYv2gFcreeDln5FlMOKPKlKuSO3FIvtBTLBdadItmLE9QIKzSa65DP+3Uwzu+BtfDYW NSNs1d8zagWGO6SjrwjIYt3tnAUShGqVsxPoeEySceQ= X-Rspamd-Queue-Id: 46n59K1bZSz4DjV X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.136.138) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-3.91 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; REPLYTO_EQ_FROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[138.136.59.64.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; 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:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.31)[ip: (-6.01), ipnet: 64.59.128.0/20(-3.06), asn: 6327(-2.38), country: CA(-0.09)]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 16:12:39 -0000 In message , Mateusz Guzik writes: > Can you show: > > sysctl vm.phys_segso vm.phys_segs: SEGMENT 0: start: 0x10000 end: 0x9d000 domain: 0 free list: 0xffffffff80f31070 SEGMENT 1: start: 0x100000 end: 0x1000000 domain: 0 free list: 0xffffffff80f31070 SEGMENT 2: start: 0x1000000 end: 0x1ca4000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 3: start: 0x1cb3000 end: 0x1ce3000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 4: start: 0x1f00000 end: 0x20000000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 5: start: 0x20200000 end: 0x40000000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 6: start: 0x40203000 end: 0xd4993000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 7: start: 0xd6fff000 end: 0xd7000000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 8: start: 0x100001000 end: 0x211d4d000 domain: 0 free list: 0xffffffff80f30e00 SEGMENT 9: start: 0x21fc00000 end: 0x21fd44000 domain: 0 free list: 0xffffffff80f30e00 > > and from the crashdump: > p pv_table $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 kgdb) p *pv_table $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv list", lo_flags = 623050752, lo_data = 0, lo_witness = 0x800000000201f163}, rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, pv_invl_gen = 0} (kgdb) -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. > > On 10/7/19, Cy Schubert wrote: > > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy Schubert > > writes: > >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz Guzik > >> writes > >> : > >> > Author: mjg > >> > Date: Sun Oct 6 22:13:35 2019 > >> > New Revision: 353149 > >> > URL: https://svnweb.freebsd.org/changeset/base/353149 > >> > > >> > Log: > >> > amd64 pmap: implement per-superpage locks > >> > > >> > The current 256-lock sized array is a problem in the following ways: > >> > - it's way too small > >> > - there are 2 locks per cacheline > >> > - it is not NUMA-aware > >> > > >> > Solve these issues by introducing per-superpage locks backed by pages > >> > allocated from respective domains. > >> > > >> > This significantly reduces contention e.g. during poudriere -j 104. > >> > See the review for results. > >> > > >> > Reviewed by: kib > >> > Discussed with: jeff > >> > Sponsored by: The FreeBSD Foundation > >> > Differential Revision: https://reviews.freebsd.org/D21833 > >> > > >> > Modified: > >> > head/sys/amd64/amd64/pmap.c > >> > > >> > Modified: head/sys/amd64/amd64/pmap.c > >> > ======================================================================== > === > >> == > >> > = > >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 > >> > 8) > >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 > >> > 9) > >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) > >> > #define PV_STAT(x) do { } while (0) > >> > #endif > >> > > >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) > >> > +#undef pa_index > >> > +#define pa_index(pa) ({ \ > >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ > >> > + ("address %lx beyond the last segment", (pa))); \ > >> > + (pa) >> PDRSHIFT; \ > >> > +}) > >> > +#if VM_NRESERVLEVEL > 0 > >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) > >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) > >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ > >> > + (&(pa_to_pmdp(pa)->pv_lock)) > >> > +#else > >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) > >> > > >> > #define NPV_LIST_LOCKS MAXCPU > >> > > >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ > >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) > >> > +#endif > >> > > >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ > >> > struct rwlock **_lockp = (lockp); \ > >> > @@ -400,14 +412,22 @@ static int pmap_initialized; > >> > > >> > /* > >> > * Data for the pv entry allocation mechanism. > >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] > >> > - * elements, but reads are not. > >> > + * Updates to pv_invl_gen are protected by the pv list lock but reads > >> > are > >> no > >> > t. > >> > */ > >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = > >> > TAILQ_HEAD_INITIALIZER(pv_chu > >> nk > >> > s); > >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; > >> > +#if VM_NRESERVLEVEL > 0 > >> > +struct pmap_large_md_page { > >> > + struct rwlock pv_lock; > >> > + struct md_page pv_page; > >> > + u_long pv_invl_gen; > >> > +}; > >> > +static struct pmap_large_md_page *pv_table; > >> > +#else > >> > static struct rwlock __exclusive_cache_line > >> > pv_list_locks[NPV_LIST_LOCKS]; > >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; > >> > static struct md_page *pv_table; > >> > +#endif > >> > static struct md_page pv_dummy; > >> > > >> > /* > >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, > >> > CTLFL > >> A > >> > "Number of slow invalidation waits for lockless DI"); > >> > #endif > >> > > >> > +#if VM_NRESERVLEVEL > 0 > >> > static u_long * > >> > pmap_delayed_invl_genp(vm_page_t m) > >> > { > >> > > >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); > >> > +} > >> > +#else > >> > +static u_long * > >> > +pmap_delayed_invl_genp(vm_page_t m) > >> > +{ > >> > + > >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LO > CKS]); > >> > } > >> > +#endif > >> > > >> > static void > >> > pmap_delayed_invl_callout_func(void *arg __unused) > >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) > >> > m->md.pat_mode = PAT_WRITE_BACK; > >> > } > >> > > >> > +#if VM_NRESERVLEVEL > 0 > >> > +static void > >> > +pmap_init_pv_table(void) > >> > +{ > >> > + struct pmap_large_md_page *pvd; > >> > + vm_size_t s; > >> > + long start, end, highest, pv_npg; > >> > + int domain, i, j, pages; > >> > + > >> > + /* > >> > + * We strongly depend on the size being a power of two, so the > assert > >> > + * is overzealous. However, should the struct be resized to a > >> > + * different power of two, the code below needs to be revisited > . > >> > + */ > >> > + CTASSERT((sizeof(*pvd) == 64)); > >> > + > >> > + /* > >> > + * Calculate the size of the array. > >> > + */ > >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); > >> > + s = round_page(s); > >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); > >> > + if (pv_table == NULL) > >> > + panic("%s: kva_alloc failed\n", __func__); > >> > + > >> > + /* > >> > + * Iterate physical segments to allocate space for respective p > ages. > >> > + */ > >> > + highest = -1; > >> > + s = 0; > >> > + for (i = 0; i < vm_phys_nsegs; i++) { > >> > + start = vm_phys_segs[i].start / NBPDR; > >> > + end = vm_phys_segs[i].end / NBPDR; > >> > + domain = vm_phys_segs[i].domain; > >> > + > >> > + if (highest >= end) > >> > + continue; > >> > + > >> > + if (start < highest) { > >> > + start = highest + 1; > >> > + pvd = &pv_table[start]; > >> > + } else { > >> > + /* > >> > + * The lowest address may land somewhere in the > middle > >> > + * of our page. Simplify the code by pretending > it is > >> > + * at the beginning. > >> > + */ > >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); > >> > + pvd = (struct pmap_large_md_page *)trunc_page(p > vd); > >> > + start = pvd - pv_table; > >> > + } > >> > + > >> > + pages = end - start + 1; > >> > + s = round_page(pages * sizeof(*pvd)); > >> > + highest = start + (s / sizeof(*pvd)) - 1; > >> > + > >> > + for (j = 0; j < s; j += PAGE_SIZE) { > >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, > >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); > >> > + if (m == NULL) > >> > + panic("vm_page_alloc_domain failed for > %lx\n", > >> > (vm_offset_t)pvd + j); > >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); > >> > + } > >> > + > >> > + for (j = 0; j < s / sizeof(*pvd); j++) { > >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW > _NEW); > >> > + TAILQ_INIT(&pvd->pv_page.pv_list); > >> > + pvd->pv_page.pv_gen = 0; > >> > + pvd->pv_page.pat_mode = 0; > >> > + pvd->pv_invl_gen = 0; > >> > + pvd++; > >> > + } > >> > + } > >> > + TAILQ_INIT(&pv_dummy.pv_list); > >> > +} > >> > +#else > >> > +static void > >> > +pmap_init_pv_table(void) > >> > +{ > >> > + vm_size_t s; > >> > + long i, pv_npg; > >> > + > >> > + /* > >> > + * Initialize the pool of pv list locks. > >> > + */ > >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) > >> > + rw_init(&pv_list_locks[i], "pmap pv list"); > >> > + > >> > + /* > >> > + * Calculate the size of the pv head table for superpages. > >> > + */ > >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> > + > >> > + /* > >> > + * Allocate memory for the pv head table for superpages. > >> > + */ > >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); > >> > + s = round_page(s); > >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > >> > + for (i = 0; i < pv_npg; i++) > >> > + TAILQ_INIT(&pv_table[i].pv_list); > >> > + TAILQ_INIT(&pv_dummy.pv_list); > >> > +} > >> > +#endif > >> > + > >> > /* > >> > * Initialize the pmap module. > >> > * Called by vm_init, to initialize any structures that the pmap > >> > @@ -1813,8 +1948,7 @@ pmap_init(void) > >> > { > >> > struct pmap_preinit_mapping *ppim; > >> > vm_page_t m, mpte; > >> > - vm_size_t s; > >> > - int error, i, pv_npg, ret, skz63; > >> > + int error, i, ret, skz63; > >> > > >> > /* L1TF, reserve page @0 unconditionally */ > >> > vm_page_blacklist_add(0, bootverbose); > >> > @@ -1902,26 +2036,7 @@ pmap_init(void) > >> > */ > >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF) > ; > >> > > >> > - /* > >> > - * Initialize the pool of pv list locks. > >> > - */ > >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) > >> > - rw_init(&pv_list_locks[i], "pmap pv list"); > >> > - > >> > - /* > >> > - * Calculate the size of the pv head table for superpages. > >> > - */ > >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> > - > >> > - /* > >> > - * Allocate memory for the pv head table for superpages. > >> > - */ > >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); > >> > - s = round_page(s); > >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > >> > - for (i = 0; i < pv_npg; i++) > >> > - TAILQ_INIT(&pv_table[i].pv_list); > >> > - TAILQ_INIT(&pv_dummy.pv_list); > >> > + pmap_init_pv_table(); > >> > > >> > pmap_initialized = 1; > >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { > >> > > >> > >> This causes a page fault during X (xdm) startup, which loads > >> drm-current-kmod. > >> > >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >> 0xfffffe0093e9c260 > >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > >> panic() at panic+0x43/frame 0xfffffe0093e9c310 > >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = > >> 0xfffffe0093e9c7a0 --- > >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 > >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 > >> > >> --- > >> Uptime: 3m33s > >> Dumping 945 out of 7974 > >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > >> > >> (kgdb) bt > >> #0 doadump (textdump=1) at pcpu_aux.h:55 > >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) > >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 > >> #2 0xffffffff8068caa9 in vpanic (fmt=, > >> ap=) > >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 > >> #3 0xffffffff8068c8a3 in panic (fmt=) > >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 > >> #4 0xffffffff8098c966 in vm_fault (map=, > >> vaddr=, fault_type=, > >> fault_flags=, m_hold=) > >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 > >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, > >> vaddr=, fault_type=2 '\002', > >> fault_flags=, signo=0x0, ucode=0x0) > >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 > >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, > >> signo=, ucode=) > >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) > >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 > >> #8 0xffffffff809f1aac in calltrap () > >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >> ---Type to continue, or q to quit--- > >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >> va=851443712, m=0xfffffe0005b25ce8, prot=, > >> flags=2677542912, psind=) at atomic.h:221 > >> #10 0xffffffff8098c4a9 in vm_fault (map=, > >> vaddr=, fault_type=232 '\ufffd', > >> fault_flags=, m_hold=0x0) > >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 > >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, > >> vaddr=, fault_type=2 '\002', > >> fault_flags=, signo=0xfffffe0093e9ca84, > >> ucode=0xfffffe0093e9ca80) at > >> /opt/src/svn-current/sys/vm/vm_fault.c:568 > >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, > >> signo=, ucode=) > >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) > >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 > >> #14 0xffffffff809f1aac in calltrap () > >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >> #15 0x0000000030e2a9c3 in ?? () > >> Previous frame inner to this frame (corrupt stack?) > >> Current language: auto; currently minimal > >> (kgdb) frame 9 > >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >> va=851443712, m=0xfffffe0005b25ce8, prot=, > >> flags=2677542912, psind=) at atomic.h:221 > >> 221 ATOMIC_CMPSET(long); > >> (kgdb) l > >> 216 } > >> 217 > >> 218 ATOMIC_CMPSET(char); > >> 219 ATOMIC_CMPSET(short); > >> 220 ATOMIC_CMPSET(int); > >> 221 ATOMIC_CMPSET(long); > >> 222 > >> 223 /* > >> 224 * Atomically add the value of v to the integer pointed to by p > and > >> return > >> 225 * the previous value of *p. > >> (kgdb) > > > > I should use kgdb from ports instead of /usr/libexec version. Similar > > result. > > > > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> > > lock)) > > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 > > cpuid = 1 > > time = 1570417211 > > KDB: stack backtrace: > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > > 0xfffffe0093e9c260 > > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > > panic() at panic+0x43/frame 0xfffffe0093e9c310 > > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = > > 0xfffffe0093e9c7a0 --- > > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > > trap() at trap+0x438/frame 0xfffffe0093e9cab0 > > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = 0x7fffffffeaa0 > > --- > > Uptime: 3m33s > > Dumping 945 out of 7974 > > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > > > > __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 > > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcp > u, > > (kgdb) > > > > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 > > (kgdb) frame 10 > > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, > > src=, expect=) > > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 > > 221 ATOMIC_CMPSET(long); > > (kgdb) l > > 216 } > > 217 > > 218 ATOMIC_CMPSET(char); > > 219 ATOMIC_CMPSET(short); > > 220 ATOMIC_CMPSET(int); > > 221 ATOMIC_CMPSET(long); > > 222 > > 223 /* > > 224 * Atomically add the value of v to the integer pointed to by p and > > return > > 225 * the previous value of *p. > > (kgdb) > > > > > > > > -- > > Cheers, > > Cy Schubert > > FreeBSD UNIX: Web: http://www.FreeBSD.org > > > > The need of the many outweighs the greed of the few. > > > > > > > > > -- > Mateusz Guzik From owner-svn-src-head@freebsd.org Mon Oct 7 16:24:45 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 186B61336A8; Mon, 7 Oct 2019 16:24:45 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) (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 46n5RH5xmDz4FFB; Mon, 7 Oct 2019 16:24:43 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-ot1-x344.google.com with SMTP id 41so11479358oti.12; Mon, 07 Oct 2019 09:24:43 -0700 (PDT) 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=a0sorzCbI6G6IgTSAOwppAFYVkkwtFTr8oD4fzFkYxs=; b=c0/oFskfT1qtaatZYZTnEe04Q80HfGch3tYoDl4ygVY6X2b1C7neKtxDEB6+/5rBzh oUaXPcDMI/p8c8TwOFC+lLBdugIsDopHsKnGiGF2c3u58EIYIqw7ehyShT4A2vJbaC3y ONRIjpnybkuiFm1xwZRsMj2IG4Lzn1X1gUAgzISz29mBrcD5ObGmX+9XtqzNcOCXedAg Sp8AUO2AbDiBV4bN/zwGAUbn5s66gHBghGZG82mqvJ31YC4xF3NbgdRqACYn+Cui8cla S/qHAj1pNo/VKiElO6jz87LAVOHSnP1ZVjrvr83xaZvKwIJwceK2k74AXwrHb1Kj4JLn cDzg== 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=a0sorzCbI6G6IgTSAOwppAFYVkkwtFTr8oD4fzFkYxs=; b=lYqjhAzgBur8yLQeuvqcM/CNE2kFgthJX6Ci6CYqEOHGx5rU1O3812U43JkaD1qYBk otRoD1myUdewhgEpdblobereWt4LRFHnYMConCimj8B1nHKp114sz1NIpyzIoXoQ1Yg5 Ii+W3306dZl8VS9+6vDhZNSeSNX7DmsSuz1vNbWUqqly29WnZRCd8FiDnmTAuULlSidd c2MACnJxo3f3vTmjFYvWqJqKEZk2GjtOsOU2Gkgy7T/PqI31aflIzgUPTOjumnF72X5V rnyyFi13tIApvys756Qq5X71QlxnbAS6Z+h9UWsXeRMAWVsuxtaKUcjU4qOC3qny4hb/ Bpeg== X-Gm-Message-State: APjAAAVnxOFhWk5z6T6KrnuPId/RHYsqSdBY6QRCCJI/FLtKrRmUlnhZ TRwX5QKiXV5i7xZ5+A8KsZktNSgx5DGXh77Yi3FWNA== X-Google-Smtp-Source: APXvYqwAU7x2bijSCBCYKBYA3kXGEmyPsq/wOwzTEtPjTZYSdykegJ02t1RkQOrGRcHKkzLtSF9hOjfwMclyV//mXUw= X-Received: by 2002:a9d:68d7:: with SMTP id i23mr22224782oto.23.1570465482463; Mon, 07 Oct 2019 09:24:42 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:458d:0:0:0:0:0 with HTTP; Mon, 7 Oct 2019 09:24:41 -0700 (PDT) In-Reply-To: <201910071612.x97GCVx3003714@slippy.cwsent.com> References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> <201910071612.x97GCVx3003714@slippy.cwsent.com> From: Mateusz Guzik Date: Mon, 7 Oct 2019 18:24:41 +0200 Message-ID: Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 To: Cy Schubert 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: 46n5RH5xmDz4FFB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=c0/oFskf; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2607:f8b0:4864:20::344 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)[-0.998,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (3.05), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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.3.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]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 16:24:45 -0000 Ok, looks ilke it does not like the sparse array for fictitious mappings. I'll see about a patch. On 10/7/19, Cy Schubert wrote: > In message > om> > , Mateusz Guzik writes: >> Can you show: >> >> sysctl vm.phys_segso > > vm.phys_segs: > SEGMENT 0: > > start: 0x10000 > end: 0x9d000 > domain: 0 > free list: 0xffffffff80f31070 > > SEGMENT 1: > > start: 0x100000 > end: 0x1000000 > domain: 0 > free list: 0xffffffff80f31070 > > SEGMENT 2: > > start: 0x1000000 > end: 0x1ca4000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 3: > > start: 0x1cb3000 > end: 0x1ce3000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 4: > > start: 0x1f00000 > end: 0x20000000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 5: > > start: 0x20200000 > end: 0x40000000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 6: > > start: 0x40203000 > end: 0xd4993000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 7: > > start: 0xd6fff000 > end: 0xd7000000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 8: > > start: 0x100001000 > end: 0x211d4d000 > domain: 0 > free list: 0xffffffff80f30e00 > > SEGMENT 9: > > start: 0x21fc00000 > end: 0x21fd44000 > domain: 0 > free list: 0xffffffff80f30e00 > > > >> >> and from the crashdump: >> p pv_table > > $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 > > kgdb) p *pv_table > $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv > list", > lo_flags = 623050752, lo_data = 0, lo_witness = 0x800000000201f163}, > rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, > tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, > pv_invl_gen = 0} > (kgdb) > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > >> >> On 10/7/19, Cy Schubert wrote: >> > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy Schubert >> > writes: >> >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz >> >> Guzik >> >> writes >> >> : >> >> > Author: mjg >> >> > Date: Sun Oct 6 22:13:35 2019 >> >> > New Revision: 353149 >> >> > URL: https://svnweb.freebsd.org/changeset/base/353149 >> >> > >> >> > Log: >> >> > amd64 pmap: implement per-superpage locks >> >> > >> >> > The current 256-lock sized array is a problem in the following >> >> > ways: >> >> > - it's way too small >> >> > - there are 2 locks per cacheline >> >> > - it is not NUMA-aware >> >> > >> >> > Solve these issues by introducing per-superpage locks backed by >> >> > pages >> >> > allocated from respective domains. >> >> > >> >> > This significantly reduces contention e.g. during poudriere -j >> >> > 104. >> >> > See the review for results. >> >> > >> >> > Reviewed by: kib >> >> > Discussed with: jeff >> >> > Sponsored by: The FreeBSD Foundation >> >> > Differential Revision: https://reviews.freebsd.org/D21833 >> >> > >> >> > Modified: >> >> > head/sys/amd64/amd64/pmap.c >> >> > >> >> > Modified: head/sys/amd64/amd64/pmap.c >> >> > ======================================================================== >> === >> >> == >> >> > = >> >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 >> >> > 8) >> >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 >> >> > 9) >> >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) >> >> > #define PV_STAT(x) do { } while (0) >> >> > #endif >> >> > >> >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) >> >> > +#undef pa_index >> >> > +#define pa_index(pa) ({ \ >> >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ >> >> > + ("address %lx beyond the last segment", (pa))); \ >> >> > + (pa) >> PDRSHIFT; \ >> >> > +}) >> >> > +#if VM_NRESERVLEVEL > 0 >> >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) >> >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) >> >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ >> >> > + (&(pa_to_pmdp(pa)->pv_lock)) >> >> > +#else >> >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) >> >> > >> >> > #define NPV_LIST_LOCKS MAXCPU >> >> > >> >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ >> >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) >> >> > +#endif >> >> > >> >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ >> >> > struct rwlock **_lockp = (lockp); \ >> >> > @@ -400,14 +412,22 @@ static int pmap_initialized; >> >> > >> >> > /* >> >> > * Data for the pv entry allocation mechanism. >> >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] >> >> > - * elements, but reads are not. >> >> > + * Updates to pv_invl_gen are protected by the pv list lock but >> >> > reads >> >> > are >> >> no >> >> > t. >> >> > */ >> >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = >> >> > TAILQ_HEAD_INITIALIZER(pv_chu >> >> nk >> >> > s); >> >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; >> >> > +#if VM_NRESERVLEVEL > 0 >> >> > +struct pmap_large_md_page { >> >> > + struct rwlock pv_lock; >> >> > + struct md_page pv_page; >> >> > + u_long pv_invl_gen; >> >> > +}; >> >> > +static struct pmap_large_md_page *pv_table; >> >> > +#else >> >> > static struct rwlock __exclusive_cache_line >> >> > pv_list_locks[NPV_LIST_LOCKS]; >> >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; >> >> > static struct md_page *pv_table; >> >> > +#endif >> >> > static struct md_page pv_dummy; >> >> > >> >> > /* >> >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, >> >> > invl_wait_slow, >> >> > CTLFL >> >> A >> >> > "Number of slow invalidation waits for lockless DI"); >> >> > #endif >> >> > >> >> > +#if VM_NRESERVLEVEL > 0 >> >> > static u_long * >> >> > pmap_delayed_invl_genp(vm_page_t m) >> >> > { >> >> > >> >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); >> >> > +} >> >> > +#else >> >> > +static u_long * >> >> > +pmap_delayed_invl_genp(vm_page_t m) >> >> > +{ >> >> > + >> >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LO >> CKS]); >> >> > } >> >> > +#endif >> >> > >> >> > static void >> >> > pmap_delayed_invl_callout_func(void *arg __unused) >> >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) >> >> > m->md.pat_mode = PAT_WRITE_BACK; >> >> > } >> >> > >> >> > +#if VM_NRESERVLEVEL > 0 >> >> > +static void >> >> > +pmap_init_pv_table(void) >> >> > +{ >> >> > + struct pmap_large_md_page *pvd; >> >> > + vm_size_t s; >> >> > + long start, end, highest, pv_npg; >> >> > + int domain, i, j, pages; >> >> > + >> >> > + /* >> >> > + * We strongly depend on the size being a power of two, so the >> assert >> >> > + * is overzealous. However, should the struct be resized to a >> >> > + * different power of two, the code below needs to be revisited >> . >> >> > + */ >> >> > + CTASSERT((sizeof(*pvd) == 64)); >> >> > + >> >> > + /* >> >> > + * Calculate the size of the array. >> >> > + */ >> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); >> >> > + s = round_page(s); >> >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); >> >> > + if (pv_table == NULL) >> >> > + panic("%s: kva_alloc failed\n", __func__); >> >> > + >> >> > + /* >> >> > + * Iterate physical segments to allocate space for respective p >> ages. >> >> > + */ >> >> > + highest = -1; >> >> > + s = 0; >> >> > + for (i = 0; i < vm_phys_nsegs; i++) { >> >> > + start = vm_phys_segs[i].start / NBPDR; >> >> > + end = vm_phys_segs[i].end / NBPDR; >> >> > + domain = vm_phys_segs[i].domain; >> >> > + >> >> > + if (highest >= end) >> >> > + continue; >> >> > + >> >> > + if (start < highest) { >> >> > + start = highest + 1; >> >> > + pvd = &pv_table[start]; >> >> > + } else { >> >> > + /* >> >> > + * The lowest address may land somewhere in the >> middle >> >> > + * of our page. Simplify the code by pretending >> it is >> >> > + * at the beginning. >> >> > + */ >> >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); >> >> > + pvd = (struct pmap_large_md_page *)trunc_page(p >> vd); >> >> > + start = pvd - pv_table; >> >> > + } >> >> > + >> >> > + pages = end - start + 1; >> >> > + s = round_page(pages * sizeof(*pvd)); >> >> > + highest = start + (s / sizeof(*pvd)) - 1; >> >> > + >> >> > + for (j = 0; j < s; j += PAGE_SIZE) { >> >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, >> >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); >> >> > + if (m == NULL) >> >> > + panic("vm_page_alloc_domain failed for >> %lx\n", >> >> > (vm_offset_t)pvd + j); >> >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); >> >> > + } >> >> > + >> >> > + for (j = 0; j < s / sizeof(*pvd); j++) { >> >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW >> _NEW); >> >> > + TAILQ_INIT(&pvd->pv_page.pv_list); >> >> > + pvd->pv_page.pv_gen = 0; >> >> > + pvd->pv_page.pat_mode = 0; >> >> > + pvd->pv_invl_gen = 0; >> >> > + pvd++; >> >> > + } >> >> > + } >> >> > + TAILQ_INIT(&pv_dummy.pv_list); >> >> > +} >> >> > +#else >> >> > +static void >> >> > +pmap_init_pv_table(void) >> >> > +{ >> >> > + vm_size_t s; >> >> > + long i, pv_npg; >> >> > + >> >> > + /* >> >> > + * Initialize the pool of pv list locks. >> >> > + */ >> >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) >> >> > + rw_init(&pv_list_locks[i], "pmap pv list"); >> >> > + >> >> > + /* >> >> > + * Calculate the size of the pv head table for superpages. >> >> > + */ >> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >> > + >> >> > + /* >> >> > + * Allocate memory for the pv head table for superpages. >> >> > + */ >> >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); >> >> > + s = round_page(s); >> >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >> >> > + for (i = 0; i < pv_npg; i++) >> >> > + TAILQ_INIT(&pv_table[i].pv_list); >> >> > + TAILQ_INIT(&pv_dummy.pv_list); >> >> > +} >> >> > +#endif >> >> > + >> >> > /* >> >> > * Initialize the pmap module. >> >> > * Called by vm_init, to initialize any structures that the pmap >> >> > @@ -1813,8 +1948,7 @@ pmap_init(void) >> >> > { >> >> > struct pmap_preinit_mapping *ppim; >> >> > vm_page_t m, mpte; >> >> > - vm_size_t s; >> >> > - int error, i, pv_npg, ret, skz63; >> >> > + int error, i, ret, skz63; >> >> > >> >> > /* L1TF, reserve page @0 unconditionally */ >> >> > vm_page_blacklist_add(0, bootverbose); >> >> > @@ -1902,26 +2036,7 @@ pmap_init(void) >> >> > */ >> >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF) >> ; >> >> > >> >> > - /* >> >> > - * Initialize the pool of pv list locks. >> >> > - */ >> >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) >> >> > - rw_init(&pv_list_locks[i], "pmap pv list"); >> >> > - >> >> > - /* >> >> > - * Calculate the size of the pv head table for superpages. >> >> > - */ >> >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >> > - >> >> > - /* >> >> > - * Allocate memory for the pv head table for superpages. >> >> > - */ >> >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); >> >> > - s = round_page(s); >> >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >> >> > - for (i = 0; i < pv_npg; i++) >> >> > - TAILQ_INIT(&pv_table[i].pv_list); >> >> > - TAILQ_INIT(&pv_dummy.pv_list); >> >> > + pmap_init_pv_table(); >> >> > >> >> > pmap_initialized = 1; >> >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { >> >> > >> >> >> >> This causes a page fault during X (xdm) startup, which loads >> >> drm-current-kmod. >> >> >> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >> >> 0xfffffe0093e9c260 >> >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >> >> panic() at panic+0x43/frame 0xfffffe0093e9c310 >> >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >> >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >> >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp >> >> = >> >> 0xfffffe0093e9c7a0 --- >> >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >> >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >> >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 >> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >> >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >> >> 0x7fffffffeaa0 >> >> >> >> --- >> >> Uptime: 3m33s >> >> Dumping 945 out of 7974 >> >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >> >> >> >> (kgdb) bt >> >> #0 doadump (textdump=1) at pcpu_aux.h:55 >> >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) >> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 >> >> #2 0xffffffff8068caa9 in vpanic (fmt=, >> >> ap=) >> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 >> >> #3 0xffffffff8068c8a3 in panic (fmt=) >> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 >> >> #4 0xffffffff8098c966 in vm_fault (map=, >> >> vaddr=, fault_type=, >> >> fault_flags=, m_hold=) >> >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 >> >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, >> >> vaddr=, fault_type=2 '\002', >> >> fault_flags=, signo=0x0, ucode=0x0) >> >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 >> >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, >> >> signo=, ucode=) >> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) >> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 >> >> #8 0xffffffff809f1aac in calltrap () >> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> >> ---Type to continue, or q to quit--- >> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> >> va=851443712, m=0xfffffe0005b25ce8, prot=, >> >> flags=2677542912, psind=) at atomic.h:221 >> >> #10 0xffffffff8098c4a9 in vm_fault (map=, >> >> vaddr=, fault_type=232 '\ufffd', >> >> fault_flags=, m_hold=0x0) >> >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 >> >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, >> >> vaddr=, fault_type=2 '\002', >> >> fault_flags=, signo=0xfffffe0093e9ca84, >> >> ucode=0xfffffe0093e9ca80) at >> >> /opt/src/svn-current/sys/vm/vm_fault.c:568 >> >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, >> >> signo=, ucode=) >> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) >> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 >> >> #14 0xffffffff809f1aac in calltrap () >> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> >> #15 0x0000000030e2a9c3 in ?? () >> >> Previous frame inner to this frame (corrupt stack?) >> >> Current language: auto; currently minimal >> >> (kgdb) frame 9 >> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> >> va=851443712, m=0xfffffe0005b25ce8, prot=, >> >> flags=2677542912, psind=) at atomic.h:221 >> >> 221 ATOMIC_CMPSET(long); >> >> (kgdb) l >> >> 216 } >> >> 217 >> >> 218 ATOMIC_CMPSET(char); >> >> 219 ATOMIC_CMPSET(short); >> >> 220 ATOMIC_CMPSET(int); >> >> 221 ATOMIC_CMPSET(long); >> >> 222 >> >> 223 /* >> >> 224 * Atomically add the value of v to the integer pointed to by p >> and >> >> return >> >> 225 * the previous value of *p. >> >> (kgdb) >> > >> > I should use kgdb from ports instead of /usr/libexec version. Similar >> > result. >> > >> > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> >> > lock)) >> > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 >> > cpuid = 1 >> > time = 1570417211 >> > KDB: stack backtrace: >> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >> > 0xfffffe0093e9c260 >> > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >> > panic() at panic+0x43/frame 0xfffffe0093e9c310 >> > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >> > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >> > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp = >> > 0xfffffe0093e9c7a0 --- >> > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >> > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >> > trap() at trap+0x438/frame 0xfffffe0093e9cab0 >> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >> > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >> > 0x7fffffffeaa0 >> > --- >> > Uptime: 3m33s >> > Dumping 945 out of 7974 >> > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >> > >> > __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 >> > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcp >> u, >> > (kgdb) >> > >> > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 >> > (kgdb) frame 10 >> > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, >> > src=, expect=) >> > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 >> > 221 ATOMIC_CMPSET(long); >> > (kgdb) l >> > 216 } >> > 217 >> > 218 ATOMIC_CMPSET(char); >> > 219 ATOMIC_CMPSET(short); >> > 220 ATOMIC_CMPSET(int); >> > 221 ATOMIC_CMPSET(long); >> > 222 >> > 223 /* >> > 224 * Atomically add the value of v to the integer pointed to by p and >> > return >> > 225 * the previous value of *p. >> > (kgdb) >> > >> > >> > >> > -- >> > Cheers, >> > Cy Schubert >> > FreeBSD UNIX: Web: http://www.FreeBSD.org >> > >> > The need of the many outweighs the greed of the few. >> > >> > >> > >> >> >> -- >> Mateusz Guzik > > > > > -- Mateusz Guzik From owner-svn-src-head@freebsd.org Mon Oct 7 17:09:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E903134861; Mon, 7 Oct 2019 17:09:30 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) (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 46n6Qx2yCrz4J1H; Mon, 7 Oct 2019 17:09:29 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-ot1-x342.google.com with SMTP id 41so11611910oti.12; Mon, 07 Oct 2019 10:09:29 -0700 (PDT) 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=1oVN4H7N5c+0CBDMt2YjEqvh0NueqqO8PVfmHsapkAI=; b=tY2qnPVWyfzau7Z3kqOZWzM5egysS7KVWymNVy75gjFKoDjfgkdhdsvMa/gDhGZwoL 3r+f3+Myluy0qK9ll100VuDcPzS60mur8Ig7rjrnPXRopdL2sGrs5wwH1FmazXJM9fl+ ZSuBqOxzsunvjoiekrslLR9xZYyXTU/yDHqIFsTkNKPHwqY1iag5s6yq2O3wyx9cdPUd HV6Oc9vcnXrmAd/JsNgOYxvBUldSfxderhhipNZwAgn4At+1VpOM49HsxfyscXJaX8Ee hxk636w1AGqlULevhIHEAUZXKkmz1k3nzhFcFy07ghIpw75XbEM5vrp35hFGvRLTjzta y5ow== 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=1oVN4H7N5c+0CBDMt2YjEqvh0NueqqO8PVfmHsapkAI=; b=B9/OInKHlEe1SeHg+NQgUbzI2sz3ONv1NTwJHIKMTilYyx+B7z42UdEL2i6I7PxZDj X/CJ1dFJJUdknHSlzWDHJGs3vnWSGjNGEUvz1AsAy4yIoZJvG8deIu5jEjO3SvS8CABx 1Zwfhjg2H6nPfWjSWn+c/Be2fh+hFya0IMZmFCHiumZVpDJaNGPoF5rWT8HxzTrCYW89 N0v1lXUwnFK5DmWM1lFpZ+wvuT+wCyaSy392oc9IHyCoqWvryj+yEP2RklmRYH1mPwGe peB0bsd0f3dEhgutb30FRDFILV0m+Eo0aAJqMti5Ad/8v/mFnFMKUWI3wOa/CAle/++A /pwA== X-Gm-Message-State: APjAAAWlVDWl+plVMHIfNvl59IDCmz8Jr1LunaGrvgmlQMGs2bliJBQX CSweLCywK7VMu6SZGAG+Tfuu1p95no1OipgexgM= X-Google-Smtp-Source: APXvYqzhJkR6DfHCIOUs8btkcttE5Kgi6hlsf7ozalEhj4D3eJYvLqlBmMw5lC3F+GSg8zFmHKrcE83W13dj1TB8eWQ= X-Received: by 2002:a9d:3c9:: with SMTP id f67mr8735062otf.102.1570468168094; Mon, 07 Oct 2019 10:09:28 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:458d:0:0:0:0:0 with HTTP; Mon, 7 Oct 2019 10:09:27 -0700 (PDT) In-Reply-To: References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> <201910071612.x97GCVx3003714@slippy.cwsent.com> From: Mateusz Guzik Date: Mon, 7 Oct 2019 19:09:27 +0200 Message-ID: Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 To: Cy Schubert 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: 46n6Qx2yCrz4J1H X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=tY2qnPVW; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2607:f8b0:4864:20::342 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)[-0.998,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (3.06), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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)[2.4.3.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]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 17:09:30 -0000 Does this fix it for you? https://people.freebsd.org/~mjg/pmap-fict.diff On 10/7/19, Mateusz Guzik wrote: > Ok, looks ilke it does not like the sparse array for fictitious > mappings. I'll see about a patch. > > On 10/7/19, Cy Schubert wrote: >> In message >> > om> >> , Mateusz Guzik writes: >>> Can you show: >>> >>> sysctl vm.phys_segso >> >> vm.phys_segs: >> SEGMENT 0: >> >> start: 0x10000 >> end: 0x9d000 >> domain: 0 >> free list: 0xffffffff80f31070 >> >> SEGMENT 1: >> >> start: 0x100000 >> end: 0x1000000 >> domain: 0 >> free list: 0xffffffff80f31070 >> >> SEGMENT 2: >> >> start: 0x1000000 >> end: 0x1ca4000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 3: >> >> start: 0x1cb3000 >> end: 0x1ce3000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 4: >> >> start: 0x1f00000 >> end: 0x20000000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 5: >> >> start: 0x20200000 >> end: 0x40000000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 6: >> >> start: 0x40203000 >> end: 0xd4993000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 7: >> >> start: 0xd6fff000 >> end: 0xd7000000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 8: >> >> start: 0x100001000 >> end: 0x211d4d000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> SEGMENT 9: >> >> start: 0x21fc00000 >> end: 0x21fd44000 >> domain: 0 >> free list: 0xffffffff80f30e00 >> >> >> >>> >>> and from the crashdump: >>> p pv_table >> >> $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 >> >> kgdb) p *pv_table >> $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv >> list", >> lo_flags = 623050752, lo_data = 0, lo_witness = >> 0x800000000201f163}, >> rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, >> tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, >> pv_invl_gen = 0} >> (kgdb) >> >> >> -- >> Cheers, >> Cy Schubert >> FreeBSD UNIX: Web: http://www.FreeBSD.org >> >> The need of the many outweighs the greed of the few. >> >> >>> >>> On 10/7/19, Cy Schubert wrote: >>> > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy >>> > Schubert >>> > writes: >>> >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz >>> >> Guzik >>> >> writes >>> >> : >>> >> > Author: mjg >>> >> > Date: Sun Oct 6 22:13:35 2019 >>> >> > New Revision: 353149 >>> >> > URL: https://svnweb.freebsd.org/changeset/base/353149 >>> >> > >>> >> > Log: >>> >> > amd64 pmap: implement per-superpage locks >>> >> > >>> >> > The current 256-lock sized array is a problem in the following >>> >> > ways: >>> >> > - it's way too small >>> >> > - there are 2 locks per cacheline >>> >> > - it is not NUMA-aware >>> >> > >>> >> > Solve these issues by introducing per-superpage locks backed by >>> >> > pages >>> >> > allocated from respective domains. >>> >> > >>> >> > This significantly reduces contention e.g. during poudriere -j >>> >> > 104. >>> >> > See the review for results. >>> >> > >>> >> > Reviewed by: kib >>> >> > Discussed with: jeff >>> >> > Sponsored by: The FreeBSD Foundation >>> >> > Differential Revision: https://reviews.freebsd.org/D21833 >>> >> > >>> >> > Modified: >>> >> > head/sys/amd64/amd64/pmap.c >>> >> > >>> >> > Modified: head/sys/amd64/amd64/pmap.c >>> >> > ======================================================================== >>> === >>> >> == >>> >> > = >>> >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 (r35314 >>> >> > 8) >>> >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 (r35314 >>> >> > 9) >>> >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) >>> >> > #define PV_STAT(x) do { } while (0) >>> >> > #endif >>> >> > >>> >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) >>> >> > +#undef pa_index >>> >> > +#define pa_index(pa) ({ \ >>> >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ >>> >> > + ("address %lx beyond the last segment", (pa))); \ >>> >> > + (pa) >> PDRSHIFT; \ >>> >> > +}) >>> >> > +#if VM_NRESERVLEVEL > 0 >>> >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) >>> >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) >>> >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ >>> >> > + (&(pa_to_pmdp(pa)->pv_lock)) >>> >> > +#else >>> >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) >>> >> > >>> >> > #define NPV_LIST_LOCKS MAXCPU >>> >> > >>> >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ >>> >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) >>> >> > +#endif >>> >> > >>> >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ >>> >> > struct rwlock **_lockp = (lockp); \ >>> >> > @@ -400,14 +412,22 @@ static int pmap_initialized; >>> >> > >>> >> > /* >>> >> > * Data for the pv entry allocation mechanism. >>> >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] >>> >> > - * elements, but reads are not. >>> >> > + * Updates to pv_invl_gen are protected by the pv list lock but >>> >> > reads >>> >> > are >>> >> no >>> >> > t. >>> >> > */ >>> >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = >>> >> > TAILQ_HEAD_INITIALIZER(pv_chu >>> >> nk >>> >> > s); >>> >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; >>> >> > +#if VM_NRESERVLEVEL > 0 >>> >> > +struct pmap_large_md_page { >>> >> > + struct rwlock pv_lock; >>> >> > + struct md_page pv_page; >>> >> > + u_long pv_invl_gen; >>> >> > +}; >>> >> > +static struct pmap_large_md_page *pv_table; >>> >> > +#else >>> >> > static struct rwlock __exclusive_cache_line >>> >> > pv_list_locks[NPV_LIST_LOCKS]; >>> >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; >>> >> > static struct md_page *pv_table; >>> >> > +#endif >>> >> > static struct md_page pv_dummy; >>> >> > >>> >> > /* >>> >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, >>> >> > invl_wait_slow, >>> >> > CTLFL >>> >> A >>> >> > "Number of slow invalidation waits for lockless DI"); >>> >> > #endif >>> >> > >>> >> > +#if VM_NRESERVLEVEL > 0 >>> >> > static u_long * >>> >> > pmap_delayed_invl_genp(vm_page_t m) >>> >> > { >>> >> > >>> >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); >>> >> > +} >>> >> > +#else >>> >> > +static u_long * >>> >> > +pmap_delayed_invl_genp(vm_page_t m) >>> >> > +{ >>> >> > + >>> >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LO >>> CKS]); >>> >> > } >>> >> > +#endif >>> >> > >>> >> > static void >>> >> > pmap_delayed_invl_callout_func(void *arg __unused) >>> >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) >>> >> > m->md.pat_mode = PAT_WRITE_BACK; >>> >> > } >>> >> > >>> >> > +#if VM_NRESERVLEVEL > 0 >>> >> > +static void >>> >> > +pmap_init_pv_table(void) >>> >> > +{ >>> >> > + struct pmap_large_md_page *pvd; >>> >> > + vm_size_t s; >>> >> > + long start, end, highest, pv_npg; >>> >> > + int domain, i, j, pages; >>> >> > + >>> >> > + /* >>> >> > + * We strongly depend on the size being a power of two, so the >>> assert >>> >> > + * is overzealous. However, should the struct be resized to a >>> >> > + * different power of two, the code below needs to be revisited >>> . >>> >> > + */ >>> >> > + CTASSERT((sizeof(*pvd) == 64)); >>> >> > + >>> >> > + /* >>> >> > + * Calculate the size of the array. >>> >> > + */ >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); >>> >> > + s = round_page(s); >>> >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); >>> >> > + if (pv_table == NULL) >>> >> > + panic("%s: kva_alloc failed\n", __func__); >>> >> > + >>> >> > + /* >>> >> > + * Iterate physical segments to allocate space for respective p >>> ages. >>> >> > + */ >>> >> > + highest = -1; >>> >> > + s = 0; >>> >> > + for (i = 0; i < vm_phys_nsegs; i++) { >>> >> > + start = vm_phys_segs[i].start / NBPDR; >>> >> > + end = vm_phys_segs[i].end / NBPDR; >>> >> > + domain = vm_phys_segs[i].domain; >>> >> > + >>> >> > + if (highest >= end) >>> >> > + continue; >>> >> > + >>> >> > + if (start < highest) { >>> >> > + start = highest + 1; >>> >> > + pvd = &pv_table[start]; >>> >> > + } else { >>> >> > + /* >>> >> > + * The lowest address may land somewhere in the >>> middle >>> >> > + * of our page. Simplify the code by pretending >>> it is >>> >> > + * at the beginning. >>> >> > + */ >>> >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); >>> >> > + pvd = (struct pmap_large_md_page *)trunc_page(p >>> vd); >>> >> > + start = pvd - pv_table; >>> >> > + } >>> >> > + >>> >> > + pages = end - start + 1; >>> >> > + s = round_page(pages * sizeof(*pvd)); >>> >> > + highest = start + (s / sizeof(*pvd)) - 1; >>> >> > + >>> >> > + for (j = 0; j < s; j += PAGE_SIZE) { >>> >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, >>> >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); >>> >> > + if (m == NULL) >>> >> > + panic("vm_page_alloc_domain failed for >>> %lx\n", >>> >> > (vm_offset_t)pvd + j); >>> >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); >>> >> > + } >>> >> > + >>> >> > + for (j = 0; j < s / sizeof(*pvd); j++) { >>> >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW >>> _NEW); >>> >> > + TAILQ_INIT(&pvd->pv_page.pv_list); >>> >> > + pvd->pv_page.pv_gen = 0; >>> >> > + pvd->pv_page.pat_mode = 0; >>> >> > + pvd->pv_invl_gen = 0; >>> >> > + pvd++; >>> >> > + } >>> >> > + } >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); >>> >> > +} >>> >> > +#else >>> >> > +static void >>> >> > +pmap_init_pv_table(void) >>> >> > +{ >>> >> > + vm_size_t s; >>> >> > + long i, pv_npg; >>> >> > + >>> >> > + /* >>> >> > + * Initialize the pool of pv list locks. >>> >> > + */ >>> >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) >>> >> > + rw_init(&pv_list_locks[i], "pmap pv list"); >>> >> > + >>> >> > + /* >>> >> > + * Calculate the size of the pv head table for superpages. >>> >> > + */ >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >>> >> > + >>> >> > + /* >>> >> > + * Allocate memory for the pv head table for superpages. >>> >> > + */ >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); >>> >> > + s = round_page(s); >>> >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >>> >> > + for (i = 0; i < pv_npg; i++) >>> >> > + TAILQ_INIT(&pv_table[i].pv_list); >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); >>> >> > +} >>> >> > +#endif >>> >> > + >>> >> > /* >>> >> > * Initialize the pmap module. >>> >> > * Called by vm_init, to initialize any structures that the pmap >>> >> > @@ -1813,8 +1948,7 @@ pmap_init(void) >>> >> > { >>> >> > struct pmap_preinit_mapping *ppim; >>> >> > vm_page_t m, mpte; >>> >> > - vm_size_t s; >>> >> > - int error, i, pv_npg, ret, skz63; >>> >> > + int error, i, ret, skz63; >>> >> > >>> >> > /* L1TF, reserve page @0 unconditionally */ >>> >> > vm_page_blacklist_add(0, bootverbose); >>> >> > @@ -1902,26 +2036,7 @@ pmap_init(void) >>> >> > */ >>> >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF) >>> ; >>> >> > >>> >> > - /* >>> >> > - * Initialize the pool of pv list locks. >>> >> > - */ >>> >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) >>> >> > - rw_init(&pv_list_locks[i], "pmap pv list"); >>> >> > - >>> >> > - /* >>> >> > - * Calculate the size of the pv head table for superpages. >>> >> > - */ >>> >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >>> >> > - >>> >> > - /* >>> >> > - * Allocate memory for the pv head table for superpages. >>> >> > - */ >>> >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); >>> >> > - s = round_page(s); >>> >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); >>> >> > - for (i = 0; i < pv_npg; i++) >>> >> > - TAILQ_INIT(&pv_table[i].pv_list); >>> >> > - TAILQ_INIT(&pv_dummy.pv_list); >>> >> > + pmap_init_pv_table(); >>> >> > >>> >> > pmap_initialized = 1; >>> >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { >>> >> > >>> >> >>> >> This causes a page fault during X (xdm) startup, which loads >>> >> drm-current-kmod. >>> >> >>> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >>> >> 0xfffffe0093e9c260 >>> >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >>> >> panic() at panic+0x43/frame 0xfffffe0093e9c310 >>> >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >>> >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >>> >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp >>> >> = >>> >> 0xfffffe0093e9c7a0 --- >>> >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >>> >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >>> >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >>> >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >>> >> 0x7fffffffeaa0 >>> >> >>> >> --- >>> >> Uptime: 3m33s >>> >> Dumping 945 out of 7974 >>> >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >>> >> >>> >> (kgdb) bt >>> >> #0 doadump (textdump=1) at pcpu_aux.h:55 >>> >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 >>> >> #2 0xffffffff8068caa9 in vpanic (fmt=, >>> >> ap=) >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 >>> >> #3 0xffffffff8068c8a3 in panic (fmt=) >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 >>> >> #4 0xffffffff8098c966 in vm_fault (map=, >>> >> vaddr=, fault_type=, >>> >> fault_flags=, m_hold=) >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 >>> >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, >>> >> vaddr=, fault_type=2 '\002', >>> >> fault_flags=, signo=0x0, ucode=0x0) >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 >>> >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, >>> >> signo=, ucode=) >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >>> >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 >>> >> #8 0xffffffff809f1aac in calltrap () >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >>> >> ---Type to continue, or q to quit--- >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=, >>> >> flags=2677542912, psind=) at atomic.h:221 >>> >> #10 0xffffffff8098c4a9 in vm_fault (map=, >>> >> vaddr=, fault_type=232 '\ufffd', >>> >> fault_flags=, m_hold=0x0) >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 >>> >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, >>> >> vaddr=, fault_type=2 '\002', >>> >> fault_flags=, signo=0xfffffe0093e9ca84, >>> >> ucode=0xfffffe0093e9ca80) at >>> >> /opt/src/svn-current/sys/vm/vm_fault.c:568 >>> >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, >>> >> signo=, ucode=) >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >>> >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 >>> >> #14 0xffffffff809f1aac in calltrap () >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >>> >> #15 0x0000000030e2a9c3 in ?? () >>> >> Previous frame inner to this frame (corrupt stack?) >>> >> Current language: auto; currently minimal >>> >> (kgdb) frame 9 >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=, >>> >> flags=2677542912, psind=) at atomic.h:221 >>> >> 221 ATOMIC_CMPSET(long); >>> >> (kgdb) l >>> >> 216 } >>> >> 217 >>> >> 218 ATOMIC_CMPSET(char); >>> >> 219 ATOMIC_CMPSET(short); >>> >> 220 ATOMIC_CMPSET(int); >>> >> 221 ATOMIC_CMPSET(long); >>> >> 222 >>> >> 223 /* >>> >> 224 * Atomically add the value of v to the integer pointed to by p >>> and >>> >> return >>> >> 225 * the previous value of *p. >>> >> (kgdb) >>> > >>> > I should use kgdb from ports instead of /usr/libexec version. Similar >>> > result. >>> > >>> > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> >>> > lock)) >>> > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 >>> > cpuid = 1 >>> > time = 1570417211 >>> > KDB: stack backtrace: >>> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >>> > 0xfffffe0093e9c260 >>> > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >>> > panic() at panic+0x43/frame 0xfffffe0093e9c310 >>> > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >>> > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >>> > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp >>> > = >>> > 0xfffffe0093e9c7a0 --- >>> > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >>> > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >>> > trap() at trap+0x438/frame 0xfffffe0093e9cab0 >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >>> > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >>> > 0x7fffffffeaa0 >>> > --- >>> > Uptime: 3m33s >>> > Dumping 945 out of 7974 >>> > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >>> > >>> > __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 >>> > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcp >>> u, >>> > (kgdb) >>> > >>> > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 >>> > (kgdb) frame 10 >>> > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, >>> > src=, expect=) >>> > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 >>> > 221 ATOMIC_CMPSET(long); >>> > (kgdb) l >>> > 216 } >>> > 217 >>> > 218 ATOMIC_CMPSET(char); >>> > 219 ATOMIC_CMPSET(short); >>> > 220 ATOMIC_CMPSET(int); >>> > 221 ATOMIC_CMPSET(long); >>> > 222 >>> > 223 /* >>> > 224 * Atomically add the value of v to the integer pointed to by p >>> > and >>> > return >>> > 225 * the previous value of *p. >>> > (kgdb) >>> > >>> > >>> > >>> > -- >>> > Cheers, >>> > Cy Schubert >>> > FreeBSD UNIX: Web: http://www.FreeBSD.org >>> > >>> > The need of the many outweighs the greed of the few. >>> > >>> > >>> > >>> >>> >>> -- >>> Mateusz Guzik >> >> >> >> >> > > > -- > Mateusz Guzik > -- Mateusz Guzik From owner-svn-src-head@freebsd.org Mon Oct 7 18:12:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 830CA136085; Mon, 7 Oct 2019 18:12:52 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46n7r42v3wz4NTJ; Mon, 7 Oct 2019 18:12:52 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (c-73-225-95-104.hsd1.wa.comcast.net [73.225.95.104]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id x97ICnff054137 (version=TLSv1.2 cipher=AES128-SHA bits=128 verify=NO); Mon, 7 Oct 2019 11:12:50 -0700 (PDT) (envelope-from julian@freebsd.org) Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 To: Mateusz Guzik , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910062213.x96MDZv3085523@repo.freebsd.org> From: Julian Elischer Message-ID: <11d81a71-ebdd-72ae-3960-bf6fd3fdeb57@freebsd.org> Date: Mon, 7 Oct 2019 11:12:43 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <201910062213.x96MDZv3085523@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Rspamd-Queue-Id: 46n7r42v3wz4NTJ X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.97 / 15.00]; NEURAL_HAM_MEDIUM(-0.97)[-0.969,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 18:12:52 -0000 On 10/6/19 3:13 PM, Mateusz Guzik wrote: > Author: mjg > Date: Sun Oct 6 22:13:35 2019 > New Revision: 353149 > URL: https://svnweb.freebsd.org/changeset/base/353149 > > Log: > amd64 pmap: implement per-superpage locks > > I read the diff and it seems ok and I'm glad you can turn it off if there are issues, Can you give a little more background for those of us who are not up to date in current pmap implementation as to how this works? (for educational reasons) From owner-svn-src-head@freebsd.org Mon Oct 7 18:21:33 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE59E136198; Mon, 7 Oct 2019 18:21:33 +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 46n82565w6z4NsD; Mon, 7 Oct 2019 18:21:33 +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 B57CE1A911; Mon, 7 Oct 2019 18:21:33 +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 x97ILXwB011797; Mon, 7 Oct 2019 18:21:33 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ILXNS011796; Mon, 7 Oct 2019 18:21:33 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910071821.x97ILXNS011796@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 18:21:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353281 - head/tests/sys/cddl/zfs/tests/zvol/zvol_misc X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc X-SVN-Commit-Revision: 353281 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 18:21:34 -0000 Author: asomers Date: Mon Oct 7 18:21:33 2019 New Revision: 353281 URL: https://svnweb.freebsd.org/changeset/base/353281 Log: ZFS: fix several zvol_misc tests * Adapt zvol_misc_001_neg to use dumpon instead of Solaris's dumpadm * Disable zvol_misc_003_neg, zvol_misc_005_neg, and zvol_misc_006_pos, because they involve using a zvol as a dump device, which FreeBSD does not yet support. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_test.sh Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh Mon Oct 7 15:29:37 2019 (r353280) +++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh Mon Oct 7 18:21:33 2019 (r353281) @@ -44,7 +44,7 @@ # # STRATEGY: # 1. Create a ZFS volume -# 2. Use dumpadm add the volume as dump device +# 2. Use dumpon add the volume as dump device # 3. Verify the return code as expected. # # TESTABILITY: explicit @@ -71,15 +71,10 @@ function cleanup log_assert "Verify that ZFS volume cannot act as dump device until dumpswap supported." log_onexit cleanup -test_requires DUMPADM - voldev=/dev/zvol/$TESTPOOL/$TESTVOL savedumpdev=$(get_dumpdevice) -if ! is_dumpswap_supported $TESTPOOL ; then - log_mustnot $DUMPADM -d $voldev -else - safe_dumpadm $voldev -fi +# FreeBSD doesn't support using zvols as dump devices for any pool version +log_mustnot $DUMPON $voldev log_pass "ZFS volume cannot act as dump device until dumpswap supported as expected." Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_test.sh Mon Oct 7 15:29:37 2019 (r353280) +++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_test.sh Mon Oct 7 18:21:33 2019 (r353281) @@ -30,7 +30,6 @@ atf_test_case zvol_misc_001_neg cleanup zvol_misc_001_neg_head() { atf_set "descr" "Verify that ZFS volume cannot act as dump device until dumpswap supported." - atf_set "require.progs" dumpadm } zvol_misc_001_neg_body() { @@ -82,6 +81,7 @@ zvol_misc_003_neg_head() } zvol_misc_003_neg_body() { + atf_skip "FreeBSD does not yet support dumping to a zvol" . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zvol_misc.cfg @@ -106,6 +106,7 @@ zvol_misc_004_pos_head() } zvol_misc_004_pos_body() { + atf_skip "FreeBSD does not yet support dumping to a zvol" . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zvol_misc.cfg @@ -130,6 +131,7 @@ zvol_misc_005_neg_head() } zvol_misc_005_neg_body() { + atf_skip "FreeBSD does not yet support dumping to a zvol" . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zvol_misc.cfg @@ -154,6 +156,7 @@ zvol_misc_006_pos_head() } zvol_misc_006_pos_body() { + atf_skip "FreeBSD does not yet support dumping to a zvol" . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zvol_misc.cfg From owner-svn-src-head@freebsd.org Mon Oct 7 18:55:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 249DD136C18; Mon, 7 Oct 2019 18:55:41 +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 46n8nT08DFz4QZK; Mon, 7 Oct 2019 18:55:41 +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 DDCD71AFB5; Mon, 7 Oct 2019 18:55:40 +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 x97ItefG033828; Mon, 7 Oct 2019 18:55:40 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97Iten2033827; Mon, 7 Oct 2019 18:55:40 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910071855.x97Iten2033827@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 18:55:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353282 - head/tests/sys/cddl/zfs/tests/slog X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/slog X-SVN-Commit-Revision: 353282 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 18:55:41 -0000 Author: asomers Date: Mon Oct 7 18:55:40 2019 New Revision: 353282 URL: https://svnweb.freebsd.org/changeset/base/353282 Log: zfs: fix the slog_012_neg test This test attempts to corrupt a file-backed vdev by deleting it and then recreating it with truncate. But that doesn't work, because the pool already has the vdev open, and it happily hangs on to the open-but-deleted file. Fix by truncating the file without deleting it. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/slog/slog_012_neg.ksh Modified: head/tests/sys/cddl/zfs/tests/slog/slog_012_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/slog/slog_012_neg.ksh Mon Oct 7 18:21:33 2019 (r353281) +++ head/tests/sys/cddl/zfs/tests/slog/slog_012_neg.ksh Mon Oct 7 18:55:40 2019 (r353282) @@ -74,7 +74,9 @@ function test_slog_mirror_corruption # Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 405C7137026; Mon, 7 Oct 2019 19:05:07 +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 46n90M1lslz4RC4; Mon, 7 Oct 2019 19:05:07 +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 0524B1B17F; Mon, 7 Oct 2019 19:05:07 +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 x97J57AF039819; Mon, 7 Oct 2019 19:05:07 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97J56t0039812; Mon, 7 Oct 2019 19:05:06 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201910071905.x97J56t0039812@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 7 Oct 2019 19:05:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353283 - in head: lib lib/libstats share/man/man3 share/mk sys/amd64/conf sys/conf sys/kern sys/sys tools/build/options X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head: lib lib/libstats share/man/man3 share/mk sys/amd64/conf sys/conf sys/kern sys/sys tools/build/options X-SVN-Commit-Revision: 353283 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 19:05:07 -0000 Author: trasz Date: Mon Oct 7 19:05:05 2019 New Revision: 353283 URL: https://svnweb.freebsd.org/changeset/base/353283 Log: Introduce stats(3), a flexible statistics gathering API. This provides a framework to define a template describing a set of "variables of interest" and the intended way for the framework to maintain them (for example the maximum, sum, t-digest, or a combination thereof). Afterwards the user code feeds in the raw data, and the framework maintains these variables inside a user-provided, opaque stats blobs. The framework also provides a way to selectively extract the stats from the blobs. The stats(3) framework can be used in both userspace and the kernel. See the stats(3) manual page for details. This will be used by the upcoming TCP statistics gathering code, https://reviews.freebsd.org/D20655. The stats(3) framework is disabled by default for now, except in the NOTES kernel (for QA); it is expected to be enabled in amd64 GENERIC after a cool down period. Reviewed by: sef (earlier version) Obtained from: Netflix Relnotes: yes Sponsored by: Klara Inc, Netflix Differential Revision: https://reviews.freebsd.org/D20477 Added: head/lib/libstats/ head/lib/libstats/Makefile (contents, props changed) head/share/man/man3/stats.3 (contents, props changed) head/sys/kern/subr_stats.c (contents, props changed) head/sys/sys/stats.h (contents, props changed) head/tools/build/options/WITHOUT_STATS (contents, props changed) head/tools/build/options/WITH_STATS (contents, props changed) Modified: head/lib/Makefile head/share/man/man3/Makefile head/share/man/man3/arb.3 head/share/mk/bsd.libnames.mk head/share/mk/src.libnames.mk head/share/mk/src.opts.mk head/sys/amd64/conf/NOTES head/sys/conf/files head/sys/conf/options head/sys/sys/arb.h Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Mon Oct 7 18:55:40 2019 (r353282) +++ head/lib/Makefile Mon Oct 7 19:05:05 2019 (r353283) @@ -152,6 +152,7 @@ SUBDIR.${MK_GSSAPI}+= libgssapi librpcsec_gss SUBDIR.${MK_ICONV}+= libiconv_modules SUBDIR.${MK_KERBEROS_SUPPORT}+= libcom_err SUBDIR.${MK_LDNS}+= libldns +SUBDIR.${MK_STATS}+= libstats # The libraries under libclang_rt can only be built by clang, and only make # sense to build when clang is enabled at all. Furthermore, they can only be Added: head/lib/libstats/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libstats/Makefile Mon Oct 7 19:05:05 2019 (r353283) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +LIB= stats +SHLIBDIR?= /lib +SHLIB_MAJOR= 0 +SRCS= subr_stats.c + +# To debug, comment WITHOUT_ASSERT_DEBUG= and uncomment CFLAGS:= +WITHOUT_ASSERT_DEBUG= +#CFLAGS:=${CFLAGS:C/-O[0-9]/-O0 -g3/} -DDIAGNOSTIC + +.PATH: ${.CURDIR}/../../sys/kern + +.include Modified: head/share/man/man3/Makefile ============================================================================== --- head/share/man/man3/Makefile Mon Oct 7 18:55:40 2019 (r353282) +++ head/share/man/man3/Makefile Mon Oct 7 19:05:05 2019 (r353283) @@ -27,6 +27,7 @@ MAN= arb.3 \ queue.3 \ sigevent.3 \ siginfo.3 \ + stats.3 \ stdarg.3 \ sysexits.3 \ tgmath.3 \ @@ -67,6 +68,7 @@ MLINKS= arb.3 ARB8_ENTRY.3 \ arb.3 ARB_PREV.3 \ arb.3 ARB_REINSERT.3 \ arb.3 ARB_REMOVE.3 \ + arb.3 ARB_RESET_TREE.3 \ arb.3 ARB_RIGHT.3 \ arb.3 ARB_RIGHTIDX.3 \ arb.3 ARB_ROOT.3 @@ -269,6 +271,27 @@ MLINKS+= queue.3 LIST_CLASS_ENTRY.3 \ queue.3 TAILQ_PREV.3 \ queue.3 TAILQ_REMOVE.3 \ queue.3 TAILQ_SWAP.3 +MLINKS+= stats.3 stats_tpl_alloc.3 \ + stats.3 stats_tpl_fetch_allocid.3 \ + stats.3 stats_tpl_fetch.3 \ + stats.3 stats_tpl_id2name.3 \ + stats.3 stats_tpl_sample_rates.3 \ + stats.3 stats_tpl_sample_rollthedice.3 \ + stats.3 STATS_VSS_SUM.3 \ + stats.3 STATS_VSS_MAX.3 \ + stats.3 STATS_VSS_MIN.3 \ + stats.3 STATS_VSS_CRHIST32_LIN.3 \ + stats.3 STATS_VSS_CRHIST64_LIN.3 \ + stats.3 stats_tpl_add_voistats.3 \ + stats.3 stats_blob_alloc.3 \ + stats.3 stats_blob_init.3 \ + stats.3 stats_blob_clone.3 \ + stats.3 stats_blob_destroy.3 \ + stats.3 stats_voistat_fetch_dptr.3 \ + stats.3 stats_blob_snapshot.3 \ + stats.3 stats_blob_tostr.3 \ + stats.3 stats_voistatdata_tostr.3 \ + stats.3 stats_blob_visit.3 MLINKS+= stdarg.3 va_arg.3 \ stdarg.3 va_copy.3 \ stdarg.3 va_end.3 \ Modified: head/share/man/man3/arb.3 ============================================================================== --- head/share/man/man3/arb.3 Mon Oct 7 18:55:40 2019 (r353282) +++ head/share/man/man3/arb.3 Mon Oct 7 19:05:05 2019 (r353283) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 28, 2019 +.Dd October 2, 2019 .Dt ARB 3 .Os .Sh NAME @@ -94,7 +94,8 @@ .Nm ARB_INIT , .Nm ARB_INSERT , .Nm ARB_REMOVE , -.Nm ARB_REINSERT +.Nm ARB_REINSERT , +.Nm ARB_RESET_TREE .Nd "array-based red-black trees" .Sh SYNOPSIS .In sys/arb.h @@ -179,6 +180,8 @@ .Fn ARB_REMOVE NAME "ARB_HEAD *head" "struct TYPE *elm" .Ft "struct TYPE *" .Fn ARB_REINSERT NAME "ARB_HEAD *head" "struct TYPE *elm" +.Ft void +.Fn ARB_RESET_TREE "ARB_HEAD *head" NAME "int<8|16|32>_t maxnodes" .Sh DESCRIPTION These macros define data structures for and array-based red-black trees. They use a single, continuous chunk of memory, and are useful @@ -475,7 +478,7 @@ returns the pointer to the removed element otherwise t to indicate an error. .Pp The -.Fn RB_REINSERT +.Fn ARB_REINSERT macro updates the position of the element .Fa elm in the tree. @@ -485,6 +488,11 @@ is modified in a way that affects comparison, such as a node's key. This is a lower overhead alternative to removing the element and reinserting it again. +.Pp +The +.Fn ARB_RESET_TREE +macro discards the tree topology. +It does not modify embedded object values or the free list. .Sh SEE ALSO .Xr queue 3 , .Xr tree 3 Added: head/share/man/man3/stats.3 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man3/stats.3 Mon Oct 7 19:05:05 2019 (r353283) @@ -0,0 +1,962 @@ +.\" +.\" Copyright (c) 2016-2018 Netflix, Inc. +.\" 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, +.\" without modification, immediately at the beginning of the file. +.\" 2. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" 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 October 7, 2019 +.Dt STATS 3 +.Os +.Sh NAME +.Nm stats +.Nd statistics gathering +.Sh LIBRARY +.Lb libstats +.Sh SYNOPSIS +.In sys/arb.h +.In sys/qmath.h +.In sys/stats.h +.Ss Stats Blob Template Management Functions +.Ft int +.Fo stats_tpl_alloc +.Fa "const char *name" +.Fa "uint32_t flags" +.Fc +.Ft int +.Fo stats_tpl_fetch_allocid +.Fa "const char *name" +.Fa "uint32_t hash" +.Fc +.Ft int +.Fo stats_tpl_fetch +.Fa "int tpl_id" +.Fa "struct statsblob_tpl **tpl" +.Fc +.Ft int +.Fo stats_tpl_id2name +.Fa "uint32_t tpl_id" +.Fa "char *buf" +.Fa "size_t len" +.Fc +.Ft int +.Fo stats_tpl_sample_rates +.Fa "SYSCTL_HANDLER_ARGS" +.Fc +.Ft int +.Fo stats_tpl_sample_rollthedice +.Fa "struct stats_tpl_sample_rate *rates" +.Fa "int nrates" +.Fa "void *seed_bytes" +.Fa "size_t seed_len" +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_SUM +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_MAX +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_MIN +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_CRHIST<32|64>_LIN +.Fa "lb" +.Fa "ub" +.Fa "stepinc" +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_CRHIST<32|64>_EXP +.Fa "lb" +.Fa "ub" +.Fa "stepbase" +.Fa "stepexp" +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo "STATS_VSS_CRHIST<32|64>_LINEXP" +.Fa "lb" +.Fa "ub" +.Fa "nlinsteps" +.Fa "stepbase" +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo "STATS_VSS_CRHIST<32|64>_USR" +.Fa Sy "HBKTS" Ns Pq Sy "CRBKT" Ns ( Em "lb" ) , "..." Pc , +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo "STATS_VSS_DRHIST<32|64>_USR" +.Fa Sy "HBKTS" Ns Pq Sy "DRBKT" Ns ( Em "lb" , "ub" ) , "..." Pc , +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo "STATS_VSS_DVHIST<32|64>_USR" +.Fa Sy "HBKTS" Ns Pq Sy "DVBKT" Ns ( Em "val" ) , "..." Pc , +.Fa "vsdflags" +.Fc +.Ft struct voistatspec +.Fo STATS_VSS_TDGSTCLUST<32|64> +.Fa "nctroids" +.Fa "prec" +.Fc +.Ft int +.Fo stats_tpl_add_voistats +.Fa "uint32_t tpl_id" +.Fa "int32_t voi_id" +.Fa "const char *voi_name" +.Fa "enum vsd_dtype voi_dtype" +.Fa "uint32_t nvss" +.Fa "struct voistatspec *vss" +.Fa "uint32_t flags" +.Fc +.Ss Stats Blob Data Gathering Functions +.Ft int +.Fo stats_voi_update__ +.Fa "struct statsblob *sb" +.Fa "int32_t voi_id" +.Fa " voival" +.Fc +.Ss Stats Blob Utility Functions +.Ft struct statsblob * +.Fo stats_blob_alloc +.Fa "uint32_t tpl_id" +.Fa "uint32_t flags" +.Fc +.Ft int +.Fo stats_blob_init +.Fa "struct statsblob *sb" +.Fa "uint32_t tpl_id" +.Fa "uint32_t flags" +.Fc +.Ft int +.Fo stats_blob_clone +.Fa "struct statsblob **dst" +.Fa "size_t dstmaxsz" +.Fa "struct statsblob *src" +.Fa "uint32_t flags" +.Fc +.Ft void +.Fo stats_blob_destroy +.Fa "struct statsblob *sb" +.Fc +.Ft int +.Fo stats_voistat_fetch_dptr +.Fa "struct statsblob *sb" +.Fa "int32_t voi_id" +.Fa "enum voi_stype stype" +.Fa "enum vsd_dtype *retdtype" +.Fa "struct voistatdata **retvsd" +.Fa "size_t *retvsdsz" +.Fc +.Ft int +.Fo stats_voistat_fetch_ +.Fa "struct statsblob *sb" +.Fa "int32_t voi_id" +.Fa "enum voi_stype stype" +.Fa " *ret" +.Fc +.Ft int +.Fo stats_blob_snapshot +.Fa "struct statsblob **dst" +.Fa "size_t dstmaxsz" +.Fa "struct statsblob *src" +.Fa "uint32_t flags" +.Fc +.Ft int +.Fo stats_blob_tostr +.Fa "struct statsblob *sb" +.Fa "struct sbuf *buf" +.Fa "enum sb_str_fmt fmt" +.Fa "uint32_t flags" +.Fc +.Ft int +.Fo stats_voistatdata_tostr +.Fa "const struct voistatdata *vsd" +.Fa "enum vsd_dtype dtype" +.Fa "enum sb_str_fmt fmt" +.Fa "struct sbuf *buf" +.Fa "int objdump" +.Fc +.Ft typedef int +.Fn "\*(lp*stats_blob_visitcb_t\*(rp" "struct sb_visit *sbv" "void *usrctx" +.Ft int +.Fo stats_blob_visit +.Fa "struct statsblob *sb" +.Fa "stats_blob_visitcb_t func" +.Fa "void *usrctx" +.Fc +.Sh DESCRIPTION +The +.Nm +framework facilitates real-time kernel and user space statistics gathering. +The framework is built around the +.Dq statsblob , +an object embedded within a contiguous memory allocation that is mostly opaque +to consumers and stores all required state. +A +.Dq statsblob +object can itself be embedded within other objects either directly or indirectly +using a pointer. +.Pp +Objects or subsystems for which statistics are to be gathered are initialized +from a template +.Dq statsblob , +which acts as the blueprint for an arbitrary set of +Variables Of Interest (VOIs) and their associated statistics. +Each template defines a schema plus associated metadata, which are kept separate +to minimize the memory footprint of blobs. +.Pp +Data gathering hook functions added at appropriate locations within the code +base of interest feed VOI data into the framework for processing. +.Pp +Each +.Dq statsblob , +consists of a +.Vt struct statsblob +header and opaque internal blob structure per the following diagram: +.Bd -literal -offset indent +--------------------------------------------------------- +| struct | uint8_t | +| statsblob | opaque[] | +--------------------------------------------------------- +.Ed +.Pp +The publicly visible 8-byte header is defined as: +.Bd -literal -offset indent +struct statsblob { + uint8_t abi; + uint8_t endian; + uint16_t flags; + uint16_t maxsz; + uint16_t cursz; + uint8_t opaque[]; +}; +.Ed +.Pp +.Va abi +specifies which API version the blob's +.Va opaque +internals conform to +.Pq Dv STATS_ABI_V1 is the only version currently defined . +.Va endian +specifies the endianness of the blob's fields +.Po +.Dv SB_LE +for little endian, +.Dv SB_BE +for big endian, or +.Dv SB_UE +for unknown endianness +.Pc . +.Va cursz +specifies the size of the blob, while +.Va maxsz +specifies the size of the underlying memory allocation in which the +blob is embedded. +Both +.Va cursz +and +.Va maxsz +default to units of bytes, unless a flag is set in +.Va flags +that dictates otherwise. +.Pp +Templates are constructed by associating arbitrary VOI IDs with a set of +statistics, where each statistic is specified using a +.Vt struct voistatspec +per the definition below: +.Bd -literal -offset indent +struct voistatspec { + vss_hlpr_fn hlpr; + struct vss_hlpr_info *hlprinfo; + struct voistatdata *iv; + size_t vsdsz; + uint32_t flags; + enum vsd_dtype vs_dtype : 8; + enum voi_stype stype : 8; +}; +.Ed +.Pp +It is generally expected that consumers will not work with +.Vt struct voistatspec +directly, and instead use the +.Fn STATS_VSS_* +helper macros. +.Pp +The +.Nm +framework offers the following statistics for association with VOIs: +.Bl -tag -width ".Dv VS_STYPE_TDGST" +.It Dv VS_STYPE_SUM +The sum of VOI values. +.It Dv VS_STYPE_MAX +The maximum VOI value. +.It Dv VS_STYPE_MIN +The minimum VOI value. +.It Dv VS_STYPE_HIST +A static bucket histogram of VOI values, including a count of +.Dq out-of-band/bucket Dc +values which did not match any bucket. +Histograms can be specified as +.Dq Em C Ns ontinuous Em R Ns ange Dc +.Pq CRHIST Pc , +.Dq Em D Ns iscrete Em R Ns ange Dc +.Pq DRHIST Pc +or +.Dq Em D Ns iscrete Em V Ns alue Dc +.Pq DVHIST Pc , +with 32 or 64 bit bucket counters, depending on the VOI semantics. +.It Dv VS_STYPE_TDGST +A dynamic bucket histogram of VOI values based on the t-digest method +.Po refer to the t-digest paper in the +.Sx SEE ALSO +section below +.Pc . +.El +.Pp +A +.Dq visitor software design pattern Ns +-like scheme is employed to facilitate iterating over a blob's data without +concern for the blob's structure. +The data provided to visitor callback functions is encapsulated in +.Vt struct sb_visit +per the definition below: +.Bd -literal -offset indent +struct sb_visit { + struct voistatdata *vs_data; + uint32_t tplhash; + uint32_t flags; + int16_t voi_id; + int16_t vs_dsz; + enum vsd_dtype voi_dtype : 8; + enum vsd_dtype vs_dtype : 8; + int8_t vs_stype; + uint16_t vs_errs; +}; +.Ed +.Pp +The +.Fn stats_tpl_sample_rates +and +.Fn stats_tpl_sample_rollthedice +functions utilize +.Vt struct stats_tpl_sample_rate +to encapsulate per-template sample rate information per the definition below: +.Bd -literal -offset indent +struct stats_tpl_sample_rate { + int32_t tpl_slot_id; + uint32_t tpl_sample_pct; +}; +.Ed +.Pp +The +.Va tpl_slot_id +member holds the template's slot ID obtained from +.Fn stats_tpl_alloc +or +.Fn stats_tpl_fetch_allocid . +The +.Va tpl_sample_pct +member holds the template's sample rate as an integer percentage in the range +[0,100]. +.Pp +The +.Vt stats_tpl_sr_cb_t +conformant function pointer that is required as the +.Fa arg1 +of +.Fn stats_tpl_sample_rates +is defined as: +.Bd -literal -offset indent +enum stats_tpl_sr_cb_action { + TPL_SR_UNLOCKED_GET, + TPL_SR_RLOCKED_GET, + TPL_SR_RUNLOCK, + TPL_SR_PUT +}; +typedef int (*stats_tpl_sr_cb_t)(enum stats_tpl_sr_cb_action action, + struct stats_tpl_sample_rate **rates, int *nrates, void *ctx); +.Ed +.Pp +It is required that a conformant function: +.Bl -dash +.It +Return an appropriate +.Xr errno 2 +on error, otherwise 0. +.It +When called with +.Qq action == TPL_SR_*_GET , +return the subsystem's rates list ptr and count, locked or unlocked as +requested. +.It +When called with +.Qq action == TPL_SR_RUNLOCK , +unlock the subsystem's rates list ptr and count. +Pair with a prior +.Qq action == TPL_SR_RLOCKED_GET +call. +.It +When called with +.Qq action == TPL_SR_PUT , +update the subsystem's rates list ptr and count to the sysctl processed values +and return the inactive list details in +.Fa rates +and +.Fa nrates +for garbage collection by +.Fn stats_tpl_sample_rates . +.El +.Pp +Where templates need to be referenced via textual means, for example via a MIB +variable, the following string based template spec formats can be used: +.Bl -enum +.It +.Qq Qc Ns +: +.Ns , for example +.Qq TCP_DEFAULT Qc Ns +:1731235399 +.It +.Qq Qc +.Ns , for example +.Qq TCP_DEFAULT Qc +.It +: +.Ns , for example +:1731235399 +.El +.Pp +The first form is the normative spec format generated by the framework, while +the second and third forms are convenience formats primarily for user input. +The use of inverted commas around the template name is optional. +.Ss MIB Variables +The in-kernel +.Nm +framework exposes the following framework-specific variables in the +.Va kern.stats +branch of the +.Xr sysctl 3 +MIB. +.Bl -tag -width "templates" +.It templates +Read-only CSV list of registered templates in normative template spec form. +.El +.Ss Template Management Functions +The +.Fn stats_tpl_alloc +function allocates a new template with the specified unique name and returns its +runtime-stable template slot ID for use with other API functions. +The +.Fa flags +argument is currently unused. +.Pp +The +.Fn stats_tpl_fetch_allocid +function returns the runtime-stable template slot ID of any registered template +matching the specified name and hash. +.Pp +The +.Fn stats_tpl_fetch +function returns the pointer to the registered template object at the specified +template slot ID. +.Pp +The +.Fn stats_tpl_id2name +function returns the name of the registered template object at the specified +template slot ID. +.Pp +The +.Fn stats_tpl_sample_rates +function provides a generic handler for template sample rates management and +reporting via +.Xr sysctl 3 +MIB variables. +Subsystems can use this function to create a subsystem-specific +.Xr SYSCTL_PROC 9 +MIB variable that manages and reports subsystem-specific template sampling +rates. +Subsystems must supply a +.Vt stats_tpl_sr_cb_t +conformant function pointer as the sysctl's +.Fa arg1 , +which is a callback used to interact with the subsystem's stats template sample +rates list. +Subsystems can optionally specify the sysctl's +.Fa arg2 +as non-zero, which causes a zero-initialized allocation of arg2-sized contextual +memory to be heap-allocated and passed in to all subsystem callbacks made during +the operation of +.Fn stats_tpl_sample_rates . +.Pp +The +.Fn stats_tpl_sample_rollthedice +function makes a weighted random template selection from the supplied array of +template sampling rates. +The cumulative percentage of all sampling rates should not exceed 100. +If no seed is supplied, a PRNG is used to generate a true random number so that +every selection is independent. +If a seed is supplied, selection will be made randomly across different seeds, but +deterministically given the same seed. +.Pp +The +.Fn stats_tpl_add_voistats +function is used to add a VOI and associated set of statistics to the registered +template object at the specified template slot ID. +The set of statistics is passed as an array of +.Vt struct voistatspec +which can be initialized using the +.Fn STATS_VSS_* +helper macros or manually for non-standard use cases. +For static +.Fa vss +arrays, the +.Fa nvss +count of array elements can be determined by passing +.Fa vss +to the +.Fn NVSS +macro. +The +.Dv SB_VOI_RELUPDATE +flag can be passed to configure the VOI for use with +.Fn stats_voi_update_rel_ , +which entails maintaining an extra 8 bytes of state in the blob at each update. +.Ss Data Gathering Functions +The +.Fn stats_voi_update_abs_ +and +.Fn stats_voi_update_rel_ +functions both update all the statistics associated with the VOI identified by +.Fa voi_id . +The +.Dq abs +call uses +.Fa voival +as an absolute value, whereas the +.Dq rel +call uses +.Fa voival +as a value relative to that of the previous update function call, by adding it +to the previous value and using the result for the update. +Relative updates are only possible for VOIs that were added to the template with +the +.Dv SB_VOI_RELUPDATE +flag specified to +.Fn stats_tpl_add_voistats . +.Ss Utility Functions +The +.Fn stats_blob_alloc +function allocates and initializes a new blob based on the registered template +object at the specified template slot ID. +.Pp +The +.Fn stats_blob_init +function initializes a new blob in an existing memory allocation based on the +registered template object at the specified template slot ID. +.Pp +The +.Fn stats_blob_clone +function duplicates the +.Fa src +blob into +.Fa dst , +leaving only the +.Va maxsz +field of +.Fa dst +untouched. +The +.Dv SB_CLONE_ALLOCDST +flag can be passed to instruct the function to allocate a new blob of +appropriate size into which to clone +.Fa src , +storing the new pointer in +.Fa *dst . +The +.Dv SB_CLONE_USRDSTNOFAULT +or +.Dv SB_CLONE_USRDST +flags can be set to respectively signal that +.Xr copyout_nofault 9 +or +.Xr copyout 9 +should be used because +.Fa *dst +is a user space address. +.Pp +The +.Fn stats_blob_snapshot +function calls +.Fn stats_blob_clone +to obtain a copy of +.Fa src +and then performs any additional functions required to produce a coherent +blob snapshot. +The flags interpreted by +.Fn stats_blob_clone +also apply to +.Fn stats_blob_snapshot . +Additionally, the +.Dv SB_CLONE_RSTSRC +flag can be used to effect a reset of the +.Fa src +blob's statistics after a snapshot is successfully taken. +.Pp +The +.Fn stats_blob_destroy +function destroys a blob previously created with +.Fn stats_blob_alloc , +.Fn stats_blob_clone +or +.Fn stats_blob_snapshot . +.Pp +The +.Fn stats_blob_visit +function allows the caller to iterate over the contents of a blob. +The callback function +.Fa func +is called for every VOI and statistic in the blob, passing a +.Vt struct sb_visit +and the user context argument +.Fa usrctx +to the callback function. +The +.Fa sbv +passed to the callback function may have one or more of the following flags set +in the +.Va flags +struct member to provide useful metadata about the iteration: +.Dv SB_IT_FIRST_CB , +.Dv SB_IT_LAST_CB , +.Dv SB_IT_FIRST_VOI , +.Dv SB_IT_LAST_VOI , +.Dv SB_IT_FIRST_VOISTAT , +.Dv SB_IT_LAST_VOISTAT , +.Dv SB_IT_NULLVOI +and +.Dv SB_IT_NULLVOISTAT . +Returning a non-zero value from the callback function terminates the iteration. +.Pp +The +.Fn stats_blob_tostr +renders a string representation of a blob into the +.Xr sbuf 9 +.Fa buf . +Currently supported render formats are +.Dv SB_STRFMT_FREEFORM +and +.Dv SB_STRFMT_JSON . +The +.Dv SB_TOSTR_OBJDUMP +flag can be passed to render version specific opaque implementation detail for +debugging or string-to-binary blob reconstruction purposes. +The +.Dv SB_TOSTR_META +flag can be passed to render template metadata into the string representation, +using the blob's template hash to lookup the corresponding template. +.Pp +The +.Fn stats_voistatdata_tostr +renders a string representation of an individual statistic's data into the +.Xr sbuf 9 +.Fa buf . +The same render formats supported by the +.Fn stats_blob_tostr +function can be specified, and the +.Fa objdump +boolean has the same meaning as the +.Dv SB_TOSTR_OBJDUMP +flag. +.Pp +The +.Fn stats_voistat_fetch_dptr +function returns an internal blob pointer to the specified +.Fa stype +statistic data for the VOI +.Fa voi_id . +The +.Fn stats_voistat_fetch_ +functions are convenience wrappers around +.Fn stats_voistat_fetch_dptr +to perform the extraction for simple data types. +.Sh IMPLEMENTATION NOTES +The following notes apply to STATS_ABI_V1 format statsblobs. +.Ss Space-Time Complexity +Blobs are laid out as three distinct memory regions following the header: +.Bd -literal -offset indent +------------------------------------------------------ +| struct | struct | struct | struct | +| statsblobv1 | voi [] | voistat [] | voistatdata [] | +------------------------------------------------------ +.Ed +.Pp +Blobs store VOI and statistic blob state +.Po +8 bytes for +.Vt struct voi +and 8 bytes for +.Vt struct voistat +respectively +.Pc +in sparse arrays, using the +.Fa voi_id +and +.Vt enum voi_stype +as array indices. +This allows O(1) access to any voi/voistat pair in the blob, at the expense of +8 bytes of wasted memory per vacant slot for templates which do not specify +contiguously numbered VOIs and/or statistic types. +Data storage for statistics is only allocated for non-vacant slot pairs. +.Pp +To provide a concrete example, a blob with the following specification: +.Bl -dash +.It +Two VOIs; ID 0 and 2; added to the template in that order +.It +VOI 0 is of data type +.Vt int64_t , +is configured with +.Dv SB_VOI_RELUPDATE +to enable support for relative updates using +.Fn stats_voi_update_rel_ , +and has a +.Dv VS_STYPE_MIN +statistic associated with it. +.It +VOI 2 is of data type +.Vt uint32_t +with +.Dv VS_STYPE_SUM +and +.Dv VS_STYPE_MAX +statistics associated with it. +.El +.Pp +would have the following memory layout: +.Bd -literal +-------------------------------------- +| header | struct statsblobv1, 32 bytes +|------------------------------------| +| voi[0] | struct voi, 8 bytes +| voi[1] (vacant) | struct voi, 8 bytes +| voi[2] | struct voi, 8 bytes +|------------------------------------| +| voi[2]voistat[VOISTATE] (vacant) | struct voistat, 8 bytes +| voi[2]voistat[SUM] | struct voistat, 8 bytes +| voi[2]voistat[MAX] | struct voistat, 8 bytes +| voi[0]voistat[VOISTATE] | struct voistat, 8 bytes +| voi[0]voistat[SUM] (vacant) | struct voistat, 8 bytes +| voi[0]voistat[MAX] (vacant) | struct voistat, 8 bytes +| voi[0]voistat[MIN] | struct voistat, 8 bytes +|------------------------------------| +| voi[2]voistat[SUM]voistatdata | struct voistatdata_int32, 4 bytes +| voi[2]voistat[MAX]voistatdata | struct voistatdata_int32, 4 bytes +| voi[0]voistat[VOISTATE]voistatdata | struct voistatdata_numeric, 8 bytes +| voi[0]voistat[MIN]voistatdata | struct voistatdata_int64, 8 bytes +-------------------------------------- + TOTAL 136 bytes +.Ed +.Pp +When rendered to string format using +.Fn stats_blob_tostr , +the +.Dv SB_STRFMT_FREEFORM +.Fa fmt +and the +.Dv SB_TOSTR_OBJDUMP +flag, the rendered output is: +.Bd -literal +struct statsblobv1@0x8016250a0, abi=1, endian=1, maxsz=136, cursz=136, \\ + created=6294158585626144, lastrst=6294158585626144, flags=0x0000, \\ + stats_off=56, statsdata_off=112, tplhash=2994056564 + vois[0]: id=0, name="", flags=0x0001, dtype=INT_S64, voistatmaxid=3, \\ + stats_off=80 + vois[0]stat[0]: stype=VOISTATE, flags=0x0000, dtype=VOISTATE, \\ + dsz=8, data_off=120 + voistatdata: prev=0 + vois[0]stat[1]: stype=-1 + vois[0]stat[2]: stype=-1 + vois[0]stat[3]: stype=MIN, flags=0x0000, dtype=INT_S64, \\ + dsz=8, data_off=128 + voistatdata: 9223372036854775807 + vois[1]: id=-1 + vois[2]: id=2, name="", flags=0x0000, dtype=INT_U32, voistatmaxid=2, \\ + stats_off=56 + vois[2]stat[0]: stype=-1 + vois[2]stat[1]: stype=SUM, flags=0x0000, dtype=INT_U32, dsz=4, \\ + data_off=112 + voistatdata: 0 + vois[2]stat[2]: stype=MAX, flags=0x0000, dtype=INT_U32, dsz=4, \\ + data_off=116 + voistatdata: 0 +.Ed +.Pp +Note: The +.Qq \e +present in the rendered output above indicates a manual line break inserted to +keep the man page within 80 columns and is not part of the actual output. +.Ss Locking +The +.Nm +framework does not provide any concurrency protection at the individual blob +level, instead requiring that consumers guarantee mutual exclusion when calling +API functions that reference a non-template blob. +.Pp +The list of templates is protected with a +.Xr rwlock 9 +in-kernel, and +.Xr pthread 3 +rw lock in user space to support concurrency between template management and +blob initialization operations. +.Sh RETURN VALUES +.Fn stats_tpl_alloc +returns a runtime-stable template slot ID on success, or a negative errno on +failure. +-EINVAL is returned if any problems are detected with the arguments. +-EEXIST is returned if an existing template is registered with the same name. +-ENOMEM is returned if a required memory allocation fails. +.Pp +.Fn stats_tpl_fetch_allocid +returns a runtime-stable template slot ID, or negative errno on failure. +-ESRCH is returned if no registered template matches the specified name and/or +hash. +.Pp +.Fn stats_tpl_fetch +returns 0 on success, or ENOENT if an invalid +.Fa tpl_id +is specified. +.Pp +.Fn stats_tpl_id2name +returns 0 on success, or an errno on failure. +EOVERFLOW is returned if the length of +.Fa buf +specified by +.Fa len +is too short to hold the template's name. +ENOENT is returned if an invalid +.Fa tpl_id +is specified. +.Pp +.Fn stats_tpl_sample_rollthedice +returns a valid template slot id selected from +.Fa rates +or -1 if a NULL selection was made, that is no stats collection this roll. +.Pp +.Fn stats_tpl_add_voistats +return 0 on success, or an errno on failure. +EINVAL is returned if any problems are detected with the arguments. +EFBIG is returned if the resulting blob would have exceeded the maximum size. +EOPNOTSUPP is returned if an attempt is made to add more VOI stats to a *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Oct 7 19:24:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46626137A1C; Mon, 7 Oct 2019 19:24:51 +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 46n9R715fzz4Scc; Mon, 7 Oct 2019 19:24:51 +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 08D181B548; Mon, 7 Oct 2019 19:24:51 +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 x97JOoTQ051955; Mon, 7 Oct 2019 19:24:50 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97JOocc051953; Mon, 7 Oct 2019 19:24:50 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910071924.x97JOocc051953@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 19:24:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353284 - head/tests/sys/cddl/zfs/tests/cli_root/zpool_get X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/cli_root/zpool_get X-SVN-Commit-Revision: 353284 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 19:24:51 -0000 Author: asomers Date: Mon Oct 7 19:24:50 2019 New Revision: 353284 URL: https://svnweb.freebsd.org/changeset/base/353284 Log: ZFS: fix the zpool_get_002_pos test ZFS has grown some additional properties that hadn't been added to the config file yet. While I'm here, improve the error message, and remove a superfluous command. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get.cfg head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get_002_pos.ksh Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get.cfg ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get.cfg Mon Oct 7 19:05:05 2019 (r353283) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get.cfg Mon Oct 7 19:24:50 2019 (r353284) @@ -54,6 +54,7 @@ typeset -a properties=( "fragmentation" "leaked" "bootsize" + "checkpoint" "feature@async_destroy" "feature@empty_bpobj" "feature@lz4_compress" @@ -66,11 +67,14 @@ typeset -a properties=( "feature@bookmarks" "feature@filesystem_limits" "feature@large_blocks" + "feature@large_dnode" "feature@sha512" "feature@skein" # "feature@edonr" Edonr is not yet implemented on FreeBSD "feature@device_removal" "feature@obsolete_counts" + "feature@zpool_checkpoint" + "feature@spacemap_v2" ) export DISK=${DISKS%% *} Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get_002_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get_002_pos.ksh Mon Oct 7 19:05:05 2019 (r353283) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_get/zpool_get_002_pos.ksh Mon Oct 7 19:24:50 2019 (r353284) @@ -96,10 +96,10 @@ done # increment the counter to include the header line i=$(( $i + 1 )) -COUNT=$($WC $TMPDIR/values.${TESTCASE_ID} | $AWK '{print $1}') +COUNT=$($WC $TMPDIR/values.${TESTCASE_ID}) if [ $i -ne $COUNT ] then - log_fail "Length of output $COUNT was not equal to number of props + 1." + log_fail "Length of output $COUNT was not equal to number of props + 1 ($i)." fi From owner-svn-src-head@freebsd.org Mon Oct 7 19:48:19 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8AAC01380C2; Mon, 7 Oct 2019 19:48:19 +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 46n9yC35dyz4TsJ; Mon, 7 Oct 2019 19:48:19 +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 4EF541B8E9; Mon, 7 Oct 2019 19:48:19 +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 x97JmJaG063824; Mon, 7 Oct 2019 19:48:19 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97JmJwn063823; Mon, 7 Oct 2019 19:48:19 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910071948.x97JmJwn063823@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 19:48:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353285 - head/tests/sys/cddl/zfs/tests/cli_root/zdb X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/cli_root/zdb X-SVN-Commit-Revision: 353285 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 19:48:19 -0000 Author: asomers Date: Mon Oct 7 19:48:18 2019 New Revision: 353285 URL: https://svnweb.freebsd.org/changeset/base/353285 Log: zfs: fix the zdb_001_neg test The test needed to be updated for r331701 (MFV illumos 8671400), which added a "-k" option. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/cli_root/zdb/zdb_001_neg.ksh Modified: head/tests/sys/cddl/zfs/tests/cli_root/zdb/zdb_001_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zdb/zdb_001_neg.ksh Mon Oct 7 19:24:50 2019 (r353284) +++ head/tests/sys/cddl/zfs/tests/cli_root/zdb/zdb_001_neg.ksh Mon Oct 7 19:48:18 2019 (r353285) @@ -69,7 +69,7 @@ set -A args "create" "add" "destroy" "import fakepool" "add mirror fakepool" "add raidz fakepool" \ "add raidz1 fakepool" "add raidz2 fakepool" \ "setvprop" "blah blah" "-%" "--?" "-*" "-=" \ - "-a" "-f" "-g" "-h" "-j" "-k" "-m" "-n" "-p" "-p /tmp" \ + "-a" "-f" "-g" "-h" "-j" "-m" "-n" "-p" "-p /tmp" \ "-r" "-t" "-w" "-x" "-y" "-z" \ "-D" "-E" "-G" "-H" "-I" "-J" "-K" "-M" \ "-N" "-Q" "-T" "-W" From owner-svn-src-head@freebsd.org Mon Oct 7 19:50:23 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 508F0138171; Mon, 7 Oct 2019 19:50:23 +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 46nB0b1HdJz4V36; Mon, 7 Oct 2019 19:50:23 +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 0B2CE1B8ED; Mon, 7 Oct 2019 19:50:23 +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 x97JoMxS064005; Mon, 7 Oct 2019 19:50:22 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97JoMKf064004; Mon, 7 Oct 2019 19:50:22 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910071950.x97JoMKf064004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 19:50:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353286 - head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Commit-Revision: 353286 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 19:50:23 -0000 Author: asomers Date: Mon Oct 7 19:50:22 2019 New Revision: 353286 URL: https://svnweb.freebsd.org/changeset/base/353286 Log: zfs: skip the zfsd tests if zfsd is not running MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D21878 Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_test.sh Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/zfsd/zfsd_test.sh Mon Oct 7 19:48:18 2019 (r353285) +++ head/tests/sys/cddl/zfs/tests/zfsd/zfsd_test.sh Mon Oct 7 19:50:22 2019 (r353286) @@ -39,6 +39,7 @@ zfsd_fault_001_pos_body() . $(atf_get_srcdir)/zfsd.cfg verify_disk_count "$DISKS" 2 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_fault_001_pos.ksh if [[ $? != 0 ]]; then @@ -68,6 +69,7 @@ zfsd_degrade_001_pos_body() . $(atf_get_srcdir)/zfsd.cfg verify_disk_count "$DISKS" 2 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_degrade_001_pos.ksh if [[ $? != 0 ]]; then @@ -97,6 +99,7 @@ zfsd_degrade_002_pos_body() . $(atf_get_srcdir)/zfsd.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_degrade_002_pos.ksh if [[ $? != 0 ]]; then @@ -126,6 +129,7 @@ zfsd_hotspare_001_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.kshlib . $(atf_get_srcdir)/../hotspare/hotspare.cfg + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_001_pos.ksh if [[ $? != 0 ]]; then @@ -155,6 +159,7 @@ zfsd_hotspare_002_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.kshlib . $(atf_get_srcdir)/../hotspare/hotspare.cfg + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_002_pos.ksh if [[ $? != 0 ]]; then @@ -186,6 +191,7 @@ zfsd_hotspare_003_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_003_pos.ksh if [[ $? != 0 ]]; then @@ -216,6 +222,7 @@ zfsd_hotspare_004_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_004_pos.ksh if [[ $? != 0 ]]; then @@ -245,6 +252,7 @@ zfsd_hotspare_005_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.kshlib . $(atf_get_srcdir)/../hotspare/hotspare.cfg + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_005_pos.ksh if [[ $? != 0 ]]; then @@ -274,6 +282,7 @@ zfsd_hotspare_006_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.kshlib . $(atf_get_srcdir)/../hotspare/hotspare.cfg + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_006_pos.ksh if [[ $? != 0 ]]; then @@ -304,6 +313,7 @@ zfsd_hotspare_007_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_hotspare_007_pos.ksh if [[ $? != 0 ]]; then @@ -394,6 +404,7 @@ zfsd_autoreplace_002_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_autoreplace_002_pos.ksh if [[ $? != 0 ]]; then @@ -424,6 +435,7 @@ zfsd_autoreplace_003_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/hotspare_setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_autoreplace_003_pos.ksh if [[ $? != 0 ]]; then @@ -452,6 +464,7 @@ zfsd_replace_001_pos_body() . $(atf_get_srcdir)/zfsd.cfg verify_disk_count "$DISKS" 3 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_replace_001_pos.ksh if [[ $? != 0 ]]; then @@ -481,6 +494,7 @@ zfsd_replace_002_pos_body() . $(atf_get_srcdir)/zfsd.cfg verify_disk_count "$DISKS" 3 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_replace_002_pos.ksh if [[ $? != 0 ]]; then @@ -508,6 +522,7 @@ zfsd_replace_003_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.kshlib . $(atf_get_srcdir)/../hotspare/hotspare.cfg + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_replace_003_pos.ksh if [[ $? != 0 ]]; then @@ -537,6 +552,7 @@ zfsd_import_001_pos_body() . $(atf_get_srcdir)/../hotspare/hotspare.cfg verify_disk_count "$DISKS" 5 + verify_zfsd_running ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zfsd_import_001_pos.ksh || atf_fail "Testcase failed" if [[ $? != 0 ]]; then @@ -588,4 +604,10 @@ save_artifacts() cp -a /var/log/zfsd.log* $TC_ARTIFACTS_DIR bzip2 $TC_ARTIFACTS_DIR/zfsd.log fi +} + +verify_zfsd_running() +{ + service zfsd onestatus || \ + atf_skip "zfsd(8) must be enabled and running for this test" } From owner-svn-src-head@freebsd.org Mon Oct 7 20:13:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 477451386D2; Mon, 7 Oct 2019 20:13:52 +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 46nBWh1fQsz4WFp; Mon, 7 Oct 2019 20:13:52 +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 026171BE54; Mon, 7 Oct 2019 20:13:52 +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 x97KDpeK081555; Mon, 7 Oct 2019 20:13:51 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KDoeg081546; Mon, 7 Oct 2019 20:13:50 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910072013.x97KDoeg081546@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 20:13:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353287 - head/tests/sys/cddl/zfs/tests/delegate X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/delegate X-SVN-Commit-Revision: 353287 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:13:52 -0000 Author: asomers Date: Mon Oct 7 20:13:49 2019 New Revision: 353287 URL: https://svnweb.freebsd.org/changeset/base/353287 Log: ZFS: fix the delegate tests These tests have never worked correctly * Replace runwattr with sudo * Fix a scoping bug with the "dtst" variable * Cleanup user properties created during tests * Eliminate the checks for refreservation and send support. They will always be supported. * Fix verify_fs_snapshot. It seemed to assume that permissions would not yet be delegated, but that's not how it's actually used. * Combine verify_fs_promote with verify_vol_promote * Remove some useless sleeps * Fix backwards condition in verify_vol_volsize * Remove some redundant cleanup steps in the tests. cleanup.ksh will handle everything. * Disable some parts of the tests that FreeBSD doesn't support: * Creating snapshots with mkdir * devices * shareisci * sharenfs * xattr * zoned The sharenfs parts could probably be reenabled with more work to remove the Solarisms. MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D21898 Modified: head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_001_pos.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_002_pos.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_003_pos.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_007_pos.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_010_pos.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_012_neg.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_test.sh head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_007_neg.ksh head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_test.sh Modified: head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib Mon Oct 7 20:13:49 2019 (r353287) @@ -159,11 +159,9 @@ function user_run { typeset user=$1 typeset group=$($GROUPS $user) - shift - eval \$RUNWATTR -u \$user -g \$group \"$@\" > /dev/null 2>&1 - return $? + sudo -u $user -g $group $@ } function common_perm @@ -251,7 +249,7 @@ function check_fs_perm ret=$? ;; promote) - verify_fs_promote $user $perm $fs + verify_promote $user $perm $fs ret=$? ;; canmount) @@ -336,7 +334,7 @@ function check_vol_perm ret=$? ;; promote) - verify_vol_promote $user $perm $vol + verify_promote $user $perm $vol ret=$? ;; volsize) @@ -358,6 +356,8 @@ function check_vol_perm function setup_unallow_testenv { + typeset dtst + log_must restore_root_datasets log_must $ZFS create $SUBFS @@ -403,8 +403,9 @@ function verify_send typeset bak_user=$TMPDIR/bak.$user.$stamp typeset bak_root=$TMPDIR/bak.root.$stamp - user_run $user eval "$ZFS send $snap > $bak_user" + user_run $user $ZFS send $snap > $bak_user log_must eval "$ZFS send $snap > $bak_root" + log_must $ZFS destroy $snap if [[ $(checksum $bak_user) == $(checksum $bak_root) ]]; then ret=0 @@ -422,6 +423,7 @@ function verify_fs_receive typeset perm=$2 typeset fs=$3 + typeset dtst typeset oldval typeset stamp=${perm}.${user}.$($DATE +'%F-%R:%S') typeset newfs=$fs/newfs.$stamp @@ -444,27 +446,27 @@ function verify_fs_receive log_must eval "$ZFS send $dtstsnap > $bak_root" log_must $ZFS destroy -rf $dtst - user_run $user eval "$ZFS receive $dtst < $bak_root" + user_run $user $ZFS receive $dtst < $bak_root if datasetexists $dtstsnap ; then return 1 fi log_must $ZFS allow $user create $fs - user_run $user eval "$ZFS receive $dtst < $bak_root" + user_run $user $ZFS receive $dtst < $bak_root log_must $ZFS unallow $user create $fs if datasetexists $dtstsnap ; then return 1 fi log_must $ZFS allow $user mount $fs - user_run $user eval "$ZFS receive $dtst < $bak_root" + user_run $user $ZFS receive $dtst < $bak_root log_must $ZFS unallow $user mount $fs if datasetexists $dtstsnap ; then return 1 fi log_must $ZFS allow $user mount,create $fs - user_run $user eval "$ZFS receive $dtst < $bak_root" + user_run $user $ZFS receive $dtst < $bak_root log_must $ZFS unallow $user mount,create $fs if ! datasetexists $dtstsnap ; then return 1 @@ -500,6 +502,7 @@ function verify_userprop if [[ $stamp != $(get_prop "$user:ts" $dtst) ]]; then return 1 fi + log_must $ZFS inherit "$user:ts" $dtst return 0 } @@ -581,7 +584,6 @@ function verify_fs_create typeset stamp=${perm}.${user}.$($DATE +'%F-%R:%S') typeset newfs=$fs/nfs.$stamp typeset newvol=$fs/nvol.$stamp - typeset check_refrev=false user_run $user $ZFS create $newfs if datasetexists $newfs ; then @@ -594,9 +596,6 @@ function verify_fs_create if ! datasetexists $newfs ; then return 1 fi - if support_refrev $newfs; then - check_refrev=true - fi log_must $ZFS destroy $newfs if is_global_zone ; then @@ -635,26 +634,20 @@ function verify_fs_create return 1 fi - if [[ $check_refrev == true ]]; then - log_must $ZFS allow $user refreservation $fs - user_run $user $ZFS create -V 150m $newvol - log_must $ZFS unallow $user refreservation $fs - if datasetexists $newvol ; then - return 1 - fi + log_must $ZFS allow $user refreservation $fs + user_run $user $ZFS create -V 150m $newvol + log_must $ZFS unallow $user refreservation $fs + if datasetexists $newvol ; then + return 1 fi log_must $ZFS allow $user mount $fs log_must $ZFS allow $user reservation $fs - if [[ $check_refrev == true ]]; then - log_must $ZFS allow $user refreservation $fs - fi + log_must $ZFS allow $user refreservation $fs user_run $user $ZFS create -V 150m $newvol log_must $ZFS unallow $user mount $fs log_must $ZFS unallow $user reservation $fs - if [[ $check_refrev == true ]]; then - log_must $ZFS unallow $user refreservation $fs - fi + log_must $ZFS unallow $user refreservation $fs if ! datasetexists $newvol ; then return 1 fi @@ -708,13 +701,6 @@ function verify_fs_snapshot log_must $ZFS umount $fs fi user_run $user $ZFS snapshot $snap - if datasetexists $snap ; then - return 1 - fi - - log_must $ZFS allow $user mount $fs - user_run $user $ZFS snapshot $snap - log_must $ZFS unallow $user mount $fs if ! datasetexists $snap ; then return 1 fi @@ -724,32 +710,21 @@ function verify_fs_snapshot log_must $ZFS mount $fs fi user_run $user $ZFS snapshot $snap - if datasetexists $snap ; then - return 1 - fi - - log_must $ZFS allow $user mount $fs - user_run $user $ZFS snapshot $snap - log_must $ZFS unallow $user mount $fs if ! datasetexists $snap ; then return 1 fi log_must $ZFS destroy $snap - typeset snapdir=${mntpt}/$(get_snapdir_name)/snap.$stamp - user_run $user $MKDIR $snapdir - if datasetexists $snap ; then - return 1 - fi + # TODO + # FreeBSD does not yet support creating snapshots with mkdir. + # See tests/sys/cddl/zfs/tests/snapshot/snapshot_015_pos.ksh + # typeset snapdir=${mntpt}/$(get_snapdir_name)/snap.$stamp + # user_run $user $MKDIR $snapdir + # if ! datasetexists $snap ; then + # return 1 + # fi + # log_must $ZFS destroy $snap - log_must $ZFS allow $user mount $fs - user_run $user $MKDIR $snapdir - log_must $ZFS unallow $user mount $fs - if ! datasetexists $snap ; then - return 1 - fi - log_must $ZFS destroy $snap - return 0 } @@ -773,23 +748,14 @@ function verify_fs_rollback log_must $TOUCH $mntpt/testfile.$stamp user_run $user $ZFS rollback -R $snap - $SLEEP 10 - if is_global_zone ; then - if [[ $oldval == $(datasetcksum $fs) ]]; then - return 1 - fi - else - # datasetcksum can not be used in local zone - if [[ ! -e $mntpt/testfile.$stamp ]]; then - return 1 - fi + if [[ -e $mntpt/testfile.$stamp ]]; then + return 1 fi # rollback on mounted fs has to be with mount permission log_must $ZFS allow $user mount $fs user_run $user $ZFS rollback -R $snap log_must $ZFS unallow $user mount $fs - $SLEEP 10 if is_global_zone ; then if [[ $oldval != $(datasetcksum $fs) ]]; then return 1 @@ -1083,7 +1049,7 @@ function verify_fs_mountpoint return 0 } -function verify_fs_promote +function verify_promote { typeset user=$1 typeset perm=$2 @@ -1102,13 +1068,14 @@ function verify_fs_promote typeset clone_orig=$(get_prop origin $clone) user_run $user $ZFS promote $fs - # promote should fail if original fs does not have - # promote permission + # promote should fail if original fs does not have mount and promote + # permissions if [[ $fs_orig != $(get_prop origin $fs) || \ $clone_orig != $(get_prop origin $clone) ]]; then return 1 fi + # promote should fail if original fs does not have mount permission log_must $ZFS allow $user promote $clone user_run $user $ZFS promote $fs log_must $ZFS unallow $user promote $clone @@ -1117,6 +1084,7 @@ function verify_fs_promote return 1 fi + # promote should fail if original fs does not have promote permission log_must $ZFS allow $user mount $fs user_run $user $ZFS promote $fs log_must $ZFS unallow $user mount $fs @@ -1503,16 +1471,10 @@ function verify_vol_snapshot typeset snap=$vol@snap.$stamp user_run $user $ZFS snapshot $snap - if datasetexists $snap ; then - return 1 - fi - - log_must $ZFS allow $user mount $vol - user_run $user $ZFS snapshot $snap - log_must $ZFS unallow $user mount $vol if ! datasetexists $snap ; then return 1 fi + log_must $ZFS destroy $snap return 0 } @@ -1535,16 +1497,6 @@ function verify_vol_rollback bs=512 count=1 user_run $user $ZFS rollback -R $snap - $SLEEP 10 - if [[ $oldval == $(datasetcksum $vol) ]]; then - return 1 - fi - - # rollback on volume has to be with mount permission - log_must $ZFS allow $user mount $vol - user_run $user $ZFS rollback -R $snap - $SLEEP 10 - log_must $ZFS unallow $user mount $vol if [[ $oldval != $(datasetcksum $vol) ]]; then return 1 fi @@ -1645,130 +1597,6 @@ function verify_vol_rename return 0 } -function verify_vol_promote -{ - typeset user=$1 - typeset perm=$2 - typeset vol=$3 - - typeset stamp=${perm}.${user}.$($DATE +'%F-%R:%S') - typeset basevol=${vol%/*} - typeset snap=$vol@snap.$stamp - typeset clone=$basevol/cvol.$stamp - - log_must $ZFS snapshot $snap - log_must $ZFS clone $snap $clone - log_must $ZFS promote $clone - - typeset vol_orig=$(get_prop origin $vol) - typeset clone_orig=$(get_prop origin $clone) - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 1 - user_run $user $ZFS promote $vol - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 2 - log_must $ZFS allow $user promote $clone - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user promote $clone - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 3 - log_must $ZFS allow $user mount $vol - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user mount $vol - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 4 - log_must $ZFS allow $user mount $clone - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user mount $clone - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 5 - log_must $ZFS allow $user promote $clone - log_must $ZFS allow $user mount $vol - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user promote $clone - log_must $ZFS unallow $user mount $vol - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 6 - log_must $ZFS allow $user promote $clone - log_must $ZFS allow $user mount $clone - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user promote $clone - log_must $ZFS unallow $user mount $vol - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote should fail if $vol and $clone - # miss either mount or promote permission - # case 7 - log_must $ZFS allow $user mount $vol - log_must $ZFS allow $user mount $clone - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user mount $vol - log_must $ZFS unallow $user mount $clone - if [[ $vol_orig != $(get_prop origin $vol) || \ - $clone_orig != $(get_prop origin $clone) ]]; - then - return 1 - fi - - # promote only succeeds when $vol and $clone - # have both mount and promote permission - # case 8 - log_must $ZFS allow $user promote $clone - log_must $ZFS allow $user mount $vol - log_must $ZFS allow $user mount $clone - user_run $user $ZFS promote $vol - log_must $ZFS unallow $user promote $clone - log_must $ZFS unallow $user mount $vol - log_must $ZFS unallow $user mount $clone - if [[ $snap != $(get_prop origin $clone) || \ - $clone_orig != $(get_prop origin $vol) ]]; then - return 1 - fi - - return 0 -} - function verify_vol_volsize { typeset user=$1 @@ -1779,17 +1607,9 @@ function verify_vol_volsize oldval=$(get_prop volsize $vol) (( newval = oldval * 2 )) - typeset check_refrev=false - if support_refrev $vol; then - check_refrev=true - fi typeset reserv_size - if [[ $check_refrev == true ]]; then - reserv_size=$(get_prop refreservation $vol) - else - reserv_size=$(get_prop reservation $vol) - fi + reserv_size=$(get_prop refreservation $vol) if [[ "0" == $reserv_size ]]; then # sparse volume @@ -1803,20 +1623,16 @@ function verify_vol_volsize # normal volume, reservation permission # is required user_run $user $ZFS set volsize=$newval $vol - if [[ $newval == $(get_prop volsize $vol) ]]; + zfs get -p volsize $vol + if [[ $newval != $(get_prop volsize $vol) ]]; then return 1 fi - log_must $ZFS allow $user reservation $vol - if [[ $check_refrev == true ]]; then - log_must $ZFS allow $user refreservation $vol - fi + log_must $ZFS allow $user refreservation $vol user_run $user $ZFS set volsize=$newval $vol log_must $ZFS unallow $user reservation $vol - if [[ $check_refrev == true ]]; then - log_must $ZFS unallow $user refreservation $vol - fi + log_must $ZFS unallow $user refreservation $vol if [[ $oldval == $(get_prop volsize $vol) ]]; then return 1 @@ -1887,16 +1703,4 @@ function verify_allow return 0 -} - -function support_refrev -{ - typeset dataset=$1 - - $ZFS get refreservation $dataset > /dev/null 2>&1 - if (( $? != 0 )); then - return 1 - fi - - return 0 } Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_001_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_001_pos.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_001_pos.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -67,8 +67,6 @@ function cleanup if [[ $group_added == "TRUE" ]] ; then del_group everyone fi - - restore_root_datasets } log_assert "everyone' is interpreted as a keyword even if a user " \ @@ -111,7 +109,6 @@ for dtst in $DATASETS ; do log_must $ZFS allow everyone $perms $dtst log_must verify_perm $dtst $perms $EVERYONE done -log_must restore_root_datasets if [[ $group_added == "TRUE" ]]; then log_must $GROUPDEL everyone fi Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_002_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_002_pos.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_002_pos.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -65,8 +65,6 @@ function cleanup if $ID $STAFF_GROUP > /dev/null 2>&1; then log_must del_user $STAFF_GROUP fi - - restore_root_datasets } log_assert " is interpreted as user if possible, then as group." Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_003_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_003_pos.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_003_pos.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -60,7 +60,6 @@ verify_runnable "both" log_assert "Verify option '-l' only allow permission to the dataset itself." -log_onexit restore_root_datasets childfs=$ROOT_TESTFS/childfs @@ -74,10 +73,6 @@ else allow,userprop" fi -if check_version "5.10" ; then - perms="${perms},send" -fi - log_must $ZFS create $childfs for dtst in $DATASETS ; do @@ -112,7 +107,5 @@ for dtst in $DATASETS ; do $STAFF1 $STAFF2 $OTHER1 $OTHER2 fi done - -log_must restore_root_datasets log_pass "Verify option '-l' only allow permission to the dataset itself pass." Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_007_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_007_pos.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_007_pos.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -65,7 +65,6 @@ verify_runnable "both" log_assert "Verify permission set can be masked on descendent dataset." -log_onexit restore_root_datasets typeset perms1="snapshot,reservation,compression" eval set -A dataset $DATASETS Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_010_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_010_pos.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_010_pos.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -60,7 +60,6 @@ verify_runnable "both" log_assert "Verify privileged user has correct permissions once which was "\ "delegated to him in datasets" -log_onexit restore_root_datasets # # Results in Results in @@ -79,7 +78,6 @@ set -A perms create true false \ compression true true \ canmount true false \ atime true false \ - devices true false \ exec true false \ volsize false true \ setuid true false \ @@ -92,16 +90,14 @@ set -A perms create true false \ clone true true \ rename true true \ promote true true \ - zoned true false \ - shareiscsi true true \ - xattr true false \ receive true false \ destroy true true -if is_global_zone; then - typeset -i n=${#perms[@]} - perms[((n))]="sharenfs"; perms[((n+1))]="true"; perms[((n+2))]="false" - perms[((n+3))]="share"; perms[((n+4))]="true"; perms[((n+5))]="false" -fi + # TODO: shareiscsi is not yet supported on FreeBSD + # shareiscsi true true +# the sharenfs test is Solaris-specific. TODO: port it to FreeBSD. +#typeset -i n=${#perms[@]} +#perms[((n))]="sharenfs"; perms[((n+1))]="true"; perms[((n+2))]="false" +#perms[((n+3))]="share"; perms[((n+4))]="true"; perms[((n+5))]="false" for dtst in $DATASETS; do typeset -i k=1 Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_012_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_012_neg.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_012_neg.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -56,24 +56,16 @@ # ################################################################################ -verify_runnable "global" - -function cleanup -{ - log_must $ZPOOL set delegation=on $TESTPOOL - log_must restore_root_datasets -} - log_assert "Verify privileged user can not use permissions properly when " \ "delegation property is set off" -log_onexit cleanup - set -A perms create snapshot mount send allow quota reservation \ recordsize mountpoint checksum compression canmount atime \ devices exec volsize setuid readonly snapdir userprop \ aclmode aclinherit rollback clone rename promote \ - zoned shareiscsi xattr receive destroy sharenfs share + xattr receive destroy +# TODO: add sharenfs and share after the Solarisisms have been removed from +# those tests log_must $ZPOOL set delegation=off $TESTPOOL Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_test.sh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_allow_test.sh Mon Oct 7 20:13:49 2019 (r353287) @@ -30,7 +30,7 @@ atf_test_case zfs_allow_001_pos cleanup zfs_allow_001_pos_head() { atf_set "descr" "everyone' is interpreted as a keyword even if a useror group named 'everyone' exists." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_001_pos_body() { @@ -56,7 +56,7 @@ atf_test_case zfs_allow_002_pos cleanup zfs_allow_002_pos_head() { atf_set "descr" " is interpreted as user if possible, then as group." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_002_pos_body() { @@ -82,7 +82,7 @@ atf_test_case zfs_allow_003_pos cleanup zfs_allow_003_pos_head() { atf_set "descr" "Verify option '-l' only allow permission to the dataset itself." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_003_pos_body() { @@ -108,7 +108,7 @@ atf_test_case zfs_allow_004_pos cleanup zfs_allow_004_pos_head() { atf_set "descr" "Verify option '-d' allow permission to the descendent datasets." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_004_pos_body() { @@ -134,7 +134,7 @@ atf_test_case zfs_allow_005_pos cleanup zfs_allow_005_pos_head() { atf_set "descr" "Verify option '-c' will be granted locally to the creator." - atf_set "require.progs" zfs svcs runwattr + atf_set "require.progs" zfs sudo } zfs_allow_005_pos_body() { @@ -160,7 +160,7 @@ atf_test_case zfs_allow_006_pos cleanup zfs_allow_006_pos_head() { atf_set "descr" "Changing permissions in a set will change what is allowedwherever the set is used." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_006_pos_body() { @@ -186,7 +186,7 @@ atf_test_case zfs_allow_007_pos cleanup zfs_allow_007_pos_head() { atf_set "descr" "Verify permission set can be masked on descendent dataset." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_007_pos_body() { @@ -212,7 +212,7 @@ atf_test_case zfs_allow_008_pos cleanup zfs_allow_008_pos_head() { atf_set "descr" "Verify non-root user can allow permissions." - atf_set "require.progs" zfs svcs runwattr + atf_set "require.progs" zfs sudo } zfs_allow_008_pos_body() { @@ -238,7 +238,7 @@ atf_test_case zfs_allow_009_neg cleanup zfs_allow_009_neg_head() { atf_set "descr" "Verify invalid arguments are handled correctly." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_allow_009_neg_body() { @@ -263,8 +263,8 @@ zfs_allow_009_neg_cleanup() atf_test_case zfs_allow_010_pos cleanup zfs_allow_010_pos_head() { - atf_set "descr" "Verify privileged user has correct permissions once which wasdelegated to him in datasets" - atf_set "require.progs" zfs svcs + atf_set "descr" "Verify privileged user has correct permissions once which was delegated to him in datasets" + atf_set "require.progs" zfs sudo } zfs_allow_010_pos_body() { @@ -289,8 +289,8 @@ zfs_allow_010_pos_cleanup() atf_test_case zfs_allow_011_neg cleanup zfs_allow_011_neg_head() { - atf_set "descr" "Verify zpool subcmds and system readonly properties can't bedelegated." - atf_set "require.progs" zfs svcs + atf_set "descr" "Verify zpool subcmds and system readonly properties can't be delegated." + atf_set "require.progs" zfs sudo } zfs_allow_011_neg_body() { @@ -315,8 +315,8 @@ zfs_allow_011_neg_cleanup() atf_test_case zfs_allow_012_neg cleanup zfs_allow_012_neg_head() { - atf_set "descr" "Verify privileged user can not use permissions properly whendelegation property is set off" - atf_set "require.progs" zfs zpool svcs + atf_set "descr" "Verify privileged user can not use permissions properly when delegation property is set off" + atf_set "require.progs" zfs sudo } zfs_allow_012_neg_body() { Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_007_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_007_neg.ksh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_007_neg.ksh Mon Oct 7 20:13:49 2019 (r353287) @@ -62,7 +62,7 @@ log_assert "zfs unallow won't remove those permissions "its parent dataset." log_onexit restore_root_datasets -perm1="atime,devices"; perm2="compression,checksum" +perm1="atime"; perm2="compression,checksum" log_must $ZFS create $SUBFS log_must $ZFS allow $STAFF1 $perm1 $ROOT_TESTFS log_must $ZFS allow $STAFF1 $perm2 $SUBFS Modified: head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_test.sh Mon Oct 7 19:50:22 2019 (r353286) +++ head/tests/sys/cddl/zfs/tests/delegate/zfs_unallow_test.sh Mon Oct 7 20:13:49 2019 (r353287) @@ -30,7 +30,7 @@ atf_test_case zfs_unallow_001_pos cleanup zfs_unallow_001_pos_head() { atf_set "descr" "Verify '-l' only removed the local permissions." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_001_pos_body() { @@ -56,7 +56,7 @@ atf_test_case zfs_unallow_002_pos cleanup zfs_unallow_002_pos_head() { atf_set "descr" "Verify '-d' only removed the descendent permissions." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_002_pos_body() { @@ -82,7 +82,7 @@ atf_test_case zfs_unallow_003_pos cleanup zfs_unallow_003_pos_head() { atf_set "descr" "Verify options '-r' and '-l'+'-d' will unallow permission tothis dataset and the descendent datasets." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_003_pos_body() { @@ -108,7 +108,7 @@ atf_test_case zfs_unallow_004_pos cleanup zfs_unallow_004_pos_head() { atf_set "descr" "Verify '-s' will remove permissions from the named set." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_004_pos_body() { @@ -134,7 +134,7 @@ atf_test_case zfs_unallow_005_pos cleanup zfs_unallow_005_pos_head() { atf_set "descr" "Verify option '-c' will remove the created permission set." - atf_set "require.progs" zfs svcs runwattr + atf_set "require.progs" zfs sudo } zfs_unallow_005_pos_body() { @@ -160,7 +160,7 @@ atf_test_case zfs_unallow_006_pos cleanup zfs_unallow_006_pos_head() { atf_set "descr" "Verify option '-u', '-g' and '-e' only removed the specified typepermissions set." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_006_pos_body() { @@ -186,7 +186,7 @@ atf_test_case zfs_unallow_007_neg cleanup zfs_unallow_007_neg_head() { atf_set "descr" "zfs unallow won't remove those permissions which inherited fromits parent dataset." - atf_set "require.progs" zfs svcs + atf_set "require.progs" zfs sudo } zfs_unallow_007_neg_body() { @@ -212,7 +212,7 @@ atf_test_case zfs_unallow_008_neg cleanup zfs_unallow_008_neg_head() { atf_set "descr" "zfs unallow can handle invalid arguments." - atf_set "require.progs" zfs svcs runwattr + atf_set "require.progs" zfs sudo } zfs_unallow_008_neg_body() { From owner-svn-src-head@freebsd.org Mon Oct 7 20:19:06 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A49FB13878E; Mon, 7 Oct 2019 20:19:06 +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 46nBdk3qz1z4WS3; Mon, 7 Oct 2019 20:19:06 +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 63CA91BE74; Mon, 7 Oct 2019 20:19:06 +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 x97KJ6Dm081863; Mon, 7 Oct 2019 20:19:06 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KJ6kU081862; Mon, 7 Oct 2019 20:19:06 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910072019.x97KJ6kU081862@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 20:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353288 - head/tests/sys/cddl/zfs/tests/hotspare X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/hotspare X-SVN-Commit-Revision: 353288 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:19:06 -0000 Author: asomers Date: Mon Oct 7 20:19:05 2019 New Revision: 353288 URL: https://svnweb.freebsd.org/changeset/base/353288 Log: ZFS: mark hotspare_scrub_002_pos as an expected failure "zpool scrub" doesn't detect all errors on active spares in raidz arrays PR: 241069 MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/hotspare/hotspare_test.sh Modified: head/tests/sys/cddl/zfs/tests/hotspare/hotspare_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/hotspare/hotspare_test.sh Mon Oct 7 20:13:49 2019 (r353287) +++ head/tests/sys/cddl/zfs/tests/hotspare/hotspare_test.sh Mon Oct 7 20:19:05 2019 (r353288) @@ -635,6 +635,7 @@ hotspare_scrub_002_pos_body() . $(atf_get_srcdir)/hotspare.kshlib . $(atf_get_srcdir)/hotspare.cfg + atf_expect_fail "PR 241069 scrub does not detect all errors on active spares" ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/hotspare_scrub_002_pos.ksh || atf_fail "Testcase failed" } From owner-svn-src-head@freebsd.org Mon Oct 7 20:21:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6D15A1389FB; Mon, 7 Oct 2019 20:21:24 +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 46nBhN1779z4Wvh; Mon, 7 Oct 2019 20:21:24 +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 EDCB21BED7; Mon, 7 Oct 2019 20:21:23 +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 x97KLNON084204; Mon, 7 Oct 2019 20:21:23 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KLNU6084201; Mon, 7 Oct 2019 20:21:23 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910072021.x97KLNU6084201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 7 Oct 2019 20:21:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353289 - in head/tests/sys/cddl/zfs: include tests/redundancy X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head/tests/sys/cddl/zfs: include tests/redundancy X-SVN-Commit-Revision: 353289 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:21:24 -0000 Author: asomers Date: Mon Oct 7 20:21:23 2019 New Revision: 353289 URL: https://svnweb.freebsd.org/changeset/base/353289 Log: ZFS: fix the redundancy tests * Fix force_sync_path, which ensures that a file is fully flushed to disk. Apparently "zpool history"'s performance has improved, but exporting and importing the pool still works. * Fix file_dva by using undocumented zdb syntax to clarify that we're interested in the pool's root file system, not the pool itself. This should also fix the zpool_clear_001_pos test. * Remove a redundant cleanup step MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D21901 Modified: head/tests/sys/cddl/zfs/include/libtest.kshlib head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Modified: head/tests/sys/cddl/zfs/include/libtest.kshlib ============================================================================== --- head/tests/sys/cddl/zfs/include/libtest.kshlib Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/include/libtest.kshlib Mon Oct 7 20:21:23 2019 (r353289) @@ -2676,8 +2676,7 @@ function gen_dataset_name # # Ensure that a given path has been synced, not just ZIL committed. # -# XXX The implementation currently requires calling 'zpool history'. On -# FreeBSD, the sync(8) command (via $SYNC) calls zfs_sync() which just +# XXX On FreeBSD, the sync(8) command (via $SYNC) calls zfs_sync() which just # does a zil_commit(), as opposed to a txg_wait_synced(). For things that # require writing to their final destination (e.g. for intentional # corruption purposes), zil_commit() is not good enough. @@ -2686,10 +2685,8 @@ function force_sync_path # path { typeset path="$1" - zfspath=$($DF $path 2>/dev/null | tail -1 | cut -d" " -f1 | cut -d/ -f1) - [ -z "$zfspath" ] && return false - log_note "Force syncing ${zfspath} for ${path} ..." - $ZPOOL history $zfspath >/dev/null 2>&1 + log_must $ZPOOL export $TESTPOOL + log_must $ZPOOL import -d $path $TESTPOOL } # @@ -3326,7 +3323,7 @@ function file_dva # dataset filepath [level] [offset] # The inner match is for 'DVA[0]=<0:1b412600:200>', in which the # text surrounding the actual DVA is a fixed size with 8 characters # before it and 1 after. - $ZDB -P -vvvvv $dataset $inode | \ + $ZDB -P -vvvvv "$dataset/" $inode | \ $AWK -v level=${level} -v dva_num=${dva_num} ' BEGIN { stage = 0; } (stage == 0) && ($1=="Object") { stage = 1; next; } Modified: head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib ============================================================================== --- head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib Mon Oct 7 20:21:23 2019 (r353289) @@ -98,7 +98,7 @@ function setup_test_env typeset file=$TESTDIR/file log_must $FILE_WRITE -o create -f $file -b $BLOCKSZ -c $NUM_WRITES - log_must force_sync_path $TESTDIR + force_sync_path $BASEDIR record_data $TESTPOOL $PRE_RECORD_FILE } @@ -142,7 +142,7 @@ function sync_pool #pool { typeset pool=$1 - log_must force_sync_path $pool + force_sync_path $BASEDIR # If the OS has detected corruption on the pool, it will have # automatically initiated a scrub. In that case, our "zpool scrub" Modified: head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Mon Oct 7 20:21:23 2019 (r353289) @@ -62,7 +62,6 @@ verify_runnable "global" log_assert "Verify raidz pool can withstand one device is failing." -log_onexit cleanup for cnt in 3 2; do setup_test_env $TESTPOOL raidz $cnt From owner-svn-src-head@freebsd.org Mon Oct 7 20:35:05 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 96A0E138F27; Mon, 7 Oct 2019 20:35:05 +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 46nC093Q84z4XgL; Mon, 7 Oct 2019 20:35:05 +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 585D01C21B; Mon, 7 Oct 2019 20:35:05 +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 x97KZ5g1093343; Mon, 7 Oct 2019 20:35:05 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KZ4rI093341; Mon, 7 Oct 2019 20:35:04 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910072035.x97KZ4rI093341@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 7 Oct 2019 20:35:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353290 - in head: share/man/man4 sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: in head: share/man/man4 sys/netinet X-SVN-Commit-Revision: 353290 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:35:05 -0000 Author: tuexen Date: Mon Oct 7 20:35:04 2019 New Revision: 353290 URL: https://svnweb.freebsd.org/changeset/base/353290 Log: In r343587 a simple port filter as sysctl tunable was added to siftr. The new sysctl was not added to the siftr.4 man page at the time. This updates the man page, and removes one left over trailing whitespace. Submitted by: Richard Scheffenegger Reviewed by: bcr@ MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D21619 Modified: head/share/man/man4/siftr.4 head/sys/netinet/siftr.c Modified: head/share/man/man4/siftr.4 ============================================================================== --- head/share/man/man4/siftr.4 Mon Oct 7 20:21:23 2019 (r353289) +++ head/share/man/man4/siftr.4 Mon Oct 7 20:35:04 2019 (r353290) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 18, 2015 +.Dd October 7, 2019 .Dt SIFTR 4 .Os .Sh NAME @@ -130,6 +130,14 @@ By default, the value is set to 0, which means no hash The hashes are useful to correlate which TCP packet triggered the generation of a particular log message, but calculating them adds additional computational overhead into the fast path. +.El +.Bl -tag -offset indent -width Va +.It Va net.inet.siftr.port_filter +controls on which source or destination port siftr should capture +.Nm . +By default, the value is set to 0, which means all ports are eligible for logging. +Set to any other value, only packets where either the source or destination +port is equal to this number are logged. .El .Ss Log Format A typical Modified: head/sys/netinet/siftr.c ============================================================================== --- head/sys/netinet/siftr.c Mon Oct 7 20:21:23 2019 (r353289) +++ head/sys/netinet/siftr.c Mon Oct 7 20:35:04 2019 (r353290) @@ -918,7 +918,7 @@ siftr_chkpkt(struct mbuf **m, struct ifnet *ifp, int f * Only pkts selected by the tcp port filter * can be inserted into the pkt_queue */ - if ((siftr_port_filter != 0) && + if ((siftr_port_filter != 0) && (siftr_port_filter != ntohs(inp->inp_lport)) && (siftr_port_filter != ntohs(inp->inp_fport))) { goto inp_unlock; From owner-svn-src-head@freebsd.org Mon Oct 7 20:52:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0D6213962C; Mon, 7 Oct 2019 20:52:52 +0000 (UTC) (envelope-from delphij@gmail.com) Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com [IPv6:2607:f8b0:4864:20::231]) (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 46nCNg6hRyz4ZBr; Mon, 7 Oct 2019 20:52:51 +0000 (UTC) (envelope-from delphij@gmail.com) Received: by mail-oi1-x231.google.com with SMTP id t84so12913372oih.10; Mon, 07 Oct 2019 13:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hYFpqa1ZLaKM+bCUHoutsM5k6WvYuVSG8MKT6wJdRu4=; b=LKcGaBHND8Bi9ft/3DhIe3wCzAMSl0ayITIGagRwMTCbLqQA/OrcLc9vOGGYbqLUpT Rl52ktFrn84HRRiN82LCzo9ciSC/gmnRgu9xQgE04Fz0H7I3dEdqtMRKH2PgiTuSqYkb Re4BuCD5Mp38qglB5Q7WCtMTAbJxm4ZmzIZzLHBQI0SU0jMmBVFjh9mY2tRo37jdDInG JrGvY6nPbGKrn4d3nz6DpaXydsf53UP6Re8wzrDQgCX9j50PzOJ8YeISubRfU/c9gpyk j6pChHDSj5nuhZdCmfgCr0Tzlm9F5AVGF460Gq5nDcv2oHvd1igHZi/x8VSG7TU5tNRy sM5g== 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=hYFpqa1ZLaKM+bCUHoutsM5k6WvYuVSG8MKT6wJdRu4=; b=e4gmayZT/lJHb094vtoNHEB8TtVUiEhZU2iR3/Xiy6C1itE1sr54qOsEOmg7GxmEK3 wvyR2YO7ho4XpcQCq+FnIhIGqs2PLr7bjxJjFf4c8Enjj3oGV7kW7a0T5VWSzSIblLk2 qowrjn1DZ02MFGxG8zRSKN09S11c2dEEgZ7xTl0SG08b8ao9IZdDlbE3ChemlCEE4JGb JakLvr4y6MGBRYsw7pkFBen7nIInN5nbS6MAcRrKGwIr6y884LKxb12UdkHUh9JpEhyD WQP2zem96oHFFr59Ev/3ii2B0UUUtsGidgVTAcwZ4+uwi9lvXO6fcR06mohrujBKlnJn 6uqA== X-Gm-Message-State: APjAAAVNb74J95OcMV2S2IJUzgzXLiCUcQBYGAuEqYGKGOyJnpiBSj8l y+7oi6BW08WTfAory/iIfn063RqoUloiNA110BLgN5k4BA8= X-Google-Smtp-Source: APXvYqxD9lVy7CPEWAYq3HAndIOpy0tatG45kAassmKxf7OKqafXzYig520ccikn/+AepYd4ulPq7sGp01ZXm8P36VE= X-Received: by 2002:aca:dfc5:: with SMTP id w188mr1013592oig.4.1570481569758; Mon, 07 Oct 2019 13:52:49 -0700 (PDT) MIME-Version: 1.0 References: <201808120045.w7C0jsYR077215@repo.freebsd.org> <1539889955.648460.1546878736.13544E2C@webmail.messagingengine.com> In-Reply-To: <1539889955.648460.1546878736.13544E2C@webmail.messagingengine.com> From: Xin LI Date: Mon, 7 Oct 2019 13:52:38 -0700 Message-ID: Subject: Re: svn commit: r337669 - in head: cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/ztest cddl/usr.bin/ztest sys/cddl/contrib/opensolaris/common/zfs sys/cddl/contrib/opensolaris/uts/common... To: Mark Felder Cc: Matt Macy , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" X-Rspamd-Queue-Id: 46nCNg6hRyz4ZBr X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=LKcGaBHN; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of delphij@gmail.com designates 2607:f8b0:4864:20::231 as permitted sender) smtp.mailfrom=delphij@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE(0.00)[ip: (-8.99), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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.3.2.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]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/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] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:52:52 -0000 +1. org.zfsonlinux:large_dnode is the only missing feature right now from the manual page (org.open-zfs:large_block was misspelled; we didn't enabled org.illumos:edonr). On Thu, Oct 18, 2018 at 12:12 PM Mark Felder wrote: > On Sat, Aug 11, 2018, at 19:45, Matt Macy wrote: > > Author: mmacy > > Date: Sun Aug 12 00:45:53 2018 > > New Revision: 337669 > > URL: https://svnweb.freebsd.org/changeset/base/337669 > > > > Log: > > MFV/ZoL: Implement large_dnode pool feature > > > > I just noticed this feature is missing from zpool-features.7 man page. Is > there an entry we can borrow from ZoL or OpenZFS? > > -- > Mark Felder > ports-secteam & portmgr member > feld@FreeBSD.org > > From owner-svn-src-head@freebsd.org Mon Oct 7 21:39:01 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB30C13A210; Mon, 7 Oct 2019 21:39:01 +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 46nDPx59QLz4byQ; Mon, 7 Oct 2019 21:39:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-4.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 151E6317C; Mon, 7 Oct 2019 21:39:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r353283 - in head: lib lib/libstats share/man/man3 share/mk sys/amd64/conf sys/conf sys/kern sys/sys tools/build/options To: Edward Tomasz Napierala , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910071905.x97J56t0039812@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: <19168116-73e4-7d98-16d3-2ecd38dabfcd@FreeBSD.org> Date: Mon, 7 Oct 2019 14:38:59 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <201910071905.x97J56t0039812@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 21:39:01 -0000 On 10/7/19 12:05 PM, Edward Tomasz Napierala wrote: > Author: trasz > Date: Mon Oct 7 19:05:05 2019 > New Revision: 353283 > URL: https://svnweb.freebsd.org/changeset/base/353283 > > Log: > Introduce stats(3), a flexible statistics gathering API. > > This provides a framework to define a template describing > a set of "variables of interest" and the intended way for > the framework to maintain them (for example the maximum, sum, > t-digest, or a combination thereof). Afterwards the user > code feeds in the raw data, and the framework maintains > these variables inside a user-provided, opaque stats blobs. > The framework also provides a way to selectively extract the > stats from the blobs. The stats(3) framework can be used in > both userspace and the kernel. > > See the stats(3) manual page for details. > > This will be used by the upcoming TCP statistics gathering code, > https://reviews.freebsd.org/D20655. > > The stats(3) framework is disabled by default for now, except > in the NOTES kernel (for QA); it is expected to be enabled > in amd64 GENERIC after a cool down period. Why sys/amd64/conf/NOTES instead of sys/conf/NOTES? The userland library seems to be enabled for all architectures rather than only amd64? > Modified: head/share/man/man3/arb.3 > ============================================================================== > --- head/share/man/man3/arb.3 Mon Oct 7 18:55:40 2019 (r353282) > +++ head/share/man/man3/arb.3 Mon Oct 7 19:05:05 2019 (r353283) > @@ -30,7 +30,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd September 28, 2019 > +.Dd October 2, 2019 > .Dt ARB 3 > .Os > .Sh NAME > @@ -94,7 +94,8 @@ > .Nm ARB_INIT , > .Nm ARB_INSERT , > .Nm ARB_REMOVE , > -.Nm ARB_REINSERT > +.Nm ARB_REINSERT , > +.Nm ARB_RESET_TREE > .Nd "array-based red-black trees" > .Sh SYNOPSIS > .In sys/arb.h Are these changes related? Perhaps it would have been nice to commit this change separately with its own description before the stats(3) commit if so. -- John Baldwin From owner-svn-src-head@freebsd.org Mon Oct 7 22:40:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0680013B523; Mon, 7 Oct 2019 22:40:10 +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 46nFmV02zVz4fbK; Mon, 7 Oct 2019 22:40:10 +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 D81251D799; Mon, 7 Oct 2019 22:40:09 +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 x97Me9ck065672; Mon, 7 Oct 2019 22:40:09 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97Me60x065650; Mon, 7 Oct 2019 22:40:06 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910072240.x97Me60x065650@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 7 Oct 2019 22:40:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib X-SVN-Commit-Revision: 353292 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 22:40:10 -0000 Author: glebius Date: Mon Oct 7 22:40:05 2019 New Revision: 353292 URL: https://svnweb.freebsd.org/changeset/base/353292 Log: Widen NET_EPOCH coverage. When epoch(9) was introduced to network stack, it was basically dropped in place of existing locking, which was mutexes and rwlocks. For the sake of performance mutex covered areas were as small as possible, so became epoch covered areas. However, epoch doesn't introduce any contention, it just delays memory reclaim. So, there is no point to minimise epoch covered areas in sense of performance. Meanwhile entering/exiting epoch also has non-zero CPU usage, so doing this less often is a win. Not the least is also code maintainability. In the new paradigm we can assume that at any stage of processing a packet, we are inside network epoch. This makes coding both input and output path way easier. On output path we already enter epoch quite early - in the ip_output(), in the ip6_output(). This patch does the same for the input path. All ISR processing, network related callouts, other ways of packet injection to the network stack shall be performed in net_epoch. Any leaf function that walks network configuration now asserts epoch. Tricky part is configuration code paths - ioctls, sysctls. They also call into leaf functions, so some need to be changed. This patch would introduce more epoch recursions (see EPOCH_TRACE) than we had before. They will be cleaned up separately, as several of them aren't trivial. Note, that unlike a lock recursion the epoch recursion is safe and just wastes a bit of resources. Reviewed by: gallatin, hselasky, cy, adrian, kristof Differential Revision: https://reviews.freebsd.org/D19111 Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c head/sys/dev/firewire/if_fwip.c head/sys/dev/iicbus/if_ic.c head/sys/dev/usb/net/if_usie.c head/sys/dev/usb/net/uhso.c head/sys/dev/usb/net/usb_ethernet.c head/sys/kern/uipc_socket.c head/sys/net/if.c head/sys/net/if_ethersubr.c head/sys/net/if_gif.c head/sys/net/if_me.c head/sys/net/if_stf.c head/sys/net/if_tuntap.c head/sys/net/if_vlan.c head/sys/net/netisr.c head/sys/net/route.c head/sys/net/rtsock.c head/sys/netgraph/ng_ether.c head/sys/netgraph/ng_iface.c head/sys/netgraph/ng_ip_input.c head/sys/netinet/if_ether.c head/sys/netinet/igmp.c head/sys/netinet/in.c head/sys/netinet/in_mcast.c head/sys/netinet/in_rmx.c head/sys/netinet/in_var.h head/sys/netinet/ip_carp.c head/sys/netinet/ip_encap.c head/sys/netinet/ip_icmp.c head/sys/netinet/ip_input.c head/sys/netinet/ip_mroute.c head/sys/netinet/ip_options.c head/sys/netinet/ip_output.c head/sys/netinet/sctp_bsd_addr.c head/sys/netinet6/icmp6.c head/sys/netinet6/in6.c head/sys/netinet6/in6_ifattach.c head/sys/netinet6/in6_mcast.c head/sys/netinet6/in6_var.h head/sys/netinet6/ip6_output.c head/sys/netinet6/mld6.c head/sys/netinet6/nd6.c head/sys/netinet6/nd6_nbr.c head/sys/netinet6/nd6_rtr.c head/sys/netinet6/raw_ip6.c head/sys/netipsec/xform_ipcomp.c head/sys/netpfil/ipfw/ip_dn_io.c head/sys/netpfil/pf/pf_if.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Mon Oct 7 22:40:05 2019 (r353292) @@ -1312,8 +1312,10 @@ ipf_inject(fin, m) fr_info_t *fin; mb_t *m; { + struct epoch_tracker et; int error = 0; + NET_EPOCH_ENTER(et); if (fin->fin_out == 0) { netisr_dispatch(NETISR_IP, m); } else { @@ -1321,6 +1323,7 @@ ipf_inject(fin, m) fin->fin_ip->ip_off = ntohs(fin->fin_ip->ip_off); error = ip_output(m, NULL, NULL, IP_FORWARDING, NULL, NULL); } + NET_EPOCH_EXIT(et); return error; } Modified: head/sys/dev/firewire/if_fwip.c ============================================================================== --- head/sys/dev/firewire/if_fwip.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/dev/firewire/if_fwip.c Mon Oct 7 22:40:05 2019 (r353292) @@ -708,6 +708,7 @@ fwip_start_send (void *arg, int count) static void fwip_stream_input(struct fw_xferq *xferq) { + struct epoch_tracker et; struct mbuf *m, *m0; struct m_tag *mtag; struct ifnet *ifp; @@ -720,6 +721,7 @@ fwip_stream_input(struct fw_xferq *xferq) fwip = (struct fwip_softc *)xferq->sc; ifp = fwip->fw_softc.fwip_ifp; + NET_EPOCH_ENTER(et); while ((sxfer = STAILQ_FIRST(&xferq->stvalid)) != NULL) { STAILQ_REMOVE_HEAD(&xferq->stvalid, link); fp = mtod(sxfer->mbuf, struct fw_pkt *); @@ -808,6 +810,7 @@ fwip_stream_input(struct fw_xferq *xferq) firewire_input(ifp, m, src); if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); } + NET_EPOCH_EXIT(et); if (STAILQ_FIRST(&xferq->stfree) != NULL) fwip->fd.fc->irx_enable(fwip->fd.fc, fwip->dma_ch); } Modified: head/sys/dev/iicbus/if_ic.c ============================================================================== --- head/sys/dev/iicbus/if_ic.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/dev/iicbus/if_ic.c Mon Oct 7 22:40:05 2019 (r353292) @@ -309,9 +309,13 @@ icintr(device_t dev, int event, char *ptr) BPF_TAP(sc->ic_ifp, sc->ic_ifbuf, len + ICHDRLEN); top = m_devget(sc->ic_ifbuf + ICHDRLEN, len, 0, sc->ic_ifp, 0); if (top) { + struct epoch_tracker et; + mtx_unlock(&sc->ic_lock); M_SETFIB(top, sc->ic_ifp->if_fib); + NET_EPOCH_ENTER(et); netisr_dispatch(NETISR_IP, top); + NET_EPOCH_EXIT(et); mtx_lock(&sc->ic_lock); } break; Modified: head/sys/dev/usb/net/if_usie.c ============================================================================== --- head/sys/dev/usb/net/if_usie.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/dev/usb/net/if_usie.c Mon Oct 7 22:40:05 2019 (r353292) @@ -773,6 +773,7 @@ tr_setup: static void usie_if_rx_callback(struct usb_xfer *xfer, usb_error_t error) { + struct epoch_tracker et; struct usie_softc *sc = usbd_xfer_softc(xfer); struct ifnet *ifp = sc->sc_ifp; struct mbuf *m0; @@ -852,6 +853,7 @@ tr_setup: err = pkt = 0; /* HW can aggregate multiple frames in a single USB xfer */ + NET_EPOCH_ENTER(et); for (;;) { rxd = mtod(m, struct usie_desc *); @@ -918,6 +920,7 @@ tr_setup: m->m_data += diff; m->m_pkthdr.len = (m->m_len -= diff); } + NET_EPOCH_EXIT(et); mtx_lock(&sc->sc_mtx); Modified: head/sys/dev/usb/net/uhso.c ============================================================================== --- head/sys/dev/usb/net/uhso.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/dev/usb/net/uhso.c Mon Oct 7 22:40:05 2019 (r353292) @@ -1664,6 +1664,7 @@ tr_setup: static void uhso_if_rxflush(void *arg) { + struct epoch_tracker et; struct uhso_softc *sc = arg; struct ifnet *ifp = sc->sc_ifp; uint8_t *cp; @@ -1677,6 +1678,7 @@ uhso_if_rxflush(void *arg) m = NULL; mwait = sc->sc_mwait; + NET_EPOCH_ENTER(et); for (;;) { if (m == NULL) { if ((m = mbufq_dequeue(&sc->sc_rxq)) == NULL) @@ -1787,6 +1789,7 @@ uhso_if_rxflush(void *arg) m = m0 != NULL ? m0 : NULL; mtx_lock(&sc->sc_mtx); } + NET_EPOCH_EXIT(et); sc->sc_mwait = mwait; } Modified: head/sys/dev/usb/net/usb_ethernet.c ============================================================================== --- head/sys/dev/usb/net/usb_ethernet.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/dev/usb/net/usb_ethernet.c Mon Oct 7 22:40:05 2019 (r353292) @@ -645,22 +645,21 @@ void uether_rxflush(struct usb_ether *ue) { struct ifnet *ifp = ue->ue_ifp; - struct mbuf *m; + struct epoch_tracker et; + struct mbuf *m, *n; UE_LOCK_ASSERT(ue, MA_OWNED); - for (;;) { - m = mbufq_dequeue(&ue->ue_rxq); - if (m == NULL) - break; - - /* - * The USB xfer has been resubmitted so its safe to unlock now. - */ - UE_UNLOCK(ue); + n = mbufq_flush(&ue->ue_rxq); + UE_UNLOCK(ue); + NET_EPOCH_ENTER(et); + while ((m = n) != NULL) { + n = STAILQ_NEXT(m, m_stailqpkt); + m->m_nextpkt = NULL; ifp->if_input(ifp, m); - UE_LOCK(ue); } + NET_EPOCH_EXIT(et); + UE_LOCK(ue); } /* Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/kern/uipc_socket.c Mon Oct 7 22:40:05 2019 (r353292) @@ -146,6 +146,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include /* XXXGL: net_epoch should move out there */ +#include /* XXXGL: net_epoch should move out there */ #include Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if.c Mon Oct 7 22:40:05 2019 (r353292) @@ -351,17 +351,14 @@ ifnet_byindex(u_short idx) struct ifnet * ifnet_byindex_ref(u_short idx) { - struct epoch_tracker et; struct ifnet *ifp; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + ifp = ifnet_byindex_locked(idx); - if (ifp == NULL || (ifp->if_flags & IFF_DYING)) { - NET_EPOCH_EXIT(et); + if (ifp == NULL || (ifp->if_flags & IFF_DYING)) return (NULL); - } if_ref(ifp); - NET_EPOCH_EXIT(et); return (ifp); } @@ -425,15 +422,14 @@ ifnet_setbyindex(u_short idx, struct ifnet *ifp) struct ifaddr * ifaddr_byindex(u_short idx) { - struct epoch_tracker et; struct ifnet *ifp; struct ifaddr *ifa = NULL; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + ifp = ifnet_byindex_locked(idx); if (ifp != NULL && (ifa = ifp->if_addr) != NULL) ifa_ref(ifa); - NET_EPOCH_EXIT(et); return (ifa); } @@ -1640,39 +1636,32 @@ ifgr_groups_get(void *ifgrp) static int if_getgroup(struct ifgroupreq *ifgr, struct ifnet *ifp) { - struct epoch_tracker et; int len, error; struct ifg_list *ifgl; struct ifg_req ifgrq, *ifgp; + NET_EPOCH_ASSERT(); + if (ifgr->ifgr_len == 0) { - NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifgl, &ifp->if_groups, ifgl_next) ifgr->ifgr_len += sizeof(struct ifg_req); - NET_EPOCH_EXIT(et); return (0); } len = ifgr->ifgr_len; ifgp = ifgr_groups_get(ifgr); /* XXX: wire */ - NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifgl, &ifp->if_groups, ifgl_next) { - if (len < sizeof(ifgrq)) { - NET_EPOCH_EXIT(et); + if (len < sizeof(ifgrq)) return (EINVAL); - } bzero(&ifgrq, sizeof ifgrq); strlcpy(ifgrq.ifgrq_group, ifgl->ifgl_group->ifg_group, sizeof(ifgrq.ifgrq_group)); - if ((error = copyout(&ifgrq, ifgp, sizeof(struct ifg_req)))) { - NET_EPOCH_EXIT(et); + if ((error = copyout(&ifgrq, ifgp, sizeof(struct ifg_req)))) return (error); - } len -= sizeof(ifgrq); ifgp++; } - NET_EPOCH_EXIT(et); return (0); } @@ -1972,7 +1961,8 @@ ifa_ifwithaddr(const struct sockaddr *addr) struct ifnet *ifp; struct ifaddr *ifa; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); + CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != addr->sa_family) @@ -2324,17 +2314,22 @@ if_link_state_change(struct ifnet *ifp, int link_state ifp->if_link_state = link_state; + /* XXXGL: reference ifp? */ taskqueue_enqueue(taskqueue_swi, &ifp->if_linktask); } static void do_link_state_change(void *arg, int pending) { - struct ifnet *ifp = (struct ifnet *)arg; - int link_state = ifp->if_link_state; - CURVNET_SET(ifp->if_vnet); + struct epoch_tracker et; + struct ifnet *ifp; + int link_state; - /* Notify that the link state has changed. */ + NET_EPOCH_ENTER(et); + ifp = arg; + link_state = ifp->if_link_state; + + CURVNET_SET(ifp->if_vnet); rt_ifmsg(ifp); if (ifp->if_vlantrunk != NULL) (*vlan_link_state_p)(ifp); @@ -2360,6 +2355,7 @@ do_link_state_change(void *arg, int pending) (link_state == LINK_STATE_UP) ? "UP" : "DOWN" ); EVENTHANDLER_INVOKE(ifnet_link_event, ifp, link_state); CURVNET_RESTORE(); + NET_EPOCH_EXIT(et); } /* @@ -2912,9 +2908,14 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, break; case CASE_IOC_IFGROUPREQ(SIOCGIFGROUP): - if ((error = if_getgroup((struct ifgroupreq *)data, ifp))) - return (error); + { + struct epoch_tracker et; + + NET_EPOCH_ENTER(et); + error = if_getgroup((struct ifgroupreq *)data, ifp); + NET_EPOCH_EXIT(et); break; + } case CASE_IOC_IFGROUPREQ(SIOCDIFGROUP): error = priv_check(td, PRIV_NET_DELIFGROUP); @@ -2983,7 +2984,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s #ifdef COMPAT_FREEBSD32 caddr_t saved_data = NULL; struct ifmediareq ifmr; - struct ifmediareq *ifmrp; + struct ifmediareq *ifmrp = NULL; #endif struct ifnet *ifp; struct ifreq *ifr; @@ -2999,12 +3000,10 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s } #endif - switch (cmd) { case SIOCGIFCONF: error = ifconf(cmd, data); - CURVNET_RESTORE(); - return (error); + goto out_noref; #ifdef COMPAT_FREEBSD32 case SIOCGIFCONF32: @@ -3017,16 +3016,14 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s ifc.ifc_buf = PTRIN(ifc32->ifc_buf); error = ifconf(SIOCGIFCONF, (void *)&ifc); - CURVNET_RESTORE(); if (error == 0) ifc32->ifc_len = ifc.ifc_len; - return (error); + goto out_noref; } #endif } #ifdef COMPAT_FREEBSD32 - ifmrp = NULL; switch (cmd) { case SIOCGIFMEDIA32: case SIOCGIFXMEDIA32: @@ -3618,16 +3615,15 @@ if_delmulti(struct ifnet *ifp, struct sockaddr *sa) struct ifmultiaddr *ifma; int lastref; #ifdef INVARIANTS - struct epoch_tracker et; struct ifnet *oifp; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + CK_STAILQ_FOREACH(oifp, &V_ifnet, if_link) if (ifp == oifp) break; if (ifp != oifp) ifp = NULL; - NET_EPOCH_EXIT(et); KASSERT(ifp != NULL, ("%s: ifnet went away", __func__)); #endif @@ -3693,16 +3689,15 @@ if_delmulti_ifma_flags(struct ifmultiaddr *ifma, int f if (ifp == NULL) { printf("%s: ifma_ifp seems to be detached\n", __func__); } else { - struct epoch_tracker et; struct ifnet *oifp; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + CK_STAILQ_FOREACH(oifp, &V_ifnet, if_link) if (ifp == oifp) break; if (ifp != oifp) ifp = NULL; - NET_EPOCH_EXIT(et); } #endif /* @@ -3826,11 +3821,11 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, struct sockaddr_dl *sdl; struct ifaddr *ifa; struct ifreq ifr; - struct epoch_tracker et; int rc; + NET_EPOCH_ASSERT(); + rc = 0; - NET_EPOCH_ENTER(et); ifa = ifp->if_addr; if (ifa == NULL) { rc = EINVAL; @@ -3864,7 +3859,6 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, * to re-init it in order to reprogram its * address filter. */ - NET_EPOCH_EXIT(et); if ((ifp->if_flags & IFF_UP) != 0) { if (ifp->if_ioctl) { ifp->if_flags &= ~IFF_UP; @@ -3879,8 +3873,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, } EVENTHANDLER_INVOKE(iflladdr_event, ifp); return (0); - out: - NET_EPOCH_EXIT(et); +out: return (rc); } Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_ethersubr.c Mon Oct 7 22:40:05 2019 (r353292) @@ -800,6 +800,7 @@ VNET_SYSUNINIT(vnet_ether_uninit, SI_SUB_PROTO_IF, SI_ static void ether_input(struct ifnet *ifp, struct mbuf *m) { + struct epoch_tracker et; struct mbuf *mn; /* @@ -807,22 +808,24 @@ ether_input(struct ifnet *ifp, struct mbuf *m) * m_nextpkt. We split them up into separate packets here and pass * them up. This allows the drivers to amortize the receive lock. */ + CURVNET_SET_QUIET(ifp->if_vnet); + NET_EPOCH_ENTER(et); while (m) { mn = m->m_nextpkt; m->m_nextpkt = NULL; /* - * We will rely on rcvif being set properly in the deferred context, - * so assert it is correct here. + * We will rely on rcvif being set properly in the deferred + * context, so assert it is correct here. */ MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); KASSERT(m->m_pkthdr.rcvif == ifp, ("%s: ifnet mismatch m %p " "rcvif %p ifp %p", __func__, m, m->m_pkthdr.rcvif, ifp)); - CURVNET_SET_QUIET(ifp->if_vnet); netisr_dispatch(NETISR_ETHER, m); - CURVNET_RESTORE(); m = mn; } + NET_EPOCH_EXIT(et); + CURVNET_RESTORE(); } /* @@ -835,6 +838,7 @@ ether_demux(struct ifnet *ifp, struct mbuf *m) int i, isr; u_short ether_type; + NET_EPOCH_ASSERT(); KASSERT(ifp != NULL, ("%s: NULL interface pointer", __func__)); /* Do not grab PROMISC frames in case we are re-entered. */ Modified: head/sys/net/if_gif.c ============================================================================== --- head/sys/net/if_gif.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_gif.c Mon Oct 7 22:40:05 2019 (r353292) @@ -415,6 +415,8 @@ gif_input(struct mbuf *m, struct ifnet *ifp, int proto struct ifnet *oldifp; int isr, n, af; + NET_EPOCH_ASSERT(); + if (ifp == NULL) { /* just in case */ m_freem(m); Modified: head/sys/net/if_me.c ============================================================================== --- head/sys/net/if_me.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_me.c Mon Oct 7 22:40:05 2019 (r353292) @@ -451,6 +451,8 @@ me_input(struct mbuf *m, int off, int proto, void *arg struct ip *ip; int hlen; + NET_EPOCH_ASSERT(); + ifp = ME2IFP(sc); /* checks for short packets */ hlen = sizeof(struct mobhdr); Modified: head/sys/net/if_stf.c ============================================================================== --- head/sys/net/if_stf.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_stf.c Mon Oct 7 22:40:05 2019 (r353292) @@ -613,6 +613,8 @@ in_stf_input(struct mbuf *m, int off, int proto, void u_int8_t otos, itos; struct ifnet *ifp; + NET_EPOCH_ASSERT(); + if (proto != IPPROTO_IPV6) { m_freem(m); return (IPPROTO_DONE); Modified: head/sys/net/if_tuntap.c ============================================================================== --- head/sys/net/if_tuntap.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_tuntap.c Mon Oct 7 22:40:05 2019 (r353292) @@ -1662,6 +1662,7 @@ tunwrite_l2(struct tuntap_softc *tp, struct mbuf *m) static int tunwrite_l3(struct tuntap_softc *tp, struct mbuf *m) { + struct epoch_tracker et; struct ifnet *ifp; int family, isr; @@ -1702,7 +1703,9 @@ tunwrite_l3(struct tuntap_softc *tp, struct mbuf *m) if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); CURVNET_SET(ifp->if_vnet); M_SETFIB(m, ifp->if_fib); + NET_EPOCH_ENTER(et); netisr_dispatch(isr, m); + NET_EPOCH_EXIT(et); CURVNET_RESTORE(); return (0); } Modified: head/sys/net/if_vlan.c ============================================================================== --- head/sys/net/if_vlan.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/if_vlan.c Mon Oct 7 22:40:05 2019 (r353292) @@ -255,7 +255,6 @@ static struct sx _VLAN_SX_ID; #define TRUNK_LOCK_DESTROY(trunk) mtx_destroy(&(trunk)->lock) #define TRUNK_WLOCK(trunk) mtx_lock(&(trunk)->lock) #define TRUNK_WUNLOCK(trunk) mtx_unlock(&(trunk)->lock) -#define TRUNK_LOCK_ASSERT(trunk) MPASS(in_epoch(net_epoch_preempt) || mtx_owned(&(trunk)->lock)) #define TRUNK_WLOCK_ASSERT(trunk) mtx_assert(&(trunk)->lock, MA_OWNED); /* @@ -704,18 +703,17 @@ vlan_ifdetach(void *arg __unused, struct ifnet *ifp) static struct ifnet * vlan_trunkdev(struct ifnet *ifp) { - struct epoch_tracker et; struct ifvlan *ifv; + NET_EPOCH_ASSERT(); + if (ifp->if_type != IFT_L2VLAN) return (NULL); - NET_EPOCH_ENTER(et); ifv = ifp->if_softc; ifp = NULL; if (ifv->ifv_trunk) ifp = PARENT(ifv); - NET_EPOCH_EXIT(et); return (ifp); } @@ -787,21 +785,18 @@ vlan_setcookie(struct ifnet *ifp, void *cookie) static struct ifnet * vlan_devat(struct ifnet *ifp, uint16_t vid) { - struct epoch_tracker et; struct ifvlantrunk *trunk; struct ifvlan *ifv; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + trunk = ifp->if_vlantrunk; - if (trunk == NULL) { - NET_EPOCH_EXIT(et); + if (trunk == NULL) return (NULL); - } ifp = NULL; ifv = vlan_gethash(trunk, vid); if (ifv) ifp = ifv->ifv_ifp; - NET_EPOCH_EXIT(et); return (ifp); } @@ -1140,16 +1135,15 @@ vlan_init(void *foo __unused) static int vlan_transmit(struct ifnet *ifp, struct mbuf *m) { - struct epoch_tracker et; struct ifvlan *ifv; struct ifnet *p; int error, len, mcast; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + ifv = ifp->if_softc; if (TRUNK(ifv) == NULL) { if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - NET_EPOCH_EXIT(et); m_freem(m); return (ENETDOWN); } @@ -1169,7 +1163,6 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m) vst = mst_to_vst(mst); if (vst->tag->ifp != p) { if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - NET_EPOCH_EXIT(et); m_freem(m); return (EAGAIN); } @@ -1185,14 +1178,12 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m) */ if (!UP_AND_RUNNING(p)) { if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - NET_EPOCH_EXIT(et); m_freem(m); return (ENETDOWN); } if (!ether_8021q_frame(&m, ifp, p, ifv->ifv_vid, ifv->ifv_pcp)) { if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - NET_EPOCH_EXIT(et); return (0); } @@ -1206,7 +1197,6 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m) if_inc_counter(ifp, IFCOUNTER_OMCASTS, mcast); } else if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - NET_EPOCH_EXIT(et); return (error); } @@ -1214,19 +1204,17 @@ static int vlan_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct route *ro) { - struct epoch_tracker et; struct ifvlan *ifv; struct ifnet *p; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + ifv = ifp->if_softc; if (TRUNK(ifv) == NULL) { - NET_EPOCH_EXIT(et); m_freem(m); return (ENETDOWN); } p = PARENT(ifv); - NET_EPOCH_EXIT(et); return p->if_output(ifp, m, dst, ro); } @@ -1242,16 +1230,15 @@ vlan_qflush(struct ifnet *ifp __unused) static void vlan_input(struct ifnet *ifp, struct mbuf *m) { - struct epoch_tracker et; struct ifvlantrunk *trunk; struct ifvlan *ifv; struct m_tag *mtag; uint16_t vid, tag; - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + trunk = ifp->if_vlantrunk; if (trunk == NULL) { - NET_EPOCH_EXIT(et); m_freem(m); return; } @@ -1274,7 +1261,6 @@ vlan_input(struct ifnet *ifp, struct mbuf *m) if (m->m_len < sizeof(*evl) && (m = m_pullup(m, sizeof(*evl))) == NULL) { if_printf(ifp, "cannot pullup VLAN header\n"); - NET_EPOCH_EXIT(et); return; } evl = mtod(m, struct ether_vlan_header *); @@ -1297,7 +1283,6 @@ vlan_input(struct ifnet *ifp, struct mbuf *m) __func__, ifp->if_xname, ifp->if_type); #endif if_inc_counter(ifp, IFCOUNTER_NOPROTO, 1); - NET_EPOCH_EXIT(et); m_freem(m); return; } @@ -1307,7 +1292,6 @@ vlan_input(struct ifnet *ifp, struct mbuf *m) ifv = vlan_gethash(trunk, vid); if (ifv == NULL || !UP_AND_RUNNING(ifv->ifv_ifp)) { - NET_EPOCH_EXIT(et); if_inc_counter(ifp, IFCOUNTER_NOPROTO, 1); m_freem(m); return; @@ -1327,7 +1311,6 @@ vlan_input(struct ifnet *ifp, struct mbuf *m) sizeof(uint8_t), M_NOWAIT); if (mtag == NULL) { if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); - NET_EPOCH_EXIT(et); m_freem(m); return; } @@ -1338,7 +1321,6 @@ vlan_input(struct ifnet *ifp, struct mbuf *m) m->m_pkthdr.rcvif = ifv->ifv_ifp; if_inc_counter(ifv->ifv_ifp, IFCOUNTER_IPACKETS, 1); - NET_EPOCH_EXIT(et); /* Pass it back through the parent's input routine. */ (*ifv->ifv_ifp->if_input)(ifv->ifv_ifp, m); @@ -1364,11 +1346,12 @@ vlan_lladdr_fn(void *arg, int pending __unused) static int vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t vid) { - struct epoch_tracker et; struct ifvlantrunk *trunk; struct ifnet *ifp; int error = 0; + NET_EPOCH_ASSERT(); + /* * We can handle non-ethernet hardware types as long as * they handle the tagging and headers themselves. @@ -1469,9 +1452,7 @@ vlan_config(struct ifvlan *ifv, struct ifnet *p, uint1 ifp->if_link_state = p->if_link_state; - NET_EPOCH_ENTER(et); vlan_capabilities(ifv); - NET_EPOCH_EXIT(et); /* * Set up our interface address to reflect the underlying @@ -1643,17 +1624,14 @@ vlan_setflags(struct ifnet *ifp, int status) static void vlan_link_state(struct ifnet *ifp) { - struct epoch_tracker et; struct ifvlantrunk *trunk; struct ifvlan *ifv; - /* Called from a taskqueue_swi task, so we cannot sleep. */ - NET_EPOCH_ENTER(et); + NET_EPOCH_ASSERT(); + trunk = ifp->if_vlantrunk; - if (trunk == NULL) { - NET_EPOCH_EXIT(et); + if (trunk == NULL) return; - } TRUNK_WLOCK(trunk); VLAN_FOREACH(ifv, trunk) { @@ -1662,7 +1640,6 @@ vlan_link_state(struct ifnet *ifp) trunk->parent->if_link_state); } TRUNK_WUNLOCK(trunk); - NET_EPOCH_EXIT(et); } static void @@ -1674,8 +1651,9 @@ vlan_capabilities(struct ifvlan *ifv) int cap = 0, ena = 0, mena; u_long hwa = 0; - VLAN_SXLOCK_ASSERT(); NET_EPOCH_ASSERT(); + VLAN_SXLOCK_ASSERT(); + p = PARENT(ifv); ifp = ifv->ifv_ifp; @@ -1791,7 +1769,6 @@ vlan_capabilities(struct ifvlan *ifv) static void vlan_trunk_capabilities(struct ifnet *ifp) { - struct epoch_tracker et; struct ifvlantrunk *trunk; struct ifvlan *ifv; @@ -1801,11 +1778,8 @@ vlan_trunk_capabilities(struct ifnet *ifp) VLAN_SUNLOCK(); return; } - NET_EPOCH_ENTER(et); - VLAN_FOREACH(ifv, trunk) { + VLAN_FOREACH(ifv, trunk) vlan_capabilities(ifv); - } - NET_EPOCH_EXIT(et); VLAN_SUNLOCK(); } @@ -1820,6 +1794,8 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data struct vlanreq vlr; int error = 0; + NET_EPOCH_ASSERT(); + ifr = (struct ifreq *)data; ifa = (struct ifaddr *) data; ifv = ifp->if_softc; @@ -1996,13 +1972,8 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data VLAN_SLOCK(); ifv->ifv_capenable = ifr->ifr_reqcap; trunk = TRUNK(ifv); - if (trunk != NULL) { - struct epoch_tracker et; - - NET_EPOCH_ENTER(et); + if (trunk != NULL) vlan_capabilities(ifv); - NET_EPOCH_EXIT(et); - } VLAN_SUNLOCK(); break; Modified: head/sys/net/netisr.c ============================================================================== --- head/sys/net/netisr.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/netisr.c Mon Oct 7 22:40:05 2019 (r353292) @@ -861,6 +861,7 @@ static u_int netisr_process_workstream_proto(struct netisr_workstream *nwsp, u_int proto) { struct netisr_work local_npw, *npwp; + struct epoch_tracker et; u_int handled; struct mbuf *m; @@ -890,6 +891,7 @@ netisr_process_workstream_proto(struct netisr_workstre npwp->nw_len = 0; nwsp->nws_pendingbits &= ~(1 << proto); NWS_UNLOCK(nwsp); + NET_EPOCH_ENTER(et); while ((m = local_npw.nw_head) != NULL) { local_npw.nw_head = m->m_nextpkt; m->m_nextpkt = NULL; @@ -902,6 +904,7 @@ netisr_process_workstream_proto(struct netisr_workstre netisr_proto[proto].np_handler(m); CURVNET_RESTORE(); } + NET_EPOCH_EXIT(et); KASSERT(local_npw.nw_len == 0, ("%s(%u): len %u", __func__, proto, local_npw.nw_len)); if (netisr_proto[proto].np_drainedcpu) @@ -1088,6 +1091,7 @@ netisr_dispatch_src(u_int proto, uintptr_t source, str int dosignal, error; u_int cpuid, dispatch_policy; + NET_EPOCH_ASSERT(); KASSERT(proto < NETISR_MAXPROT, ("%s: invalid proto %u", __func__, proto)); #ifdef NETISR_LOCKING Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/route.c Mon Oct 7 22:40:05 2019 (r353292) @@ -593,12 +593,12 @@ rtredirect_fib(struct sockaddr *dst, int error = 0; short *stat = NULL; struct rt_addrinfo info; - struct epoch_tracker et; struct ifaddr *ifa; struct rib_head *rnh; + NET_EPOCH_ASSERT(); + ifa = NULL; - NET_EPOCH_ENTER(et); rnh = rt_tables_get_rnh(fibnum, dst->sa_family); if (rnh == NULL) { error = EAFNOSUPPORT; @@ -693,7 +693,6 @@ done: if (rt) RTFREE_LOCKED(rt); out: - NET_EPOCH_EXIT(et); if (error) V_rtstat.rts_badredirect++; else if (stat != NULL) Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Mon Oct 7 20:41:55 2019 (r353291) +++ head/sys/net/rtsock.c Mon Oct 7 22:40:05 2019 (r353292) @@ -560,6 +560,7 @@ route_output(struct mbuf *m, struct socket *so, ...) struct rib_head *rnh; struct rt_addrinfo info; struct sockaddr_storage ss; + struct epoch_tracker et; #ifdef INET6 struct sockaddr_in6 *sin6; int i, rti_need_deembed = 0; @@ -579,6 +580,7 @@ route_output(struct mbuf *m, struct socket *so, ...) return (ENOBUFS); if ((m->m_flags & M_PKTHDR) == 0) panic("route_output"); + NET_EPOCH_ENTER(et); len = m->m_pkthdr.len; if (len < sizeof(*rtm) || len != mtod(m, struct rt_msghdr *)->rtm_msglen) @@ -803,11 +805,11 @@ route_output(struct mbuf *m, struct socket *so, ...) NET_EPOCH_ENTER(et); ifa = ifa_ifwithnet(info.rti_info[RTAX_DST], 1, RT_ALL_FIBS); + NET_EPOCH_EXIT(et); if (ifa != NULL) rt_maskedcopy(ifa->ifa_addr, &laddr, ifa->ifa_netmask); - NET_EPOCH_EXIT(et); } else rt_maskedcopy(rt->rt_ifa->ifa_addr, &laddr, @@ -898,6 +900,7 @@ report: } flush: + NET_EPOCH_EXIT(et); if (rt != NULL) RTFREE(rt); /* @@ -1761,11 +1764,9 @@ sysctl_iflist(int af, struct walkarg *w) struct rt_addrinfo info; int len, error = 0; struct sockaddr_storage ss; - struct epoch_tracker et; bzero((caddr_t)&info, sizeof(info)); bzero(&ifd, sizeof(ifd)); - NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { if (w->w_arg && w->w_arg != ifp->if_index) continue; @@ -1815,7 +1816,6 @@ sysctl_iflist(int af, struct walkarg *w) info.rti_info[RTAX_BRD] = NULL; } done: - NET_EPOCH_EXIT(et); return (error); } @@ -1823,16 +1823,16 @@ static int sysctl_ifmalist(int af, struct walkarg *w) { struct rt_addrinfo info; - struct epoch_tracker et; struct ifaddr *ifa; struct ifmultiaddr *ifma; struct ifnet *ifp; int error, len; + NET_EPOCH_ASSERT(); + error = 0; bzero((caddr_t)&info, sizeof(info)); - NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { if (w->w_arg && w->w_arg != ifp->if_index) continue; @@ -1867,7 +1867,6 @@ sysctl_ifmalist(int af, struct walkarg *w) if (error != 0) break; } - NET_EPOCH_EXIT(et); return (error); } @@ -1875,6 +1874,7 @@ static int sysctl_rtsock(SYSCTL_HANDLER_ARGS) { RIB_RLOCK_TRACKER; + struct epoch_tracker et; int *name = (int *)arg1; u_int namelen = arg2; struct rib_head *rnh = NULL; /* silence compiler. */ @@ -1918,8 +1918,8 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) w.w_tmemsize = 65536; w.w_tmem = malloc(w.w_tmemsize, M_TEMP, M_WAITOK); + NET_EPOCH_ENTER(et); switch (w.w_op) { - case NET_RT_DUMP: case NET_RT_FLAGS: if (af == 0) { /* dump all tables */ @@ -1946,13 +1946,9 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) for (error = 0; error == 0 && i <= lim; i++) { rnh = rt_tables_get_rnh(fib, i); if (rnh != NULL) { - struct epoch_tracker et; - RIB_RLOCK(rnh); - NET_EPOCH_ENTER(et); error = rnh->rnh_walktree(&rnh->head, sysctl_dumpentry, &w); - NET_EPOCH_EXIT(et); RIB_RUNLOCK(rnh); } else if (af != 0) error = EAFNOSUPPORT; @@ -1968,6 +1964,7 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS) error = sysctl_ifmalist(af, &w); break; } + NET_EPOCH_EXIT(et); free(w.w_tmem, M_TEMP); return (error); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Oct 7 23:19:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 965F313BEDD; Mon, 7 Oct 2019 23:19: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 46nGdV2w4hz3CRq; Mon, 7 Oct 2019 23:19: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 443FA1DEB5; Mon, 7 Oct 2019 23:19: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 x97NJAC5089385; Mon, 7 Oct 2019 23:19:10 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97NJAEj089384; Mon, 7 Oct 2019 23:19:10 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910072319.x97NJAEj089384@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 Oct 2019 23:19:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353293 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 353293 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 23:19:10 -0000 Author: mjg Date: Mon Oct 7 23:19:09 2019 New Revision: 353293 URL: https://svnweb.freebsd.org/changeset/base/353293 Log: vm: stop trylocking page queues in vm_page_pqbatch_submit About 11 minutes of poudriere -s -j 104 and probing on return value of trylocks reveals that over 10% of attempts fail, which in turn means there are more atomics performed than necessary. Trylocking was there to try preventing migration, but it's not very likely to happen if the lock is uncontested. Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21925 Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Mon Oct 7 22:40:05 2019 (r353292) +++ head/sys/vm/vm_page.c Mon Oct 7 23:19:09 2019 (r353293) @@ -3216,12 +3216,10 @@ vm_page_pqbatch_submit(vm_page_t m, uint8_t queue) critical_exit(); return; } - if (!vm_pagequeue_trylock(pq)) { - critical_exit(); - vm_pagequeue_lock(pq); - critical_enter(); - bq = DPCPU_PTR(pqbatch[domain][queue]); - } + critical_exit(); + vm_pagequeue_lock(pq); + critical_enter(); + bq = DPCPU_PTR(pqbatch[domain][queue]); vm_pqbatch_process(pq, bq, queue); /* From owner-svn-src-head@freebsd.org Mon Oct 7 23:31:18 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D42C13C1E7; Mon, 7 Oct 2019 23:31:18 +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 46nGvV32dQz3D1X; Mon, 7 Oct 2019 23:31:18 +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 4C8C11E0C1; Mon, 7 Oct 2019 23:31:18 +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 x97NVIUh098530; Mon, 7 Oct 2019 23:31:18 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97NVIEe098529; Mon, 7 Oct 2019 23:31:18 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910072331.x97NVIEe098529@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 7 Oct 2019 23:31:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353294 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 353294 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 23:31:18 -0000 Author: markj Date: Mon Oct 7 23:31:17 2019 New Revision: 353294 URL: https://svnweb.freebsd.org/changeset/base/353294 Log: Assert that the PGA_{WRITEABLE,EXECUTABLE} flags do not leak. Reviewed by: alc, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21783 Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Mon Oct 7 23:19:09 2019 (r353293) +++ head/sys/vm/vm_page.c Mon Oct 7 23:31:17 2019 (r353294) @@ -3546,12 +3546,15 @@ vm_page_free_prep(vm_page_t m) m, i, (uintmax_t)*p)); } #endif - if ((m->oflags & VPO_UNMANAGED) == 0) + if ((m->oflags & VPO_UNMANAGED) == 0) { KASSERT(!pmap_page_is_mapped(m), ("vm_page_free_prep: freeing mapped page %p", m)); - else + KASSERT((m->aflags & (PGA_EXECUTABLE | PGA_WRITEABLE)) == 0, + ("vm_page_free_prep: mapping flags set in page %p", m)); + } else { KASSERT(m->queue == PQ_NONE, ("vm_page_free_prep: unmanaged page %p is queued", m)); + } VM_CNT_INC(v_tfree); if (vm_page_sbusied(m)) From owner-svn-src-head@freebsd.org Mon Oct 7 23:35:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 31E7913C3F1; Mon, 7 Oct 2019 23:35:24 +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 46nH0D0Xw2z3DLj; Mon, 7 Oct 2019 23:35:24 +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 E5D881E22D; Mon, 7 Oct 2019 23:35:23 +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 x97NZNct001165; Mon, 7 Oct 2019 23:35:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97NZNOV001164; Mon, 7 Oct 2019 23:35:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910072335.x97NZNOV001164@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 7 Oct 2019 23:35:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353295 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 353295 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 23:35:24 -0000 Author: markj Date: Mon Oct 7 23:35:23 2019 New Revision: 353295 URL: https://svnweb.freebsd.org/changeset/base/353295 Log: Improve locking in the IPV6_V6ONLY socket option handler. Acquire the inp lock before checking whether the socket is already bound, and around updates to the inp_vflag field. MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21867 Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Mon Oct 7 23:31:17 2019 (r353294) +++ head/sys/netinet6/ip6_output.c Mon Oct 7 23:35:23 2019 (r353295) @@ -1806,21 +1806,24 @@ do { \ #endif case IPV6_V6ONLY: - /* - * make setsockopt(IPV6_V6ONLY) - * available only prior to bind(2). - * see ipng mailing list, Jun 22 2001. - */ + INP_WLOCK(inp); if (inp->inp_lport || !IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) { + /* + * The socket is already bound. + */ + INP_WUNLOCK(inp); error = EINVAL; break; } - OPTSET(IN6P_IPV6_V6ONLY); - if (optval) + if (optval) { + inp->inp_flags |= IN6P_IPV6_V6ONLY; inp->inp_vflag &= ~INP_IPV4; - else + } else { + inp->inp_flags &= ~IN6P_IPV6_V6ONLY; inp->inp_vflag |= INP_IPV4; + } + INP_WUNLOCK(inp); break; case IPV6_RECVTCLASS: /* cannot mix with RFC2292 XXX */ From owner-svn-src-head@freebsd.org Tue Oct 8 02:36:54 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 76B1412D62D; Tue, 8 Oct 2019 02:36:54 +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 46nM1f2WQTz48jv; Tue, 8 Oct 2019 02:36:54 +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 3AF8D213F8; Tue, 8 Oct 2019 02:36:54 +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 x982asWr009112; Tue, 8 Oct 2019 02:36:54 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x982as71009111; Tue, 8 Oct 2019 02:36:54 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910080236.x982as71009111@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 8 Oct 2019 02:36:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353297 - head/stand/powerpc/ofw X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/stand/powerpc/ofw X-SVN-Commit-Revision: 353297 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 02:36:54 -0000 Author: jhibbits Date: Tue Oct 8 02:36:53 2019 New Revision: 353297 URL: https://svnweb.freebsd.org/changeset/base/353297 Log: loader/powerpc64: Include generic PVR values in CAS architecture list Add generic PVR values for PowerISA 2.07 and 3.00. This allows booting pseries in QEMU with compatibilty mode enabled. Submitted by: Shawn Anastasio Modified: head/stand/powerpc/ofw/cas.c Modified: head/stand/powerpc/ofw/cas.c ============================================================================== --- head/stand/powerpc/ofw/cas.c Tue Oct 8 01:36:34 2019 (r353296) +++ head/stand/powerpc/ofw/cas.c Tue Oct 8 02:36:53 2019 (r353297) @@ -30,12 +30,16 @@ __FBSDID("$FreeBSD$"); #include /* PVR */ -#define PVR_VER_P8E 0x004b0000 -#define PVR_VER_P8NVL 0x004c0000 -#define PVR_VER_P8 0x004d0000 -#define PVR_VER_P9 0x004e0000 -#define PVR_VER_MASK 0xffff0000 +#define PVR_CPU_P8E 0x004b0000 +#define PVR_CPU_P8NVL 0x004c0000 +#define PVR_CPU_P8 0x004d0000 +#define PVR_CPU_P9 0x004e0000 +#define PVR_CPU_MASK 0xffff0000 +#define PVR_ISA_207 0x0f000004 +#define PVR_ISA_300 0x0f000005 +#define PVR_ISA_MASK 0xffffffff + /* loader version of kernel's CPU_MAXSIZE */ #define MAX_CPUS ((uint32_t)256u) @@ -106,7 +110,7 @@ struct opt_vec5 { } __packed; static struct ibm_arch_vec { - struct pvr pvr_list[5]; + struct pvr pvr_list[7]; uint8_t num_opts; struct opt_vec_ignore vec1; struct opt_vec_ignore vec2; @@ -115,10 +119,12 @@ static struct ibm_arch_vec { struct opt_vec5 vec5; } __packed ibm_arch_vec = { /* pvr_list */ { - { PVR_VER_MASK, PVR_VER_P8 }, /* POWER8 */ - { PVR_VER_MASK, PVR_VER_P8E }, /* POWER8E */ - { PVR_VER_MASK, PVR_VER_P8NVL }, /* POWER8NVL */ - { PVR_VER_MASK, PVR_VER_P9 }, /* POWER9 */ + { PVR_CPU_MASK, PVR_CPU_P8 }, /* POWER8 */ + { PVR_CPU_MASK, PVR_CPU_P8E }, /* POWER8E */ + { PVR_CPU_MASK, PVR_CPU_P8NVL }, /* POWER8NVL */ + { PVR_CPU_MASK, PVR_CPU_P9 }, /* POWER9 */ + { PVR_ISA_MASK, PVR_ISA_207 }, /* All ISA 2.07 */ + { PVR_ISA_MASK, PVR_ISA_300 }, /* All ISA 3.00 */ { 0, 0xffffffffu } /* terminator */ }, 4, /* num_opts (4 actually means 5 option vectors) */ @@ -192,11 +198,11 @@ ppc64_cas(void) cell_t err; /* Perform CAS only for POWER8 and later cores */ - switch (mfpvr() & PVR_VER_MASK) { - case PVR_VER_P8: - case PVR_VER_P8E: - case PVR_VER_P8NVL: - case PVR_VER_P9: + switch (mfpvr() & PVR_CPU_MASK) { + case PVR_CPU_P8: + case PVR_CPU_P8E: + case PVR_CPU_P8NVL: + case PVR_CPU_P9: break; default: return (0); From owner-svn-src-head@freebsd.org Tue Oct 8 01:36:34 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F2653121E2E; Tue, 8 Oct 2019 01:36:34 +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 46nKh25z5lz3ylq; Tue, 8 Oct 2019 01:36:34 +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 B070920913; Tue, 8 Oct 2019 01:36:34 +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 x981aY21073146; Tue, 8 Oct 2019 01:36:34 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x981aYTq073145; Tue, 8 Oct 2019 01:36:34 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910080136.x981aYTq073145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 8 Oct 2019 01:36:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353296 - head/sys/powerpc/include X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/include X-SVN-Commit-Revision: 353296 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 01:36:35 -0000 Author: jhibbits Date: Tue Oct 8 01:36:34 2019 New Revision: 353296 URL: https://svnweb.freebsd.org/changeset/base/353296 Log: powerpc: Implement atomic_(f)cmpset_ for short and char | This adds two implementations for each atomic_fcmpset_ and atomic_cmpset_ short and char functions, selectable at compile time for the target architecture. By default, it uses a generic shift-and-mask to perform atomic updates to sub-components of 32-bit words from . However, if ISA_206_ATOMICS is defined it uses the ll/sc instructions for halfword and bytes, introduced in PowerISA 2.06. These instructions are supported by all IBM processors from POWER7 on, as well as the Freescale/NXP e6500 core. Although the e5500 and e500mc both implement PowerISA 2.06 they do not implement these instructions. As part of this, clean up the atomic_(f)cmpset_acq and _rel wrappers, by using macros to reduce code duplication. ISA_206_ATOMICS requires clang or newer binutils (2.20 or later). Differential Revision: https://reviews.freebsd.org/D21682 Modified: head/sys/powerpc/include/atomic.h Modified: head/sys/powerpc/include/atomic.h ============================================================================== --- head/sys/powerpc/include/atomic.h Mon Oct 7 23:35:23 2019 (r353295) +++ head/sys/powerpc/include/atomic.h Tue Oct 8 01:36:34 2019 (r353296) @@ -560,7 +560,57 @@ atomic_store_rel_long(volatile u_long *addr, u_long va * two values are equal, update the value of *p with newval. Returns * zero if the compare failed, nonzero otherwise. */ +#ifdef ISA_206_ATOMICS static __inline int +atomic_cmpset_char(volatile u_char *p, u_char cmpval, u_char newval) +{ + int ret; + + __asm __volatile ( + "1:\tlbarx %0, 0, %2\n\t" /* load old value */ + "cmplw %3, %0\n\t" /* compare */ + "bne- 2f\n\t" /* exit if not equal */ + "stbcx. %4, 0, %2\n\t" /* attempt to store */ + "bne- 1b\n\t" /* spin if failed */ + "li %0, 1\n\t" /* success - retval = 1 */ + "b 3f\n\t" /* we've succeeded */ + "2:\n\t" + "stbcx. %0, 0, %2\n\t" /* clear reservation (74xx) */ + "li %0, 0\n\t" /* failure - retval = 0 */ + "3:\n\t" + : "=&r" (ret), "=m" (*p) + : "r" (p), "r" (cmpval), "r" (newval), "m" (*p) + : "cr0", "memory"); + + return (ret); +} + +static __inline int +atomic_cmpset_short(volatile u_short *p, u_short cmpval, u_short newval) +{ + int ret; + + __asm __volatile ( + "1:\tlharx %0, 0, %2\n\t" /* load old value */ + "cmplw %3, %0\n\t" /* compare */ + "bne- 2f\n\t" /* exit if not equal */ + "sthcx. %4, 0, %2\n\t" /* attempt to store */ + "bne- 1b\n\t" /* spin if failed */ + "li %0, 1\n\t" /* success - retval = 1 */ + "b 3f\n\t" /* we've succeeded */ + "2:\n\t" + "sthcx. %0, 0, %2\n\t" /* clear reservation (74xx) */ + "li %0, 0\n\t" /* failure - retval = 0 */ + "3:\n\t" + : "=&r" (ret), "=m" (*p) + : "r" (p), "r" (cmpval), "r" (newval), "m" (*p) + : "cr0", "memory"); + + return (ret); +} +#endif + +static __inline int atomic_cmpset_int(volatile u_int* p, u_int cmpval, u_int newval) { int ret; @@ -618,40 +668,37 @@ atomic_cmpset_long(volatile u_long* p, u_long cmpval, return (ret); } -static __inline int -atomic_cmpset_acq_int(volatile u_int *p, u_int cmpval, u_int newval) -{ - int retval; +#define ATOMIC_CMPSET_ACQ_REL(type) \ + static __inline int \ + atomic_cmpset_acq_##type(volatile u_##type *p, \ + u_##type cmpval, u_##type newval)\ + {\ + u_##type retval; \ + retval = atomic_cmpset_##type(p, cmpval, newval);\ + __ATOMIC_ACQ();\ + return (retval);\ + }\ + static __inline int \ + atomic_cmpset_rel_##type(volatile u_##type *p, \ + u_##type cmpval, u_##type newval)\ + {\ + __ATOMIC_ACQ();\ + return (atomic_cmpset_##type(p, cmpval, newval));\ + }\ + struct hack - retval = atomic_cmpset_int(p, cmpval, newval); - __ATOMIC_ACQ(); - return (retval); -} +ATOMIC_CMPSET_ACQ_REL(int); +ATOMIC_CMPSET_ACQ_REL(long); -static __inline int -atomic_cmpset_rel_int(volatile u_int *p, u_int cmpval, u_int newval) -{ - __ATOMIC_REL(); - return (atomic_cmpset_int(p, cmpval, newval)); -} -static __inline int -atomic_cmpset_acq_long(volatile u_long *p, u_long cmpval, u_long newval) -{ - u_long retval; +#define atomic_cmpset_8 atomic_cmpset_char +#define atomic_cmpset_acq_8 atomic_cmpset_acq_char +#define atomic_cmpset_rel_8 atomic_cmpset_rel_char - retval = atomic_cmpset_long(p, cmpval, newval); - __ATOMIC_ACQ(); - return (retval); -} +#define atomic_cmpset_16 atomic_cmpset_short +#define atomic_cmpset_acq_16 atomic_cmpset_acq_short +#define atomic_cmpset_rel_16 atomic_cmpset_rel_short -static __inline int -atomic_cmpset_rel_long(volatile u_long *p, u_long cmpval, u_long newval) -{ - __ATOMIC_REL(); - return (atomic_cmpset_long(p, cmpval, newval)); -} - #define atomic_cmpset_32 atomic_cmpset_int #define atomic_cmpset_acq_32 atomic_cmpset_acq_int #define atomic_cmpset_rel_32 atomic_cmpset_rel_int @@ -676,13 +723,65 @@ atomic_cmpset_rel_long(volatile u_long *p, u_long cmpv * zero if the compare failed and sets *cmpval to the read value from *p, * nonzero otherwise. */ +#ifdef ISA_206_ATOMICS static __inline int +atomic_fcmpset_char(volatile u_char *p, u_char *cmpval, u_char newval) +{ + int ret; + + __asm __volatile ( + "lbarx %0, 0, %3\n\t" /* load old value */ + "cmplw %4, %0\n\t" /* compare */ + "bne- 1f\n\t" /* exit if not equal */ + "stbcx. %5, 0, %3\n\t" /* attempt to store */ + "bne- 1f\n\t" /* exit if failed */ + "li %0, 1\n\t" /* success - retval = 1 */ + "b 2f\n\t" /* we've succeeded */ + "1:\n\t" + "stbcx. %0, 0, %3\n\t" /* clear reservation (74xx) */ + "stwx %0, 0, %7\n\t" + "li %0, 0\n\t" /* failure - retval = 0 */ + "2:\n\t" + : "=&r" (ret), "=m" (*p), "=m" (*cmpval) + : "r" (p), "r" (*cmpval), "r" (newval), "m" (*p), "r"(cmpval) + : "cr0", "memory"); + + return (ret); +} + +static __inline int +atomic_fcmpset_short(volatile u_short *p, u_short *cmpval, u_short newval) +{ + int ret; + + __asm __volatile ( + "lharx %0, 0, %3\n\t" /* load old value */ + "cmplw %4, %0\n\t" /* compare */ + "bne- 1f\n\t" /* exit if not equal */ + "sthcx. %5, 0, %3\n\t" /* attempt to store */ + "bne- 1f\n\t" /* exit if failed */ + "li %0, 1\n\t" /* success - retval = 1 */ + "b 2f\n\t" /* we've succeeded */ + "1:\n\t" + "sthcx. %0, 0, %3\n\t" /* clear reservation (74xx) */ + "stwx %0, 0, %7\n\t" + "li %0, 0\n\t" /* failure - retval = 0 */ + "2:\n\t" + : "=&r" (ret), "=m" (*p), "=m" (*cmpval) + : "r" (p), "r" (*cmpval), "r" (newval), "m" (*p), "r"(cmpval) + : "cr0", "memory"); + + return (ret); +} +#endif /* ISA_206_ATOMICS */ + +static __inline int atomic_fcmpset_int(volatile u_int *p, u_int *cmpval, u_int newval) { int ret; __asm __volatile ( - "lwarx %0, 0, %3\n\t" /* load old value */ + "lwarx %0, 0, %3\n\t" /* load old value */ "cmplw %4, %0\n\t" /* compare */ "bne- 1f\n\t" /* exit if not equal */ "stwcx. %5, 0, %3\n\t" /* attempt to store */ @@ -707,12 +806,12 @@ atomic_fcmpset_long(volatile u_long *p, u_long *cmpval __asm __volatile ( #ifdef __powerpc64__ - "ldarx %0, 0, %3\n\t" /* load old value */ + "ldarx %0, 0, %3\n\t" /* load old value */ "cmpld %4, %0\n\t" /* compare */ "bne- 1f\n\t" /* exit if not equal */ "stdcx. %5, 0, %3\n\t" /* attempt to store */ #else - "lwarx %0, 0, %3\n\t" /* load old value */ + "lwarx %0, 0, %3\n\t" /* load old value */ "cmplw %4, %0\n\t" /* compare */ "bne- 1f\n\t" /* exit if not equal */ "stwcx. %5, 0, %3\n\t" /* attempt to store */ @@ -737,40 +836,36 @@ atomic_fcmpset_long(volatile u_long *p, u_long *cmpval return (ret); } -static __inline int -atomic_fcmpset_acq_int(volatile u_int *p, u_int *cmpval, u_int newval) -{ - int retval; +#define ATOMIC_FCMPSET_ACQ_REL(type) \ + static __inline int \ + atomic_fcmpset_acq_##type(volatile u_##type *p, \ + u_##type *cmpval, u_##type newval)\ + {\ + u_##type retval; \ + retval = atomic_fcmpset_##type(p, cmpval, newval);\ + __ATOMIC_ACQ();\ + return (retval);\ + }\ + static __inline int \ + atomic_fcmpset_rel_##type(volatile u_##type *p, \ + u_##type *cmpval, u_##type newval)\ + {\ + __ATOMIC_REL();\ + return (atomic_fcmpset_##type(p, cmpval, newval));\ + }\ + struct hack - retval = atomic_fcmpset_int(p, cmpval, newval); - __ATOMIC_ACQ(); - return (retval); -} +ATOMIC_FCMPSET_ACQ_REL(int); +ATOMIC_FCMPSET_ACQ_REL(long); -static __inline int -atomic_fcmpset_rel_int(volatile u_int *p, u_int *cmpval, u_int newval) -{ - __ATOMIC_REL(); - return (atomic_fcmpset_int(p, cmpval, newval)); -} +#define atomic_fcmpset_8 atomic_fcmpset_char +#define atomic_fcmpset_acq_8 atomic_fcmpset_acq_char +#define atomic_fcmpset_rel_8 atomic_fcmpset_rel_char -static __inline int -atomic_fcmpset_acq_long(volatile u_long *p, u_long *cmpval, u_long newval) -{ - u_long retval; +#define atomic_fcmpset_16 atomic_fcmpset_short +#define atomic_fcmpset_acq_16 atomic_fcmpset_acq_short +#define atomic_fcmpset_rel_16 atomic_fcmpset_rel_short - retval = atomic_fcmpset_long(p, cmpval, newval); - __ATOMIC_ACQ(); - return (retval); -} - -static __inline int -atomic_fcmpset_rel_long(volatile u_long *p, u_long *cmpval, u_long newval) -{ - __ATOMIC_REL(); - return (atomic_fcmpset_long(p, cmpval, newval)); -} - #define atomic_fcmpset_32 atomic_fcmpset_int #define atomic_fcmpset_acq_32 atomic_fcmpset_acq_int #define atomic_fcmpset_rel_32 atomic_fcmpset_rel_int @@ -857,9 +952,6 @@ atomic_swap_64(volatile u_long *p, u_long v) #define atomic_swap_ptr(p,v) atomic_swap_32((volatile u_int *)(p), v) #endif -#undef __ATOMIC_REL -#undef __ATOMIC_ACQ - static __inline void atomic_thread_fence_acq(void) { @@ -887,5 +979,19 @@ atomic_thread_fence_seq_cst(void) __asm __volatile("sync" : : : "memory"); } + +#ifndef ISA_206_ATOMICS +#include +#endif + +/* These need sys/_atomic_subword.h on non-ISA-2.06-atomic platforms. */ +ATOMIC_CMPSET_ACQ_REL(char); +ATOMIC_CMPSET_ACQ_REL(short); + +ATOMIC_FCMPSET_ACQ_REL(char); +ATOMIC_FCMPSET_ACQ_REL(short); + +#undef __ATOMIC_REL +#undef __ATOMIC_ACQ #endif /* ! _MACHINE_ATOMIC_H_ */ From owner-svn-src-head@freebsd.org Tue Oct 8 04:21:33 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB0311372B8; Tue, 8 Oct 2019 04:21:33 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (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 46nPLM6BwXz4KdD; Tue, 8 Oct 2019 04:21:31 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id Hh01iRkEksAGkHh02izi1s; Mon, 07 Oct 2019 22:21:28 -0600 X-Authority-Analysis: v=2.3 cv=WeVylHpX c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=pGLkceISAAAA:8 a=VxmjJ2MpAAAA:8 a=E0VOYZsqOlr1MJonfLYA:9 a=uT4s0SZnczono4wg:21 a=FDoMeTTGCTezHlN_:21 a=YkHeFceOPo6kCEkl:21 a=CjuIK1q_8ugA:10 a=a5Ldh8olR6cA:10 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 a=7gXAzLPJhVmCkEl4_tsf:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 9D34F2241; Mon, 7 Oct 2019 21:21:24 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x984LO9H003377; Mon, 7 Oct 2019 21:21:24 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x984LO1D003374; Mon, 7 Oct 2019 21:21:24 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910080421.x984LO1D003374@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, x11@freebsd.org Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 In-reply-to: References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> <201910071612.x97GCVx3003714@slippy.cwsent.com> Comments: In-reply-to Mateusz Guzik message dated "Mon, 07 Oct 2019 19:09:27 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 07 Oct 2019 21:21:24 -0700 X-CMAE-Envelope: MS4wfLL3YvLovsi/9jEcJZ70BRCUkywT2EDhSndp+J0kCCXtwD2QtgY6OI+CIptv7m0MIrkYdLMz7SahOMbVN2pApjFrS2HoznOupzgGqXg9vRJ1+hahTbqc gZWbDtL2oBcqo6E2GT4GJ7fRZ+ekyWdwMP7mE2ozLvxr42BvUlQVeIkZf1YEm6u0jGosF5aa8AfxdCi5vZhRqESz2OyIf6l3ExzjFB5UiwCeWmDN4KI6JduJ 50qVHanFf9vxcsOaplqjt1DPvjPWfK8lDjPUJ3YkDKOEAq+z5zurfSz3abLCKWV2 X-Rspamd-Queue-Id: 46nPLM6BwXz4KdD X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.134.12) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-3.98 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; RCPT_COUNT_FIVE(0.00)[6]; REPLYTO_EQ_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[12.134.59.64.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; 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:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.38)[ip: (-6.37), ipnet: 64.59.128.0/20(-3.06), asn: 6327(-2.38), country: CA(-0.09)]; RWL_MAILSPIKE_POSSIBLE(0.00)[12.134.59.64.rep.mailspike.net : 127.0.0.17] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 04:21:33 -0000 Still no joy. I still think drm-current-kmod is involved because these are produced just prior to the panic whereas the dmesg buffer is clean of them without r353149. Unread portion of the kernel message buffer: WARNING !drm_modeset_is_locked(&crtc->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 577 WARNING !drm_modeset_is_locked(&crtc->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 577 WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper .c:622 WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper .c:622 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: 821 <4>WARN_ON(!mutex_is_locked(&dev->struct_mutex))WARN_ON(!mutex_is_locked(&de v->struct_mutex)) <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> lock)) My servers (no X11) work well with this. It's only drm-current-kmod that has gas with this rev. I've cc'd the maintainer of drm-current-kmod (x11@). -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. In message , Mateusz Guzik writes: > Does this fix it for you? > > https://people.freebsd.org/~mjg/pmap-fict.diff > > On 10/7/19, Mateusz Guzik wrote: > > Ok, looks ilke it does not like the sparse array for fictitious > > mappings. I'll see about a patch. > > > > On 10/7/19, Cy Schubert wrote: > >> In message > >> >> om> > >> , Mateusz Guzik writes: > >>> Can you show: > >>> > >>> sysctl vm.phys_segso > >> > >> vm.phys_segs: > >> SEGMENT 0: > >> > >> start: 0x10000 > >> end: 0x9d000 > >> domain: 0 > >> free list: 0xffffffff80f31070 > >> > >> SEGMENT 1: > >> > >> start: 0x100000 > >> end: 0x1000000 > >> domain: 0 > >> free list: 0xffffffff80f31070 > >> > >> SEGMENT 2: > >> > >> start: 0x1000000 > >> end: 0x1ca4000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 3: > >> > >> start: 0x1cb3000 > >> end: 0x1ce3000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 4: > >> > >> start: 0x1f00000 > >> end: 0x20000000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 5: > >> > >> start: 0x20200000 > >> end: 0x40000000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 6: > >> > >> start: 0x40203000 > >> end: 0xd4993000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 7: > >> > >> start: 0xd6fff000 > >> end: 0xd7000000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 8: > >> > >> start: 0x100001000 > >> end: 0x211d4d000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> SEGMENT 9: > >> > >> start: 0x21fc00000 > >> end: 0x21fd44000 > >> domain: 0 > >> free list: 0xffffffff80f30e00 > >> > >> > >> > >>> > >>> and from the crashdump: > >>> p pv_table > >> > >> $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 > >> > >> kgdb) p *pv_table > >> $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv > >> list", > >> lo_flags = 623050752, lo_data = 0, lo_witness = > >> 0x800000000201f163}, > >> rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, > >> tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, > >> pv_invl_gen = 0} > >> (kgdb) > >> > >> > >> -- > >> Cheers, > >> Cy Schubert > >> FreeBSD UNIX: Web: http://www.FreeBSD.org > >> > >> The need of the many outweighs the greed of the few. > >> > >> > >>> > >>> On 10/7/19, Cy Schubert wrote: > >>> > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy > >>> > Schubert > >>> > writes: > >>> >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz > >>> >> Guzik > >>> >> writes > >>> >> : > >>> >> > Author: mjg > >>> >> > Date: Sun Oct 6 22:13:35 2019 > >>> >> > New Revision: 353149 > >>> >> > URL: https://svnweb.freebsd.org/changeset/base/353149 > >>> >> > > >>> >> > Log: > >>> >> > amd64 pmap: implement per-superpage locks > >>> >> > > >>> >> > The current 256-lock sized array is a problem in the following > >>> >> > ways: > >>> >> > - it's way too small > >>> >> > - there are 2 locks per cacheline > >>> >> > - it is not NUMA-aware > >>> >> > > >>> >> > Solve these issues by introducing per-superpage locks backed by > >>> >> > pages > >>> >> > allocated from respective domains. > >>> >> > > >>> >> > This significantly reduces contention e.g. during poudriere -j > >>> >> > 104. > >>> >> > See the review for results. > >>> >> > > >>> >> > Reviewed by: kib > >>> >> > Discussed with: jeff > >>> >> > Sponsored by: The FreeBSD Foundation > >>> >> > Differential Revision: https://reviews.freebsd.org/D21833 > >>> >> > > >>> >> > Modified: > >>> >> > head/sys/amd64/amd64/pmap.c > >>> >> > > >>> >> > Modified: head/sys/amd64/amd64/pmap.c > >>> >> > ==================================================================== > ==== > >>> === > >>> >> == > >>> >> > = > >>> >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 > (r35314 > >>> >> > 8) > >>> >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 > (r35314 > >>> >> > 9) > >>> >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) > >>> >> > #define PV_STAT(x) do { } while (0) > >>> >> > #endif > >>> >> > > >>> >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) > >>> >> > +#undef pa_index > >>> >> > +#define pa_index(pa) ({ > \ > >>> >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ > >>> >> > + ("address %lx beyond the last segment", (pa))); \ > >>> >> > + (pa) >> PDRSHIFT; \ > >>> >> > +}) > >>> >> > +#if VM_NRESERVLEVEL > 0 > >>> >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) > >>> >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) > >>> >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ > >>> >> > + (&(pa_to_pmdp(pa)->pv_lock)) > >>> >> > +#else > >>> >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) > >>> >> > > >>> >> > #define NPV_LIST_LOCKS MAXCPU > >>> >> > > >>> >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ > >>> >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) > >>> >> > +#endif > >>> >> > > >>> >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ > >>> >> > struct rwlock **_lockp = (lockp); \ > >>> >> > @@ -400,14 +412,22 @@ static int pmap_initialized; > >>> >> > > >>> >> > /* > >>> >> > * Data for the pv entry allocation mechanism. > >>> >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] > >>> >> > - * elements, but reads are not. > >>> >> > + * Updates to pv_invl_gen are protected by the pv list lock but > >>> >> > reads > >>> >> > are > >>> >> no > >>> >> > t. > >>> >> > */ > >>> >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = > >>> >> > TAILQ_HEAD_INITIALIZER(pv_chu > >>> >> nk > >>> >> > s); > >>> >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; > >>> >> > +#if VM_NRESERVLEVEL > 0 > >>> >> > +struct pmap_large_md_page { > >>> >> > + struct rwlock pv_lock; > >>> >> > + struct md_page pv_page; > >>> >> > + u_long pv_invl_gen; > >>> >> > +}; > >>> >> > +static struct pmap_large_md_page *pv_table; > >>> >> > +#else > >>> >> > static struct rwlock __exclusive_cache_line > >>> >> > pv_list_locks[NPV_LIST_LOCKS]; > >>> >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; > >>> >> > static struct md_page *pv_table; > >>> >> > +#endif > >>> >> > static struct md_page pv_dummy; > >>> >> > > >>> >> > /* > >>> >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, > >>> >> > invl_wait_slow, > >>> >> > CTLFL > >>> >> A > >>> >> > "Number of slow invalidation waits for lockless DI"); > >>> >> > #endif > >>> >> > > >>> >> > +#if VM_NRESERVLEVEL > 0 > >>> >> > static u_long * > >>> >> > pmap_delayed_invl_genp(vm_page_t m) > >>> >> > { > >>> >> > > >>> >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); > >>> >> > +} > >>> >> > +#else > >>> >> > +static u_long * > >>> >> > +pmap_delayed_invl_genp(vm_page_t m) > >>> >> > +{ > >>> >> > + > >>> >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % NPV_LIST_LO > >>> CKS]); > >>> >> > } > >>> >> > +#endif > >>> >> > > >>> >> > static void > >>> >> > pmap_delayed_invl_callout_func(void *arg __unused) > >>> >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) > >>> >> > m->md.pat_mode = PAT_WRITE_BACK; > >>> >> > } > >>> >> > > >>> >> > +#if VM_NRESERVLEVEL > 0 > >>> >> > +static void > >>> >> > +pmap_init_pv_table(void) > >>> >> > +{ > >>> >> > + struct pmap_large_md_page *pvd; > >>> >> > + vm_size_t s; > >>> >> > + long start, end, highest, pv_npg; > >>> >> > + int domain, i, j, pages; > >>> >> > + > >>> >> > + /* > >>> >> > + * We strongly depend on the size being a power of two, so the > >>> assert > >>> >> > + * is overzealous. However, should the struct be resized to a > >>> >> > + * different power of two, the code below needs to be revisited > >>> . > >>> >> > + */ > >>> >> > + CTASSERT((sizeof(*pvd) == 64)); > >>> >> > + > >>> >> > + /* > >>> >> > + * Calculate the size of the array. > >>> >> > + */ > >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); > >>> >> > + s = round_page(s); > >>> >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); > >>> >> > + if (pv_table == NULL) > >>> >> > + panic("%s: kva_alloc failed\n", __func__); > >>> >> > + > >>> >> > + /* > >>> >> > + * Iterate physical segments to allocate space for respective p > >>> ages. > >>> >> > + */ > >>> >> > + highest = -1; > >>> >> > + s = 0; > >>> >> > + for (i = 0; i < vm_phys_nsegs; i++) { > >>> >> > + start = vm_phys_segs[i].start / NBPDR; > >>> >> > + end = vm_phys_segs[i].end / NBPDR; > >>> >> > + domain = vm_phys_segs[i].domain; > >>> >> > + > >>> >> > + if (highest >= end) > >>> >> > + continue; > >>> >> > + > >>> >> > + if (start < highest) { > >>> >> > + start = highest + 1; > >>> >> > + pvd = &pv_table[start]; > >>> >> > + } else { > >>> >> > + /* > >>> >> > + * The lowest address may land somewhere in the > >>> middle > >>> >> > + * of our page. Simplify the code by pretending > >>> it is > >>> >> > + * at the beginning. > >>> >> > + */ > >>> >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); > >>> >> > + pvd = (struct pmap_large_md_page *)trunc_page(p > >>> vd); > >>> >> > + start = pvd - pv_table; > >>> >> > + } > >>> >> > + > >>> >> > + pages = end - start + 1; > >>> >> > + s = round_page(pages * sizeof(*pvd)); > >>> >> > + highest = start + (s / sizeof(*pvd)) - 1; > >>> >> > + > >>> >> > + for (j = 0; j < s; j += PAGE_SIZE) { > >>> >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, > >>> >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); > >>> >> > + if (m == NULL) > >>> >> > + panic("vm_page_alloc_domain failed for > >>> %lx\n", > >>> >> > (vm_offset_t)pvd + j); > >>> >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); > >>> >> > + } > >>> >> > + > >>> >> > + for (j = 0; j < s / sizeof(*pvd); j++) { > >>> >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW > >>> _NEW); > >>> >> > + TAILQ_INIT(&pvd->pv_page.pv_list); > >>> >> > + pvd->pv_page.pv_gen = 0; > >>> >> > + pvd->pv_page.pat_mode = 0; > >>> >> > + pvd->pv_invl_gen = 0; > >>> >> > + pvd++; > >>> >> > + } > >>> >> > + } > >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); > >>> >> > +} > >>> >> > +#else > >>> >> > +static void > >>> >> > +pmap_init_pv_table(void) > >>> >> > +{ > >>> >> > + vm_size_t s; > >>> >> > + long i, pv_npg; > >>> >> > + > >>> >> > + /* > >>> >> > + * Initialize the pool of pv list locks. > >>> >> > + */ > >>> >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) > >>> >> > + rw_init(&pv_list_locks[i], "pmap pv list"); > >>> >> > + > >>> >> > + /* > >>> >> > + * Calculate the size of the pv head table for superpages. > >>> >> > + */ > >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >>> >> > + > >>> >> > + /* > >>> >> > + * Allocate memory for the pv head table for superpages. > >>> >> > + */ > >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); > >>> >> > + s = round_page(s); > >>> >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > >>> >> > + for (i = 0; i < pv_npg; i++) > >>> >> > + TAILQ_INIT(&pv_table[i].pv_list); > >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); > >>> >> > +} > >>> >> > +#endif > >>> >> > + > >>> >> > /* > >>> >> > * Initialize the pmap module. > >>> >> > * Called by vm_init, to initialize any structures that the pmap > >>> >> > @@ -1813,8 +1948,7 @@ pmap_init(void) > >>> >> > { > >>> >> > struct pmap_preinit_mapping *ppim; > >>> >> > vm_page_t m, mpte; > >>> >> > - vm_size_t s; > >>> >> > - int error, i, pv_npg, ret, skz63; > >>> >> > + int error, i, ret, skz63; > >>> >> > > >>> >> > /* L1TF, reserve page @0 unconditionally */ > >>> >> > vm_page_blacklist_add(0, bootverbose); > >>> >> > @@ -1902,26 +2036,7 @@ pmap_init(void) > >>> >> > */ > >>> >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, MTX_DEF) > >>> ; > >>> >> > > >>> >> > - /* > >>> >> > - * Initialize the pool of pv list locks. > >>> >> > - */ > >>> >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) > >>> >> > - rw_init(&pv_list_locks[i], "pmap pv list"); > >>> >> > - > >>> >> > - /* > >>> >> > - * Calculate the size of the pv head table for superpages. > >>> >> > - */ > >>> >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >>> >> > - > >>> >> > - /* > >>> >> > - * Allocate memory for the pv head table for superpages. > >>> >> > - */ > >>> >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); > >>> >> > - s = round_page(s); > >>> >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | M_ZERO); > >>> >> > - for (i = 0; i < pv_npg; i++) > >>> >> > - TAILQ_INIT(&pv_table[i].pv_list); > >>> >> > - TAILQ_INIT(&pv_dummy.pv_list); > >>> >> > + pmap_init_pv_table(); > >>> >> > > >>> >> > pmap_initialized = 1; > >>> >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { > >>> >> > > >>> >> > >>> >> This causes a page fault during X (xdm) startup, which loads > >>> >> drm-current-kmod. > >>> >> > >>> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >>> >> 0xfffffe0093e9c260 > >>> >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > >>> >> panic() at panic+0x43/frame 0xfffffe0093e9c310 > >>> >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > >>> >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > >>> >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp > >>> >> = > >>> >> 0xfffffe0093e9c7a0 --- > >>> >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > >>> >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > >>> >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 > >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > >>> >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = > >>> >> 0x7fffffffeaa0 > >>> >> > >>> >> --- > >>> >> Uptime: 3m33s > >>> >> Dumping 945 out of 7974 > >>> >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > >>> >> > >>> >> (kgdb) bt > >>> >> #0 doadump (textdump=1) at pcpu_aux.h:55 > >>> >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) > >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 > >>> >> #2 0xffffffff8068caa9 in vpanic (fmt=, > >>> >> ap=) > >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 > >>> >> #3 0xffffffff8068c8a3 in panic (fmt=) > >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 > >>> >> #4 0xffffffff8098c966 in vm_fault (map=, > >>> >> vaddr=, fault_type=, > >>> >> fault_flags=, m_hold=) > >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 > >>> >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, > >>> >> vaddr=, fault_type=2 '\002', > >>> >> fault_flags=, signo=0x0, ucode=0x0) > >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 > >>> >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, > >>> >> signo=, ucode=) > >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >>> >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) > >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 > >>> >> #8 0xffffffff809f1aac in calltrap () > >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >>> >> ---Type to continue, or q to quit--- > >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=, > >>> >> flags=2677542912, psind=) at atomic.h:221 > >>> >> #10 0xffffffff8098c4a9 in vm_fault (map=, > >>> >> vaddr=, fault_type=232 '\ufffd', > >>> >> fault_flags=, m_hold=0x0) > >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 > >>> >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, > >>> >> vaddr=, fault_type=2 '\002', > >>> >> fault_flags=, signo=0xfffffe0093e9ca84, > >>> >> ucode=0xfffffe0093e9ca80) at > >>> >> /opt/src/svn-current/sys/vm/vm_fault.c:568 > >>> >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, > >>> >> signo=, ucode=) > >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >>> >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) > >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 > >>> >> #14 0xffffffff809f1aac in calltrap () > >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >>> >> #15 0x0000000030e2a9c3 in ?? () > >>> >> Previous frame inner to this frame (corrupt stack?) > >>> >> Current language: auto; currently minimal > >>> >> (kgdb) frame 9 > >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=, > >>> >> flags=2677542912, psind=) at atomic.h:221 > >>> >> 221 ATOMIC_CMPSET(long); > >>> >> (kgdb) l > >>> >> 216 } > >>> >> 217 > >>> >> 218 ATOMIC_CMPSET(char); > >>> >> 219 ATOMIC_CMPSET(short); > >>> >> 220 ATOMIC_CMPSET(int); > >>> >> 221 ATOMIC_CMPSET(long); > >>> >> 222 > >>> >> 223 /* > >>> >> 224 * Atomically add the value of v to the integer pointed to by p > >>> and > >>> >> return > >>> >> 225 * the previous value of *p. > >>> >> (kgdb) > >>> > > >>> > I should use kgdb from ports instead of /usr/libexec version. Similar > >>> > result. > >>> > > >>> > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> > >>> > lock)) > >>> > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 > >>> > cpuid = 1 > >>> > time = 1570417211 > >>> > KDB: stack backtrace: > >>> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >>> > 0xfffffe0093e9c260 > >>> > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > >>> > panic() at panic+0x43/frame 0xfffffe0093e9c310 > >>> > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > >>> > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > >>> > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, rbp > >>> > = > >>> > 0xfffffe0093e9c7a0 --- > >>> > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > >>> > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > >>> > trap() at trap+0x438/frame 0xfffffe0093e9cab0 > >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > >>> > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = > >>> > 0x7fffffffeaa0 > >>> > --- > >>> > Uptime: 3m33s > >>> > Dumping 945 out of 7974 > >>> > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > >>> > > >>> > __curthread () at /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 > >>> > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(st > ruct pcp > >>> u, > >>> > (kgdb) > >>> > > >>> > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 > >>> > (kgdb) frame 10 > >>> > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, > >>> > src=, expect=) > >>> > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 > >>> > 221 ATOMIC_CMPSET(long); > >>> > (kgdb) l > >>> > 216 } > >>> > 217 > >>> > 218 ATOMIC_CMPSET(char); > >>> > 219 ATOMIC_CMPSET(short); > >>> > 220 ATOMIC_CMPSET(int); > >>> > 221 ATOMIC_CMPSET(long); > >>> > 222 > >>> > 223 /* > >>> > 224 * Atomically add the value of v to the integer pointed to by p > >>> > and > >>> > return > >>> > 225 * the previous value of *p. > >>> > (kgdb) > >>> > > >>> > > >>> > > >>> > -- > >>> > Cheers, > >>> > Cy Schubert > >>> > FreeBSD UNIX: Web: http://www.FreeBSD.org > >>> > > >>> > The need of the many outweighs the greed of the few. > >>> > > >>> > > >>> > > >>> > >>> > >>> -- > >>> Mateusz Guzik > >> > >> > >> > >> > >> > > > > > > -- > > Mateusz Guzik > > > > > -- > Mateusz Guzik From owner-svn-src-head@freebsd.org Tue Oct 8 06:56:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2842013B5AC; Tue, 8 Oct 2019 06:56:39 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay05.pair.com (relay05.pair.com [216.92.24.67]) (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 46nSnM02Dsz4SjC; Tue, 8 Oct 2019 06:56:38 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x8.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay05.pair.com (Postfix) with ESMTP id F3BFE1A2C05; Tue, 8 Oct 2019 02:56:36 -0400 (EDT) Received: from x8.osted.lan (localhost [127.0.0.1]) by x8.osted.lan (8.15.2/8.15.2) with ESMTPS id x986uYjo064255 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 8 Oct 2019 08:56:34 +0200 (CEST) (envelope-from pho@x8.osted.lan) Received: (from pho@localhost) by x8.osted.lan (8.15.2/8.15.2/Submit) id x986uYtE064254; Tue, 8 Oct 2019 08:56:34 +0200 (CEST) (envelope-from pho) Date: Tue, 8 Oct 2019 08:56:34 +0200 From: Peter Holm To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib Message-ID: <20191008065634.GA64200@x8.osted.lan> References: <201910072240.x97Me60x065650@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201910072240.x97Me60x065650@repo.freebsd.org> User-Agent: Mutt/1.11.4 (2019-03-13) X-Rspamd-Queue-Id: 46nSnM02Dsz4SjC X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.98 / 15.00]; NEURAL_HAM_MEDIUM(-0.98)[-0.979,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 06:56:39 -0000 On Mon, Oct 07, 2019 at 10:40:06PM +0000, Gleb Smirnoff wrote: > Author: glebius > Date: Mon Oct 7 22:40:05 2019 > New Revision: 353292 > URL: https://svnweb.freebsd.org/changeset/base/353292 > > Log: > Widen NET_EPOCH coverage. > This seems to trigger this: Autoloading module: uhid.ko Autoloading module: ums.ko ums0 on uhub4 ums0: on usbus0 ums0: 3 buttons and [Z] coordinates ID=0 Starting dhclient. DHCPREQUEST on igb0 to 255.255.255.255 port 67 DHCPACK from 192panic: Assertion in_epoch(net_epoch_preempt) failed at ../../../net/if.c:3694 cpuid = 1 time = 1570517532 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00addc28b0 vpanic() at vpanic+0x19d/frame 0xfffffe00addc2900 panic() at panic+0x43/frame 0xfffffe00addc2960 if_delmulti_ifma_flags() at if_delmulti_ifma_flags+0x141/frame 0xfffffe00addc2990 inm_release_task() at inm_release_task+0x1ac/frame 0xfffffe00addc29f0 gtaskqueue_run_locked() at gtaskqueue_run_locked+0xf9/frame 0xfffffe00addc2a40 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00addc2a70 fork_exit() at fork_exit+0x84/frame 0xfffffe00addc2ab0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addc2ab0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- KDB: enter: panic [ thread pid 0 tid 100019 ] Stopped at kdb_enter+0x3b: movq $0,kdb_why db> x/s version version: FreeBSD 13.0-CURRENT #0 r353292: Tue Oct 8 08:45:15 CEST 2019\012 pho@mercat1.netperf.freebsd.org:/usr/src/sys/amd64/compile/PHO\012 db> - Peter From owner-svn-src-head@freebsd.org Tue Oct 8 07:14:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C55113C149; Tue, 8 Oct 2019 07:14:24 +0000 (UTC) (envelope-from dougm@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 46nT9r1nKYz4TtD; Tue, 8 Oct 2019 07:14:24 +0000 (UTC) (envelope-from dougm@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 21D62246B8; Tue, 8 Oct 2019 07:14:24 +0000 (UTC) (envelope-from dougm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x987EOAP075194; Tue, 8 Oct 2019 07:14:24 GMT (envelope-from dougm@FreeBSD.org) Received: (from dougm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x987ELNt075181; Tue, 8 Oct 2019 07:14:21 GMT (envelope-from dougm@FreeBSD.org) Message-Id: <201910080714.x987ELNt075181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dougm set sender to dougm@FreeBSD.org using -f From: Doug Moore Date: Tue, 8 Oct 2019 07:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353298 - in head/sys: compat/linprocfs dev/hwpmc fs/procfs fs/tmpfs kern security/mac vm X-SVN-Group: head X-SVN-Commit-Author: dougm X-SVN-Commit-Paths: in head/sys: compat/linprocfs dev/hwpmc fs/procfs fs/tmpfs kern security/mac vm X-SVN-Commit-Revision: 353298 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 07:14:24 -0000 Author: dougm Date: Tue Oct 8 07:14:21 2019 New Revision: 353298 URL: https://svnweb.freebsd.org/changeset/base/353298 Log: Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map. In case the implementation ever changes from using a chain of next pointers, then changing the macro definition will be necessary, but changing all the files that iterate over vm_map entries will not. Drop a counter in vm_object.c that would have an effect only if the vm_map entry count was wrong. Discussed with: alc Reviewed by: markj Tested by: pho (earlier version) Differential Revision: https://reviews.freebsd.org/D21882 Modified: head/sys/compat/linprocfs/linprocfs.c head/sys/dev/hwpmc/hwpmc_mod.c head/sys/fs/procfs/procfs_map.c head/sys/fs/tmpfs/tmpfs_vfsops.c head/sys/kern/imgact_elf.c head/sys/kern/kern_proc.c head/sys/kern/sys_process.c head/sys/security/mac/mac_process.c head/sys/vm/swap_pager.c head/sys/vm/vm_map.h head/sys/vm/vm_object.c head/sys/vm/vm_pageout.c head/sys/vm/vm_swapout.c Modified: head/sys/compat/linprocfs/linprocfs.c ============================================================================== --- head/sys/compat/linprocfs/linprocfs.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/compat/linprocfs/linprocfs.c Tue Oct 8 07:14:21 2019 (r353298) @@ -1174,8 +1174,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) l_map_str = l32_map_str; map = &vm->vm_map; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { name = ""; freename = NULL; if (entry->eflags & MAP_ENTRY_IS_SUB_MAP) Modified: head/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_mod.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/dev/hwpmc/hwpmc_mod.c Tue Oct 8 07:14:21 2019 (r353298) @@ -1884,7 +1884,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct map = &vm->vm_map; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { if (entry == NULL) { PMCDBG2(LOG,OPS,2, "hwpmc: vm_map entry unexpectedly " @@ -1988,7 +1988,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct * new lookup for this entry. If there is no entry * for this address range, vm_map_lookup_entry() will * return the previous one, so we always want to go to - * entry->next on the next loop iteration. + * the next entry on the next loop iteration. * * There is an edge condition here that can occur if * there is no entry at or before this address. In Modified: head/sys/fs/procfs/procfs_map.c ============================================================================== --- head/sys/fs/procfs/procfs_map.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/fs/procfs/procfs_map.c Tue Oct 8 07:14:21 2019 (r353298) @@ -118,8 +118,7 @@ procfs_doprocmap(PFS_FILL_ARGS) return (ESRCH); map = &vm->vm_map; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { if (entry->eflags & MAP_ENTRY_IS_SUB_MAP) continue; Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vfsops.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/fs/tmpfs/tmpfs_vfsops.c Tue Oct 8 07:14:21 2019 (r353298) @@ -262,8 +262,7 @@ again: vm_map_lock(map); if (map->busy) vm_map_wait_busy(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { if ((entry->eflags & (MAP_ENTRY_GUARD | MAP_ENTRY_IS_SUB_MAP | MAP_ENTRY_COW)) != 0 || (entry->max_protection & VM_PROT_WRITE) == 0) Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/kern/imgact_elf.c Tue Oct 8 07:14:21 2019 (r353298) @@ -1738,8 +1738,7 @@ each_dumpable_segment(struct thread *td, segment_callb boolean_t ignore_entry; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { /* * Don't dump inaccessible mappings, deal with legacy * coredump mode. Modified: head/sys/kern/kern_proc.c ============================================================================== --- head/sys/kern/kern_proc.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/kern/kern_proc.c Tue Oct 8 07:14:21 2019 (r353298) @@ -2239,8 +2239,7 @@ sysctl_kern_proc_ovmmap(SYSCTL_HANDLER_ARGS) map = &vm->vm_map; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { vm_object_t obj, tobj, lobj; vm_offset_t addr; @@ -2455,8 +2454,7 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, s error = 0; map = &vm->vm_map; vm_map_lock_read(map); - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { if (entry->eflags & MAP_ENTRY_IS_SUB_MAP) continue; Modified: head/sys/kern/sys_process.c ============================================================================== --- head/sys/kern/sys_process.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/kern/sys_process.c Tue Oct 8 07:14:21 2019 (r353298) @@ -382,21 +382,18 @@ ptrace_vm_entry(struct thread *td, struct proc *p, str vm_map_lock_read(map); do { - entry = map->header.next; + KASSERT((map->header.eflags & MAP_ENTRY_IS_SUB_MAP) == 0, + ("Submap in map header")); index = 0; - while (index < pve->pve_entry && entry != &map->header) { - entry = entry->next; + VM_MAP_ENTRY_FOREACH(entry, map) { + if (index >= pve->pve_entry && + (entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) + break; index++; } - if (index != pve->pve_entry) { + if (index < pve->pve_entry) { error = EINVAL; break; - } - KASSERT((map->header.eflags & MAP_ENTRY_IS_SUB_MAP) == 0, - ("Submap in map header")); - while ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0) { - entry = entry->next; - index++; } if (entry == &map->header) { error = ENOENT; Modified: head/sys/security/mac/mac_process.c ============================================================================== --- head/sys/security/mac/mac_process.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/security/mac/mac_process.c Tue Oct 8 07:14:21 2019 (r353298) @@ -264,7 +264,7 @@ mac_proc_vm_revoke_recurse(struct thread *td, struct u return; vm_map_lock(map); - for (vme = map->header.next; vme != &map->header; vme = vme->next) { + VM_MAP_ENTRY_FOREACH(vme, map) { if (vme->eflags & MAP_ENTRY_IS_SUB_MAP) { mac_proc_vm_revoke_recurse(td, cred, vme->object.sub_map); Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/vm/swap_pager.c Tue Oct 8 07:14:21 2019 (r353298) @@ -2621,7 +2621,7 @@ vmspace_swap_count(struct vmspace *vmspace) map = &vmspace->vm_map; count = 0; - for (cur = map->header.next; cur != &map->header; cur = cur->next) { + VM_MAP_ENTRY_FOREACH(cur, map) { if ((cur->eflags & MAP_ENTRY_IS_SUB_MAP) != 0) continue; object = cur->object.vm_object; Modified: head/sys/vm/vm_map.h ============================================================================== --- head/sys/vm/vm_map.h Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/vm/vm_map.h Tue Oct 8 07:14:21 2019 (r353298) @@ -416,6 +416,10 @@ int vm_map_lookup_locked(vm_map_t *, vm_offset_t, vm_p vm_pindex_t *, vm_prot_t *, boolean_t *); void vm_map_lookup_done (vm_map_t, vm_map_entry_t); boolean_t vm_map_lookup_entry (vm_map_t, vm_offset_t, vm_map_entry_t *); +#define VM_MAP_ENTRY_FOREACH(it, map) \ + for ((it) = (map)->header.next; \ + (it) != &(map)->header; \ + (it) = (it)->next) int vm_map_protect (vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t, boolean_t); int vm_map_remove (vm_map_t, vm_offset_t, vm_offset_t); void vm_map_try_merge_entries(vm_map_t map, vm_map_entry_t prev, Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/vm/vm_object.c Tue Oct 8 07:14:21 2019 (r353298) @@ -2376,29 +2376,22 @@ _vm_object_in_map(vm_map_t map, vm_object_t object, vm vm_map_t tmpm; vm_map_entry_t tmpe; vm_object_t obj; - int entcount; if (map == 0) return 0; if (entry == 0) { - tmpe = map->header.next; - entcount = map->nentries; - while (entcount-- && (tmpe != &map->header)) { + VM_MAP_ENTRY_FOREACH(tmpe, map) { if (_vm_object_in_map(map, object, tmpe)) { return 1; } - tmpe = tmpe->next; } } else if (entry->eflags & MAP_ENTRY_IS_SUB_MAP) { tmpm = entry->object.sub_map; - tmpe = tmpm->header.next; - entcount = tmpm->nentries; - while (entcount-- && tmpe != &tmpm->header) { + VM_MAP_ENTRY_FOREACH(tmpe, tmpm) { if (_vm_object_in_map(tmpm, object, tmpe)) { return 1; } - tmpe = tmpe->next; } } else if ((obj = entry->object.vm_object) != NULL) { for (; obj; obj = obj->backing_object) Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/vm/vm_pageout.c Tue Oct 8 07:14:21 2019 (r353298) @@ -1783,8 +1783,7 @@ vm_pageout_oom_pagecount(struct vmspace *vmspace) KASSERT(!map->system_map, ("system map")); sx_assert(&map->lock, SA_LOCKED); res = 0; - for (entry = map->header.next; entry != &map->header; - entry = entry->next) { + VM_MAP_ENTRY_FOREACH(entry, map) { if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0) continue; obj = entry->object.vm_object; Modified: head/sys/vm/vm_swapout.c ============================================================================== --- head/sys/vm/vm_swapout.c Tue Oct 8 02:36:53 2019 (r353297) +++ head/sys/vm/vm_swapout.c Tue Oct 8 07:14:21 2019 (r353298) @@ -284,8 +284,7 @@ vm_swapout_map_deactivate_pages(vm_map_t map, long des * first, search out the biggest object, and try to free pages from * that. */ - tmpe = map->header.next; - while (tmpe != &map->header) { + VM_MAP_ENTRY_FOREACH(tmpe, map) { if ((tmpe->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { obj = tmpe->object.vm_object; if (obj != NULL && VM_OBJECT_TRYRLOCK(obj)) { @@ -302,7 +301,6 @@ vm_swapout_map_deactivate_pages(vm_map_t map, long des } if (tmpe->wired_count > 0) nothingwired = FALSE; - tmpe = tmpe->next; } if (bigobj != NULL) { @@ -313,8 +311,7 @@ vm_swapout_map_deactivate_pages(vm_map_t map, long des * Next, hunt around for other pages to deactivate. We actually * do this search sort of wrong -- .text first is not the best idea. */ - tmpe = map->header.next; - while (tmpe != &map->header) { + VM_MAP_ENTRY_FOREACH(tmpe, map) { if (pmap_resident_count(vm_map_pmap(map)) <= desired) break; if ((tmpe->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { @@ -326,7 +323,6 @@ vm_swapout_map_deactivate_pages(vm_map_t map, long des VM_OBJECT_RUNLOCK(obj); } } - tmpe = tmpe->next; } /* From owner-svn-src-head@freebsd.org Tue Oct 8 08:16:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6D4313EC2B; Tue, 8 Oct 2019 08:16:12 +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 46nVY83Tf8z4YhG; Tue, 8 Oct 2019 08:16:12 +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 x988G4Mg022128 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 8 Oct 2019 11:16:07 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x988G4Mg022128 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x988G46M022127; Tue, 8 Oct 2019 11:16:04 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 8 Oct 2019 11:16:04 +0300 From: Konstantin Belousov To: Justin Hibbits Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353296 - head/sys/powerpc/include Message-ID: <20191008081604.GZ44691@kib.kiev.ua> References: <201910080136.x981aYTq073145@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201910080136.x981aYTq073145@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46nVY83Tf8z4YhG 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)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 08:16:12 -0000 On Tue, Oct 08, 2019 at 01:36:34AM +0000, Justin Hibbits wrote: > Author: jhibbits > Date: Tue Oct 8 01:36:34 2019 > New Revision: 353296 > URL: https://svnweb.freebsd.org/changeset/base/353296 > > Log: > powerpc: Implement atomic_(f)cmpset_ for short and char > | > This adds two implementations for each atomic_fcmpset_ and atomic_cmpset_ > short and char functions, selectable at compile time for the target > architecture. By default, it uses a generic shift-and-mask to perform atomic > updates to sub-components of 32-bit words from . > However, if ISA_206_ATOMICS is defined it uses the ll/sc instructions for > halfword and bytes, introduced in PowerISA 2.06. These instructions are > supported by all IBM processors from POWER7 on, as well as the Freescale/NXP > e6500 core. Although the e5500 and e500mc both implement PowerISA 2.06 they > do not implement these instructions. > > As part of this, clean up the atomic_(f)cmpset_acq and _rel wrappers, by > using macros to reduce code duplication. > > ISA_206_ATOMICS requires clang or newer binutils (2.20 or later). Why don't you use normal word-sized ll/sc tlwarx/stwcx, and only modifying the part of the register as needed ? This would work on all supported CPUs, right ? When kevans did the _atomic_subword.h, one of the arches involved was sparc64, which does not have ll/sc. Also for MIPS there are some fine details which might mean that C implementation is less work than using word-sized ll/sc. But why for power ? From owner-svn-src-head@freebsd.org Tue Oct 8 10:27:02 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3157A143288; Tue, 8 Oct 2019 10:27:02 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46nYS43twzz3FS6; Tue, 8 Oct 2019 10:27:00 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id 420abf02; Tue, 8 Oct 2019 12:26:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=iTWeQhQA45djTtcSKQkXCTy/GTs=; b=fJlNbfnDfSzjxIcTVTpRjm3eNHgr RoIzCNcHjnEjniFlyymbMxHfxeXTZjj90iFAoe2/UFUZBxr/pYBbKbUeg7vq1nYZ ImZARc3YNulcG3Np8kr+wb8g4IdiM6fprmCKUJ+VjU0FUsmUs1S6Z+yxa4uTfBpM pEVjH8o6PVVTyQA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=S6Z/+6/BlJm5dmH1Rdb0eIF5dtpohccZi7OnSN3qRruSXhA7zaLkuhDR pq53G4vKLCKMfvvtJVHQclIpKcadRpZQrq1jxuqYkVSpvEjM+Up5owR8kpaPUyyZ J9RYVtq7l8KkZpKcOcieANrYulg2kYTZxbuweuzDRhcI4ChfLF8= Received: from skull.home.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 3116809d TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Tue, 8 Oct 2019 12:26:52 +0200 (CEST) Date: Tue, 8 Oct 2019 12:26:52 +0200 From: Emmanuel Vadot To: Glen Barber Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-Id: <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> In-Reply-To: <201909191643.x8JGhCJu089738@repo.freebsd.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46nYS43twzz3FS6 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bidouilliste.com header.s=mail header.b=fJlNbfnD; dmarc=none; spf=pass (mx1.freebsd.org: domain of manu@bidouilliste.com designates 212.83.177.182 as permitted sender) smtp.mailfrom=manu@bidouilliste.com X-Spamd-Result: default: False [-1.34 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[bidouilliste.com:s=mail]; NEURAL_HAM_MEDIUM(-0.92)[-0.924,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:212.83.177.182/32]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MV_CASE(0.50)[]; DMARC_NA(0.00)[bidouilliste.com]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-0.89)[-0.890,0]; DKIM_TRACE(0.00)[bidouilliste.com:+]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.37)[ip: (-0.75), ipnet: 212.83.160.0/19(2.49), asn: 12876(0.11), country: FR(-0.00)]; ASN(0.00)[asn:12876, ipnet:212.83.160.0/19, country:FR]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 10:27:02 -0000 Hi Glen, On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) Glen Barber wrote: > Author: gjb > Date: Thu Sep 19 16:43:12 2019 > New Revision: 352520 > URL: https://svnweb.freebsd.org/changeset/base/352520 > > Log: > Apply r346792 (cperciva) from stable/12 to head. The original commit > message: > > On non-x86 systems, use "quarterly" packages. > > x86 architectures have "latest" package builds on stable/*, so keep using > those (they'll get switched over to "quarterly" during releases). > > The original commit was a direct commit to stable/12, as at the time it > was presumed it would not be necessary for head. However, when it is time > to create a releng branch or switch from PRERELEASE/STABLE to BETA/RC, the > pkg(7) Makefile needs further adjusting. This commit includes those > further adjustments, evaluating the BRANCH variable from release/Makefile > to determine the pkg(7) repository to use. > > MFC after: immediate (if possible) > Sponsored by: Rubicon Communications, LLC (Netgate) > > Modified: > head/usr.sbin/pkg/Makefile > > Modified: head/usr.sbin/pkg/Makefile > ============================================================================== > --- head/usr.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 (r352519) > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 (r352520) > @@ -1,6 +1,16 @@ > # $FreeBSD$ > > +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" > +PKGCONFBRANCH?= quarterly > +.else > +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH > +BRANCH?= ${_BRANCH} > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > +PKGCONFBRANCH?= quarterly > +. else > PKGCONFBRANCH?= latest > +. endif > +.endif > CONFS= FreeBSD.conf.${PKGCONFBRANCH} > CONFSNAME= FreeBSD.conf > CONFSDIR= /etc/pkg Tier 2 (and weird tier1 like aarch64) only have latest for current so this doesn't work. Also this depends on MACHINE and iirc MACHINE is always the host when cross compiling. I think this need to be reverted. Cheers, -- Emmanuel Vadot From owner-svn-src-head@freebsd.org Tue Oct 8 10:36:21 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99D1D14360F; Tue, 8 Oct 2019 10:36:21 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) (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 46nYfs3WlRz3G2C; Tue, 8 Oct 2019 10:36:21 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-oi1-f196.google.com with SMTP id w144so14342097oia.6; Tue, 08 Oct 2019 03:36:21 -0700 (PDT) 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=Jz7Lw/XGIQ19IkiOZYP4d6kiGlFDICZnNwDhq8OSyZs=; b=ffm2ClVmNTQOsbkOrtdz8WR76hb0c3lFi0MXOxIc4/LX5UVQ6agkY4SEEOpaZkYxex L9xG0WIZV4tT7eNDz5MeEeosYxbGzj5Bn4J54gsnK2FU+uEB29APNhKVKjEb/DiciPRS tWF8YzWX6qUdxxyto4lMSRMxNIM23gSpij4M9yI0QJVwTl8yY3/2bDAs5CIxjblLMHTE Rf38NFZ63f2hZB0hU7NxyQFKjcklzOn5wYJa6cAsHIggpMQz3VjS5HILzK7FVOxRSe9E /KjKxEovPKRSvSPdWmpFbxe0e5WETVGbxwHKX0rfXEkBS6v5IW3+7rG9N7BlPJp8Qlx9 EwWg== X-Gm-Message-State: APjAAAX8dVPJHZz4gCL+pL+9E5IojXHQUT+OU8mq/jJZDRz9WJXNaGXD Th9I2wR+q3nkNhFe1sGNavEXEhpBLMwcTUA8r+IU9Q== X-Google-Smtp-Source: APXvYqxqbHMGPzqkMmPzp9gXN+JpcqjXdMWCob/O4iXrENdnVmXeH3jR4So+W7LbTNorMt5+8FaPkDCfaOGwipc62qM= X-Received: by 2002:aca:b142:: with SMTP id a63mr3164507oif.119.1570530979252; Tue, 08 Oct 2019 03:36:19 -0700 (PDT) MIME-Version: 1.0 References: <201910071905.x97J56t0039812@repo.freebsd.org> <19168116-73e4-7d98-16d3-2ecd38dabfcd@FreeBSD.org> In-Reply-To: <19168116-73e4-7d98-16d3-2ecd38dabfcd@FreeBSD.org> From: Edward Napierala Date: Tue, 8 Oct 2019 11:36:06 +0100 Message-ID: Subject: Re: svn commit: r353283 - in head: lib lib/libstats share/man/man3 share/mk sys/amd64/conf sys/conf sys/kern sys/sys tools/build/options To: John Baldwin Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46nYfs3WlRz3G2C 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 10:36:21 -0000 On Mon, 7 Oct 2019 at 22:39, John Baldwin wrote: > > On 10/7/19 12:05 PM, Edward Tomasz Napierala wrote: > > Author: trasz > > Date: Mon Oct 7 19:05:05 2019 > > New Revision: 353283 > > URL: https://svnweb.freebsd.org/changeset/base/353283 > > > > Log: > > Introduce stats(3), a flexible statistics gathering API. > > > > This provides a framework to define a template describing > > a set of "variables of interest" and the intended way for > > the framework to maintain them (for example the maximum, sum, > > t-digest, or a combination thereof). Afterwards the user > > code feeds in the raw data, and the framework maintains > > these variables inside a user-provided, opaque stats blobs. > > The framework also provides a way to selectively extract the > > stats from the blobs. The stats(3) framework can be used in > > both userspace and the kernel. > > > > See the stats(3) manual page for details. > > > > This will be used by the upcoming TCP statistics gathering code, > > https://reviews.freebsd.org/D20655. > > > > The stats(3) framework is disabled by default for now, except > > in the NOTES kernel (for QA); it is expected to be enabled > > in amd64 GENERIC after a cool down period. > > Why sys/amd64/conf/NOTES instead of sys/conf/NOTES? The userland > library seems to be enabled for all architectures rather than only > amd64? Good point. My original thinking was to only enable it by default on amd64, since, well, it's "server-y stuff", but now I think of it, it doesn't make sense. > > Modified: head/share/man/man3/arb.3 > > ============================================================================== > > --- head/share/man/man3/arb.3 Mon Oct 7 18:55:40 2019 (r353282) > > +++ head/share/man/man3/arb.3 Mon Oct 7 19:05:05 2019 (r353283) > > @@ -30,7 +30,7 @@ > > .\" > > .\" $FreeBSD$ > > .\" > > -.Dd September 28, 2019 > > +.Dd October 2, 2019 > > .Dt ARB 3 > > .Os > > .Sh NAME > > @@ -94,7 +94,8 @@ > > .Nm ARB_INIT , > > .Nm ARB_INSERT , > > .Nm ARB_REMOVE , > > -.Nm ARB_REINSERT > > +.Nm ARB_REINSERT , > > +.Nm ARB_RESET_TREE > > .Nd "array-based red-black trees" > > .Sh SYNOPSIS > > .In sys/arb.h > > Are these changes related? Perhaps it would have been nice to commit this > change separately with its own description before the stats(3) commit if so. Which is exactly what I was intending to do, sigh. But yes, this chunk is specific to stats(3); in fact up until the last Phab revision it's been done directly in kern_stats.c. From owner-svn-src-head@freebsd.org Tue Oct 8 10:50:17 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8097F143AC2; Tue, 8 Oct 2019 10:50:17 +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 46nYyx2hc6z3GkW; Tue, 8 Oct 2019 10:50:17 +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 3C0CD26CC3; Tue, 8 Oct 2019 10:50:17 +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 x98AoHRB002132; Tue, 8 Oct 2019 10:50:17 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98AoHlw002131; Tue, 8 Oct 2019 10:50:17 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910081050.x98AoHlw002131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Tue, 8 Oct 2019 10:50:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353301 - head/sys/i386/include X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/i386/include X-SVN-Commit-Revision: 353301 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 10:50:17 -0000 Author: avg Date: Tue Oct 8 10:50:16 2019 New Revision: 353301 URL: https://svnweb.freebsd.org/changeset/base/353301 Log: i386: hide more of atomic 64-bit definitions under _KERNEL At the moment i386 does not provide 64-bit atomic operations in userland. Exposing some atomic_*_64 defines can cause unnecessary confusion. Discussed with: kib MFC after: 2 weeks Modified: head/sys/i386/include/atomic.h Modified: head/sys/i386/include/atomic.h ============================================================================== --- head/sys/i386/include/atomic.h Tue Oct 8 10:24:48 2019 (r353300) +++ head/sys/i386/include/atomic.h Tue Oct 8 10:50:16 2019 (r353301) @@ -880,6 +880,7 @@ u_long atomic_swap_long(volatile u_long *p, u_long v); #define atomic_testandset_32 atomic_testandset_int #define atomic_testandclear_32 atomic_testandclear_int +#ifdef _KERNEL /* Operations on 64-bit quad words. */ #define atomic_cmpset_acq_64 atomic_cmpset_64 #define atomic_cmpset_rel_64 atomic_cmpset_64 @@ -893,6 +894,7 @@ u_long atomic_swap_long(volatile u_long *p, u_long v); #define atomic_subtract_rel_64 atomic_subtract_64 #define atomic_load_64 atomic_load_acq_64 #define atomic_store_64 atomic_store_rel_64 +#endif /* Operations on pointers. */ #define atomic_set_ptr(p, v) \ From owner-svn-src-head@freebsd.org Tue Oct 8 11:06:25 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A86C1441ED; Tue, 8 Oct 2019 11:06:25 +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 46nZKX6RSxz3Hmy; Tue, 8 Oct 2019 11:06:24 +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 C0CC327031; Tue, 8 Oct 2019 11:06:24 +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 x98B6O0s013579; Tue, 8 Oct 2019 11:06:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98B6OBB013578; Tue, 8 Oct 2019 11:06:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910081106.x98B6OBB013578@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 8 Oct 2019 11:06:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353302 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353302 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 11:06:25 -0000 Author: hselasky Date: Tue Oct 8 11:06:24 2019 New Revision: 353302 URL: https://svnweb.freebsd.org/changeset/base/353302 Log: Fix regression issue after r353274: Make sure the vnet_shutdown field is not set until after all VNET_SYSUNINIT()'s in the SI_SUB_VNET_DONE subsystem have been executed. Especially the vnet_if_return() functions requires that if_move() is still operational. Reported by: lwhsu@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/net/vnet.c Modified: head/sys/net/vnet.c ============================================================================== --- head/sys/net/vnet.c Tue Oct 8 10:50:16 2019 (r353301) +++ head/sys/net/vnet.c Tue Oct 8 11:06:24 2019 (r353302) @@ -279,9 +279,6 @@ vnet_destroy(struct vnet *vnet) LIST_REMOVE(vnet, vnet_le); VNET_LIST_WUNLOCK(); - /* Signal that VNET is being shutdown. */ - vnet->vnet_shutdown = 1; - CURVNET_SET_QUIET(vnet); vnet_sysuninit(); CURVNET_RESTORE(); @@ -353,15 +350,15 @@ vnet_data_startup(void *dummy __unused) } SYSINIT(vnet_data, SI_SUB_KLD, SI_ORDER_FIRST, vnet_data_startup, NULL); -/* Dummy VNET_SYSINIT to make sure we always reach the final end state. */ static void -vnet_sysinit_done(void *unused __unused) +vnet_sysuninit_shutdown(void *unused __unused) { - return; + /* Signal that VNET is being shutdown. */ + curvnet->vnet_shutdown = 1; } -VNET_SYSINIT(vnet_sysinit_done, SI_SUB_VNET_DONE, SI_ORDER_ANY, - vnet_sysinit_done, NULL); +VNET_SYSUNINIT(vnet_sysuninit_shutdown, SI_SUB_VNET_DONE, SI_ORDER_FIRST, + vnet_sysuninit_shutdown, NULL); /* * When a module is loaded and requires storage for a virtualized global From owner-svn-src-head@freebsd.org Tue Oct 8 11:07:17 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AFAE21442A3; Tue, 8 Oct 2019 11:07:17 +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 46nZLY4BZTz3Hw5; Tue, 8 Oct 2019 11:07:17 +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 7324627033; Tue, 8 Oct 2019 11:07:17 +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 x98B7HVq013671; Tue, 8 Oct 2019 11:07:17 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98B7HJr013670; Tue, 8 Oct 2019 11:07:17 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910081107.x98B7HJr013670@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 8 Oct 2019 11:07:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353303 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353303 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 11:07:17 -0000 Author: tuexen Date: Tue Oct 8 11:07:16 2019 New Revision: 353303 URL: https://svnweb.freebsd.org/changeset/base/353303 Log: Validate length before use it, not vice versa. r353060 should have contained this... This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18070 MFC after: 3 days Modified: head/sys/netinet/sctp_asconf.c Modified: head/sys/netinet/sctp_asconf.c ============================================================================== --- head/sys/netinet/sctp_asconf.c Tue Oct 8 11:06:24 2019 (r353302) +++ head/sys/netinet/sctp_asconf.c Tue Oct 8 11:07:16 2019 (r353303) @@ -334,11 +334,11 @@ sctp_process_asconf_delete_ip(struct sockaddr *src, #endif aparam_length = ntohs(aph->ph.param_length); - ph = (struct sctp_paramhdr *)(aph + 1); - param_type = ntohs(ph->param_type); if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) { return (NULL); } + ph = (struct sctp_paramhdr *)(aph + 1); + param_type = ntohs(ph->param_type); #if defined(INET) || defined(INET6) param_length = ntohs(ph->param_length); if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) { From owner-svn-src-head@freebsd.org Tue Oct 8 11:27:49 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4DDF3144992; Tue, 8 Oct 2019 11:27:49 +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 46nZpF1MLCz3Jl1; Tue, 8 Oct 2019 11:27:49 +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 0D5AC273C7; Tue, 8 Oct 2019 11:27:49 +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 x98BRmEZ025292; Tue, 8 Oct 2019 11:27:48 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98BRm1W025291; Tue, 8 Oct 2019 11:27:48 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910081127.x98BRm1W025291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Tue, 8 Oct 2019 11:27:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353304 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 353304 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 11:27:49 -0000 Author: avg Date: Tue Oct 8 11:27:48 2019 New Revision: 353304 URL: https://svnweb.freebsd.org/changeset/base/353304 Log: zfs: use atomic_load_64 to read atomic variable in dmu_object_alloc_impl As long as we support ZFS on 32-bit platforms we should do this for all 64-bit variables that are modified in a lockless fashion using atomic operations. Otherwise, there is a risk of a reading a torn value. Here is a rationale for why I am doing this in dmu_object_alloc_impl: - it's very recent code - the code deals with object IDs and a number of objects in a file system can overflow 32 bits - incorrect allocation of an object ID may result in hard to debug problems - fixing all plain reads of 64-bit atomic variables is not a trivial undertaking to do in one shot, so I chose to do it incrementally MFC after: 3 weeks X-MFC after: r353301, r353176 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Tue Oct 8 11:07:16 2019 (r353303) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Tue Oct 8 11:27:48 2019 (r353304) @@ -76,7 +76,11 @@ dmu_object_alloc_impl(objset_t *os, dmu_object_type_t if (dnodes_per_chunk > L1_dnode_count) dnodes_per_chunk = L1_dnode_count; +#ifdef __FreeBSD__ + object = atomic_load_64(cpuobj); +#else object = *cpuobj; +#endif for (;;) { /* From owner-svn-src-head@freebsd.org Tue Oct 8 12:48:53 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA3E8147218; Tue, 8 Oct 2019 12:48:53 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mx1.sbone.de (cross.sbone.de [195.201.62.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ncbn4rQwz3PC8; Tue, 8 Oct 2019 12:48:53 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 0AF1F8D4A218; Tue, 8 Oct 2019 12:48:46 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 6EF69E7083A; Tue, 8 Oct 2019 12:48:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id ynN_LN5MgP92; Tue, 8 Oct 2019 12:48:41 +0000 (UTC) Received: from [192.168.2.110] (unknown [IPv6:fde9:577b:c1a9:31:4d5f:285f:ca38:521f]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id B43C8E707C8; Tue, 8 Oct 2019 12:48:41 +0000 (UTC) From: "Bjoern A. Zeeb" To: "Hans Petter Selasky" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353274 - in head/sys: net sys Date: Tue, 08 Oct 2019 12:48:41 +0000 X-Mailer: MailMate (2.0BETAr6142) Message-ID: In-Reply-To: <201910071415.x97EFfiN064058@repo.freebsd.org> References: <201910071415.x97EFfiN064058@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46ncbn4rQwz3PC8 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 12:48:54 -0000 On 7 Oct 2019, at 14:15, Hans Petter Selasky wrote: > Author: hselasky > Date: Mon Oct 7 14:15:41 2019 > New Revision: 353274 > URL: https://svnweb.freebsd.org/changeset/base/353274 > > Log: > Factor out VNET shutdown check into an own vnet structure field. > Remove the now obsolete vnet_state field. This greatly simplifies > the > detection of VNET shutdown and avoids code duplication. I think I tried to say that the vnet_state is extremely helpful for debugging as you know where each of the stacks is during initialisation/shutdown, especially with loadable modules and that it should stay and I cannot remember that I removed it in the patch that I suggested. I didn’t re-used a field but extended the structure. What you did means you cannot MFC this easily. Also it means that all previous vnet consumers got invalidated and the VNET_MAGIC_N should have been bumped and all modules need a re-compile. > Discussed with: bz@ > MFC after: 1 week > Sponsored by: Mellanox Technologies > > Modified: > head/sys/net/if.c > head/sys/net/vnet.c > head/sys/net/vnet.h > head/sys/sys/param.h > > Modified: head/sys/net/if.c > ============================================================================== > --- head/sys/net/if.c Mon Oct 7 13:40:29 2019 (r353273) > +++ head/sys/net/if.c Mon Oct 7 14:15:41 2019 (r353274) > @@ -1088,10 +1088,9 @@ if_detach_internal(struct ifnet *ifp, int > vmove, struc > struct ifnet *iter; > int found = 0; > #ifdef VIMAGE > - int shutdown; > + bool shutdown; > > - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && > - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; > + shutdown = ifp->if_vnet->vnet_shutdown; > #endif > IFNET_WLOCK(); > CK_STAILQ_FOREACH(iter, &V_ifnet, if_link) > @@ -1341,7 +1340,6 @@ if_vmove_loan(struct thread *td, struct ifnet > *ifp, ch > { > struct prison *pr; > struct ifnet *difp; > - int shutdown; > > /* Try to find the prison within our visibility. */ > sx_slock(&allprison_lock); > @@ -1369,9 +1367,7 @@ if_vmove_loan(struct thread *td, struct ifnet > *ifp, ch > } > > /* Make sure the VNET is stable. */ > - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && > - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; > - if (shutdown) { > + if (ifp->if_vnet->vnet_shutdown) { > CURVNET_RESTORE(); > prison_free(pr); > return (EBUSY); > @@ -1394,7 +1390,6 @@ if_vmove_reclaim(struct thread *td, char > *ifname, int > struct prison *pr; > struct vnet *vnet_dst; > struct ifnet *ifp; > - int shutdown; > > /* Try to find the prison within our visibility. */ > sx_slock(&allprison_lock); > @@ -1423,9 +1418,7 @@ if_vmove_reclaim(struct thread *td, char > *ifname, int > } > > /* Make sure the VNET is stable. */ > - shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && > - ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; > - if (shutdown) { > + if (ifp->if_vnet->vnet_shutdown) { > CURVNET_RESTORE(); > prison_free(pr); > return (EBUSY); > @@ -2996,16 +2989,11 @@ ifioctl(struct socket *so, u_long cmd, caddr_t > data, s > struct ifreq *ifr; > int error; > int oif_flags; > -#ifdef VIMAGE > - int shutdown; > -#endif > > CURVNET_SET(so->so_vnet); > #ifdef VIMAGE > /* Make sure the VNET is stable. */ > - shutdown = (so->so_vnet->vnet_state > SI_SUB_VNET && > - so->so_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; > - if (shutdown) { > + if (so->so_vnet->vnet_shutdown) { > CURVNET_RESTORE(); > return (EBUSY); > } > > Modified: head/sys/net/vnet.c > ============================================================================== > --- head/sys/net/vnet.c Mon Oct 7 13:40:29 2019 (r353273) > +++ head/sys/net/vnet.c Mon Oct 7 14:15:41 2019 (r353274) > @@ -235,7 +235,6 @@ vnet_alloc(void) > SDT_PROBE1(vnet, functions, vnet_alloc, entry, __LINE__); > vnet = malloc(sizeof(struct vnet), M_VNET, M_WAITOK | M_ZERO); > vnet->vnet_magic_n = VNET_MAGIC_N; > - vnet->vnet_state = 0; > SDT_PROBE2(vnet, functions, vnet_alloc, alloc, __LINE__, vnet); > > /* > @@ -280,6 +279,9 @@ vnet_destroy(struct vnet *vnet) > LIST_REMOVE(vnet, vnet_le); > VNET_LIST_WUNLOCK(); > > + /* Signal that VNET is being shutdown. */ > + vnet->vnet_shutdown = 1; > + > CURVNET_SET_QUIET(vnet); > vnet_sysuninit(); > CURVNET_RESTORE(); > @@ -573,10 +575,8 @@ vnet_sysinit(void) > struct vnet_sysinit *vs; > > VNET_SYSINIT_RLOCK(); > - TAILQ_FOREACH(vs, &vnet_constructors, link) { > - curvnet->vnet_state = vs->subsystem; > + TAILQ_FOREACH(vs, &vnet_constructors, link) > vs->func(vs->arg); > - } > VNET_SYSINIT_RUNLOCK(); > } > > @@ -592,10 +592,8 @@ vnet_sysuninit(void) > > VNET_SYSINIT_RLOCK(); > TAILQ_FOREACH_REVERSE(vs, &vnet_destructors, vnet_sysuninit_head, > - link) { > - curvnet->vnet_state = vs->subsystem; > + link) > vs->func(vs->arg); > - } > VNET_SYSINIT_RUNLOCK(); > } > > @@ -709,7 +707,7 @@ db_vnet_print(struct vnet *vnet) > db_printf(" vnet_data_mem = %p\n", vnet->vnet_data_mem); > db_printf(" vnet_data_base = %#jx\n", > (uintmax_t)vnet->vnet_data_base); > - db_printf(" vnet_state = %#08x\n", vnet->vnet_state); > + db_printf(" vnet_shutdown = %#08x\n", vnet->vnet_shutdown); > db_printf("\n"); > } > > > Modified: head/sys/net/vnet.h > ============================================================================== > --- head/sys/net/vnet.h Mon Oct 7 13:40:29 2019 (r353273) > +++ head/sys/net/vnet.h Mon Oct 7 14:15:41 2019 (r353274) > @@ -72,7 +72,7 @@ struct vnet { > u_int vnet_magic_n; > u_int vnet_ifcnt; > u_int vnet_sockcnt; > - u_int vnet_state; /* SI_SUB_* */ > + u_int vnet_shutdown; /* Shutdown in progress. */ > void *vnet_data_mem; > uintptr_t vnet_data_base; > }; > > Modified: head/sys/sys/param.h > ============================================================================== > --- head/sys/sys/param.h Mon Oct 7 13:40:29 2019 (r353273) > +++ head/sys/sys/param.h Mon Oct 7 14:15:41 2019 (r353274) > @@ -60,7 +60,7 @@ > * in the range 5 to 9. > */ > #undef __FreeBSD_version > -#define __FreeBSD_version 1300048 /* Master, propagated to newvers */ > +#define __FreeBSD_version 1300049 /* Master, propagated to newvers */ > > /* > * __FreeBSD_kernel__ indicates that this system uses the kernel of > FreeBSD, From owner-svn-src-head@freebsd.org Tue Oct 8 12:52:14 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3A9114747F; Tue, 8 Oct 2019 12:52:14 +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 46ncgd6hY3z3PT0; Tue, 8 Oct 2019 12:52:13 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.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 111682600F8; Tue, 8 Oct 2019 14:52:10 +0200 (CEST) Subject: Re: svn commit: r353274 - in head/sys: net sys To: "Bjoern A. Zeeb" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910071415.x97EFfiN064058@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <41bf4178-689e-573c-2684-450ee02d8de4@selasky.org> Date: Tue, 8 Oct 2019 14:50:46 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46ncgd6hY3z3PT0 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.48 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(-3.18)[ip: (-9.36), ipnet: 88.99.0.0/16(-4.75), asn: 24940(-1.81), country: DE(-0.01)]; 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 12:52:14 -0000 On 2019-10-08 14:48, Bjoern A. Zeeb wrote: > On 7 Oct 2019, at 14:15, Hans Petter Selasky wrote: > >> Author: hselasky >> Date: Mon Oct  7 14:15:41 2019 >> New Revision: 353274 >> URL: https://svnweb.freebsd.org/changeset/base/353274 >> >> Log: >>   Factor out VNET shutdown check into an own vnet structure field. >>   Remove the now obsolete vnet_state field. This greatly simplifies the >>   detection of VNET shutdown and avoids code duplication. > > I think I tried to say that the vnet_state is extremely helpful for > debugging as you know where each of the stacks is during > initialisation/shutdown, especially with loadable  modules and that it > should stay and I cannot remember that I removed it in the patch that I > suggested. > > I didn’t re-used a field but extended the structure.  What you did means > you cannot MFC this easily.  Also it means that all previous vnet > consumers got invalidated and the VNET_MAGIC_N should have been bumped > and all modules need a re-compile. > > OK I can fix that, but should VNET_MAGIC_N be bumped when adding the new vnet_shutdown boolean to this structure? --HPS From owner-svn-src-head@freebsd.org Tue Oct 8 12:52:54 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8AD831474F2; Tue, 8 Oct 2019 12:52:54 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ot1-x343.google.com (mail-ot1-x343.google.com [IPv6:2607:f8b0:4864:20::343]) (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 46nchP5XJPz3Pkf; Tue, 8 Oct 2019 12:52:53 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-ot1-x343.google.com with SMTP id 67so13897001oto.3; Tue, 08 Oct 2019 05:52:53 -0700 (PDT) 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=uXouMLiNtSDffL7dpHV9PKR5iElfXIaQhd6D1+Z6w6w=; b=MMoO/dceZromU3NRIkXYVVVA011RQijAKVAeyapxBCHRy+gQsnfH+CF+mDCji1j0bS /FR9+5GeKMRYDNnNbtM9afO/SGmSNxEVmlFthOWVwOxicmHL+IJHYDYaHP5EsQcrmCMN 0BT1h/UNiVmRMJhedVKzHrJqA3DjdK57cl+0SOY7AowHB1cnMCcZV37LVBIezSHrDpoG q/Fxi3D0UUSSwc+/2RYyB78N/9TRWl2SjWs7yDqwr9+iQUd2B6L8qPGmcWB6RGo8OFY+ 5kp7wOIi0MfMqCNVPLwbzzEZ/ADgFBnRLnTkcRc1eJxlakPY/nbiVHk/nzv3576eWV6c phPQ== 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=uXouMLiNtSDffL7dpHV9PKR5iElfXIaQhd6D1+Z6w6w=; b=cX+qLWhmqw+PAWKrG/mlSTnRjZe11pT4PbYnQ6f1CbwDW5lUWXIpCSoAT9cDP+iBSw et4tZxrWjlo9Q1opuWJYu7M9NMln72qUxhv0zzEgqMqVs2ivyXJNFfik8u3+fk+CTZy0 mOlKj4bxAZlOZhLdY8hGCQt+YxMOEZrlH8VD60+8F78AvRyWv4/kNBLu56rkqa3ZaP06 BTGIhQL6FohZj6gpcCyd2KmZu3hSZqOpgSWgJtndWf0vIYwc1HELTd6efLDxlsmYLshX PdKwmblcPcIYm84qDtqD006GR/VKUbZx2SFNLLSjoOqIOblZX6AfY1sI34Fi5YaFUVMd 24lg== X-Gm-Message-State: APjAAAUxHd4vLVwjlZm7sCBXpwdiJCYv1thMf5ku6tHRIwX/ZZaCKqKv dEFgBi16VkC0t29cox/m+Dr3wJDnficu7WIIeGY= X-Google-Smtp-Source: APXvYqz2HnmBocqSx+krbvjkeIkrZfE6GhxvbKJuNAFOA0fX7p9v22YAj1fLra05Mxir5MO1Tp5P1LGZoDCQ0mjQWrA= X-Received: by 2002:a05:6830:1e31:: with SMTP id t17mr23541844otr.201.1570539171963; Tue, 08 Oct 2019 05:52:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:458d:0:0:0:0:0 with HTTP; Tue, 8 Oct 2019 05:52:50 -0700 (PDT) In-Reply-To: <201910080421.x984LO1D003374@slippy.cwsent.com> References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> <201910071612.x97GCVx3003714@slippy.cwsent.com> <201910080421.x984LO1D003374@slippy.cwsent.com> From: Mateusz Guzik Date: Tue, 8 Oct 2019 14:52:50 +0200 Message-ID: Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 To: Cy Schubert Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, x11@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46nchP5XJPz3Pkf X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=MMoO/dce; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2607:f8b0:4864:20::343 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)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (3.01), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), country: US(-0.05)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; 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)[3.4.3.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]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 12:52:54 -0000 It's definitely drm, I noted it does not like the sparse array. This one should do thet trick then: https://people.freebsd.org/~mjg/pmap-nosparse.diff On 10/8/19, Cy Schubert wrote: > Still no joy. > > I still think drm-current-kmod is involved because these are produced just > prior to the panic whereas the dmesg buffer is clean of them without > r353149. > > Unread portion of the kernel message buffer: > WARNING !drm_modeset_is_locked(&crtc->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 577 > WARNING !drm_modeset_is_locked(&crtc->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 577 > WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed > at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper > .c:622 > WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed > at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper > .c:622 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c: > 821 > <4>WARN_ON(!mutex_is_locked(&dev->struct_mutex))WARN_ON(!mutex_is_locked(&de > v->struct_mutex)) > > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> > lock)) > > My servers (no X11) work well with this. It's only drm-current-kmod that > has gas with this rev. > > I've cc'd the maintainer of drm-current-kmod (x11@). > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > > In message > om> > , Mateusz Guzik writes: >> Does this fix it for you? >> >> https://people.freebsd.org/~mjg/pmap-fict.diff >> >> On 10/7/19, Mateusz Guzik wrote: >> > Ok, looks ilke it does not like the sparse array for fictitious >> > mappings. I'll see about a patch. >> > >> > On 10/7/19, Cy Schubert wrote: >> >> In message >> >> > >> om> >> >> , Mateusz Guzik writes: >> >>> Can you show: >> >>> >> >>> sysctl vm.phys_segso >> >> >> >> vm.phys_segs: >> >> SEGMENT 0: >> >> >> >> start: 0x10000 >> >> end: 0x9d000 >> >> domain: 0 >> >> free list: 0xffffffff80f31070 >> >> >> >> SEGMENT 1: >> >> >> >> start: 0x100000 >> >> end: 0x1000000 >> >> domain: 0 >> >> free list: 0xffffffff80f31070 >> >> >> >> SEGMENT 2: >> >> >> >> start: 0x1000000 >> >> end: 0x1ca4000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 3: >> >> >> >> start: 0x1cb3000 >> >> end: 0x1ce3000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 4: >> >> >> >> start: 0x1f00000 >> >> end: 0x20000000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 5: >> >> >> >> start: 0x20200000 >> >> end: 0x40000000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 6: >> >> >> >> start: 0x40203000 >> >> end: 0xd4993000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 7: >> >> >> >> start: 0xd6fff000 >> >> end: 0xd7000000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 8: >> >> >> >> start: 0x100001000 >> >> end: 0x211d4d000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> SEGMENT 9: >> >> >> >> start: 0x21fc00000 >> >> end: 0x21fd44000 >> >> domain: 0 >> >> free list: 0xffffffff80f30e00 >> >> >> >> >> >> >> >>> >> >>> and from the crashdump: >> >>> p pv_table >> >> >> >> $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 >> >> >> >> kgdb) p *pv_table >> >> $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv >> >> list", >> >> lo_flags = 623050752, lo_data = 0, lo_witness = >> >> 0x800000000201f163}, >> >> rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, >> >> tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, >> >> pv_invl_gen = 0} >> >> (kgdb) >> >> >> >> >> >> -- >> >> Cheers, >> >> Cy Schubert >> >> FreeBSD UNIX: Web: http://www.FreeBSD.org >> >> >> >> The need of the many outweighs the greed of the few. >> >> >> >> >> >>> >> >>> On 10/7/19, Cy Schubert wrote: >> >>> > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy >> >>> > Schubert >> >>> > writes: >> >>> >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz >> >>> >> Guzik >> >>> >> writes >> >>> >> : >> >>> >> > Author: mjg >> >>> >> > Date: Sun Oct 6 22:13:35 2019 >> >>> >> > New Revision: 353149 >> >>> >> > URL: https://svnweb.freebsd.org/changeset/base/353149 >> >>> >> > >> >>> >> > Log: >> >>> >> > amd64 pmap: implement per-superpage locks >> >>> >> > >> >>> >> > The current 256-lock sized array is a problem in the following >> >>> >> > ways: >> >>> >> > - it's way too small >> >>> >> > - there are 2 locks per cacheline >> >>> >> > - it is not NUMA-aware >> >>> >> > >> >>> >> > Solve these issues by introducing per-superpage locks backed >> >>> >> > by >> >>> >> > pages >> >>> >> > allocated from respective domains. >> >>> >> > >> >>> >> > This significantly reduces contention e.g. during poudriere -j >> >>> >> > 104. >> >>> >> > See the review for results. >> >>> >> > >> >>> >> > Reviewed by: kib >> >>> >> > Discussed with: jeff >> >>> >> > Sponsored by: The FreeBSD Foundation >> >>> >> > Differential Revision: https://reviews.freebsd.org/D21833 >> >>> >> > >> >>> >> > Modified: >> >>> >> > head/sys/amd64/amd64/pmap.c >> >>> >> > >> >>> >> > Modified: head/sys/amd64/amd64/pmap.c >> >>> >> > ==================================================================== >> ==== >> >>> === >> >>> >> == >> >>> >> > = >> >>> >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 >> (r35314 >> >>> >> > 8) >> >>> >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 >> (r35314 >> >>> >> > 9) >> >>> >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) >> >>> >> > #define PV_STAT(x) do { } while (0) >> >>> >> > #endif >> >>> >> > >> >>> >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) >> >>> >> > +#undef pa_index >> >>> >> > +#define pa_index(pa) ({ >> \ >> >>> >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ >> >>> >> > + ("address %lx beyond the last segment", (pa))); \ >> >>> >> > + (pa) >> PDRSHIFT; \ >> >>> >> > +}) >> >>> >> > +#if VM_NRESERVLEVEL > 0 >> >>> >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) >> >>> >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) >> >>> >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ >> >>> >> > + (&(pa_to_pmdp(pa)->pv_lock)) >> >>> >> > +#else >> >>> >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) >> >>> >> > >> >>> >> > #define NPV_LIST_LOCKS MAXCPU >> >>> >> > >> >>> >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ >> >>> >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) >> >>> >> > +#endif >> >>> >> > >> >>> >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ >> >>> >> > struct rwlock **_lockp = (lockp); \ >> >>> >> > @@ -400,14 +412,22 @@ static int pmap_initialized; >> >>> >> > >> >>> >> > /* >> >>> >> > * Data for the pv entry allocation mechanism. >> >>> >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] >> >>> >> > - * elements, but reads are not. >> >>> >> > + * Updates to pv_invl_gen are protected by the pv list lock but >> >>> >> > reads >> >>> >> > are >> >>> >> no >> >>> >> > t. >> >>> >> > */ >> >>> >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = >> >>> >> > TAILQ_HEAD_INITIALIZER(pv_chu >> >>> >> nk >> >>> >> > s); >> >>> >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; >> >>> >> > +#if VM_NRESERVLEVEL > 0 >> >>> >> > +struct pmap_large_md_page { >> >>> >> > + struct rwlock pv_lock; >> >>> >> > + struct md_page pv_page; >> >>> >> > + u_long pv_invl_gen; >> >>> >> > +}; >> >>> >> > +static struct pmap_large_md_page *pv_table; >> >>> >> > +#else >> >>> >> > static struct rwlock __exclusive_cache_line >> >>> >> > pv_list_locks[NPV_LIST_LOCKS]; >> >>> >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; >> >>> >> > static struct md_page *pv_table; >> >>> >> > +#endif >> >>> >> > static struct md_page pv_dummy; >> >>> >> > >> >>> >> > /* >> >>> >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, >> >>> >> > invl_wait_slow, >> >>> >> > CTLFL >> >>> >> A >> >>> >> > "Number of slow invalidation waits for lockless DI"); >> >>> >> > #endif >> >>> >> > >> >>> >> > +#if VM_NRESERVLEVEL > 0 >> >>> >> > static u_long * >> >>> >> > pmap_delayed_invl_genp(vm_page_t m) >> >>> >> > { >> >>> >> > >> >>> >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); >> >>> >> > +} >> >>> >> > +#else >> >>> >> > +static u_long * >> >>> >> > +pmap_delayed_invl_genp(vm_page_t m) >> >>> >> > +{ >> >>> >> > + >> >>> >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % >> >>> >> > NPV_LIST_LO >> >>> CKS]); >> >>> >> > } >> >>> >> > +#endif >> >>> >> > >> >>> >> > static void >> >>> >> > pmap_delayed_invl_callout_func(void *arg __unused) >> >>> >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) >> >>> >> > m->md.pat_mode = PAT_WRITE_BACK; >> >>> >> > } >> >>> >> > >> >>> >> > +#if VM_NRESERVLEVEL > 0 >> >>> >> > +static void >> >>> >> > +pmap_init_pv_table(void) >> >>> >> > +{ >> >>> >> > + struct pmap_large_md_page *pvd; >> >>> >> > + vm_size_t s; >> >>> >> > + long start, end, highest, pv_npg; >> >>> >> > + int domain, i, j, pages; >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * We strongly depend on the size being a power of two, so the >> >>> assert >> >>> >> > + * is overzealous. However, should the struct be resized to a >> >>> >> > + * different power of two, the code below needs to be >> >>> >> > revisited >> >>> . >> >>> >> > + */ >> >>> >> > + CTASSERT((sizeof(*pvd) == 64)); >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * Calculate the size of the array. >> >>> >> > + */ >> >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); >> >>> >> > + s = round_page(s); >> >>> >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); >> >>> >> > + if (pv_table == NULL) >> >>> >> > + panic("%s: kva_alloc failed\n", __func__); >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * Iterate physical segments to allocate space for respective >> >>> >> > p >> >>> ages. >> >>> >> > + */ >> >>> >> > + highest = -1; >> >>> >> > + s = 0; >> >>> >> > + for (i = 0; i < vm_phys_nsegs; i++) { >> >>> >> > + start = vm_phys_segs[i].start / NBPDR; >> >>> >> > + end = vm_phys_segs[i].end / NBPDR; >> >>> >> > + domain = vm_phys_segs[i].domain; >> >>> >> > + >> >>> >> > + if (highest >= end) >> >>> >> > + continue; >> >>> >> > + >> >>> >> > + if (start < highest) { >> >>> >> > + start = highest + 1; >> >>> >> > + pvd = &pv_table[start]; >> >>> >> > + } else { >> >>> >> > + /* >> >>> >> > + * The lowest address may land somewhere in the >> >>> middle >> >>> >> > + * of our page. Simplify the code by pretending >> >>> it is >> >>> >> > + * at the beginning. >> >>> >> > + */ >> >>> >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); >> >>> >> > + pvd = (struct pmap_large_md_page *)trunc_page(p >> >>> vd); >> >>> >> > + start = pvd - pv_table; >> >>> >> > + } >> >>> >> > + >> >>> >> > + pages = end - start + 1; >> >>> >> > + s = round_page(pages * sizeof(*pvd)); >> >>> >> > + highest = start + (s / sizeof(*pvd)) - 1; >> >>> >> > + >> >>> >> > + for (j = 0; j < s; j += PAGE_SIZE) { >> >>> >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, >> >>> >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); >> >>> >> > + if (m == NULL) >> >>> >> > + panic("vm_page_alloc_domain failed for >> >>> %lx\n", >> >>> >> > (vm_offset_t)pvd + j); >> >>> >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); >> >>> >> > + } >> >>> >> > + >> >>> >> > + for (j = 0; j < s / sizeof(*pvd); j++) { >> >>> >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW >> >>> _NEW); >> >>> >> > + TAILQ_INIT(&pvd->pv_page.pv_list); >> >>> >> > + pvd->pv_page.pv_gen = 0; >> >>> >> > + pvd->pv_page.pat_mode = 0; >> >>> >> > + pvd->pv_invl_gen = 0; >> >>> >> > + pvd++; >> >>> >> > + } >> >>> >> > + } >> >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); >> >>> >> > +} >> >>> >> > +#else >> >>> >> > +static void >> >>> >> > +pmap_init_pv_table(void) >> >>> >> > +{ >> >>> >> > + vm_size_t s; >> >>> >> > + long i, pv_npg; >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * Initialize the pool of pv list locks. >> >>> >> > + */ >> >>> >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) >> >>> >> > + rw_init(&pv_list_locks[i], "pmap pv list"); >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * Calculate the size of the pv head table for superpages. >> >>> >> > + */ >> >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >>> >> > + >> >>> >> > + /* >> >>> >> > + * Allocate memory for the pv head table for superpages. >> >>> >> > + */ >> >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); >> >>> >> > + s = round_page(s); >> >>> >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | >> >>> >> > M_ZERO); >> >>> >> > + for (i = 0; i < pv_npg; i++) >> >>> >> > + TAILQ_INIT(&pv_table[i].pv_list); >> >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); >> >>> >> > +} >> >>> >> > +#endif >> >>> >> > + >> >>> >> > /* >> >>> >> > * Initialize the pmap module. >> >>> >> > * Called by vm_init, to initialize any structures that the >> >>> >> > pmap >> >>> >> > @@ -1813,8 +1948,7 @@ pmap_init(void) >> >>> >> > { >> >>> >> > struct pmap_preinit_mapping *ppim; >> >>> >> > vm_page_t m, mpte; >> >>> >> > - vm_size_t s; >> >>> >> > - int error, i, pv_npg, ret, skz63; >> >>> >> > + int error, i, ret, skz63; >> >>> >> > >> >>> >> > /* L1TF, reserve page @0 unconditionally */ >> >>> >> > vm_page_blacklist_add(0, bootverbose); >> >>> >> > @@ -1902,26 +2036,7 @@ pmap_init(void) >> >>> >> > */ >> >>> >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, >> >>> >> > MTX_DEF) >> >>> ; >> >>> >> > >> >>> >> > - /* >> >>> >> > - * Initialize the pool of pv list locks. >> >>> >> > - */ >> >>> >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) >> >>> >> > - rw_init(&pv_list_locks[i], "pmap pv list"); >> >>> >> > - >> >>> >> > - /* >> >>> >> > - * Calculate the size of the pv head table for superpages. >> >>> >> > - */ >> >>> >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); >> >>> >> > - >> >>> >> > - /* >> >>> >> > - * Allocate memory for the pv head table for superpages. >> >>> >> > - */ >> >>> >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); >> >>> >> > - s = round_page(s); >> >>> >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | >> >>> >> > M_ZERO); >> >>> >> > - for (i = 0; i < pv_npg; i++) >> >>> >> > - TAILQ_INIT(&pv_table[i].pv_list); >> >>> >> > - TAILQ_INIT(&pv_dummy.pv_list); >> >>> >> > + pmap_init_pv_table(); >> >>> >> > >> >>> >> > pmap_initialized = 1; >> >>> >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { >> >>> >> > >> >>> >> >> >>> >> This causes a page fault during X (xdm) startup, which loads >> >>> >> drm-current-kmod. >> >>> >> >> >>> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >> >>> >> 0xfffffe0093e9c260 >> >>> >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >> >>> >> panic() at panic+0x43/frame 0xfffffe0093e9c310 >> >>> >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >> >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >> >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >> >>> >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >> >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >> >>> >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, >> >>> >> rbp >> >>> >> = >> >>> >> 0xfffffe0093e9c7a0 --- >> >>> >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >> >>> >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >> >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >> >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >> >>> >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 >> >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >> >>> >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >> >>> >> 0x7fffffffeaa0 >> >>> >> >> >>> >> --- >> >>> >> Uptime: 3m33s >> >>> >> Dumping 945 out of 7974 >> >>> >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >> >>> >> >> >>> >> (kgdb) bt >> >>> >> #0 doadump (textdump=1) at pcpu_aux.h:55 >> >>> >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 >> >>> >> #2 0xffffffff8068caa9 in vpanic (fmt=, >> >>> >> ap=) >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 >> >>> >> #3 0xffffffff8068c8a3 in panic (fmt=) >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 >> >>> >> #4 0xffffffff8098c966 in vm_fault (map=, >> >>> >> vaddr=, fault_type=, >> >>> >> fault_flags=, m_hold=> >>> >> out>) >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 >> >>> >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, >> >>> >> vaddr=, fault_type=2 '\002', >> >>> >> fault_flags=, signo=0x0, ucode=0x0) >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 >> >>> >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, >> >>> >> signo=, ucode=) >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> >>> >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 >> >>> >> #8 0xffffffff809f1aac in calltrap () >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> >>> >> ---Type to continue, or q to quit--- >> >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=> >>> >> out>, >> >>> >> flags=2677542912, psind=) at atomic.h:221 >> >>> >> #10 0xffffffff8098c4a9 in vm_fault (map=, >> >>> >> vaddr=, fault_type=232 '\ufffd', >> >>> >> fault_flags=, m_hold=0x0) >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 >> >>> >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, >> >>> >> vaddr=, fault_type=2 '\002', >> >>> >> fault_flags=, signo=0xfffffe0093e9ca84, >> >>> >> ucode=0xfffffe0093e9ca80) at >> >>> >> /opt/src/svn-current/sys/vm/vm_fault.c:568 >> >>> >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, >> >>> >> signo=, ucode=) >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 >> >>> >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 >> >>> >> #14 0xffffffff809f1aac in calltrap () >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 >> >>> >> #15 0x0000000030e2a9c3 in ?? () >> >>> >> Previous frame inner to this frame (corrupt stack?) >> >>> >> Current language: auto; currently minimal >> >>> >> (kgdb) frame 9 >> >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, >> >>> >> va=851443712, m=0xfffffe0005b25ce8, prot=> >>> >> out>, >> >>> >> flags=2677542912, psind=) at atomic.h:221 >> >>> >> 221 ATOMIC_CMPSET(long); >> >>> >> (kgdb) l >> >>> >> 216 } >> >>> >> 217 >> >>> >> 218 ATOMIC_CMPSET(char); >> >>> >> 219 ATOMIC_CMPSET(short); >> >>> >> 220 ATOMIC_CMPSET(int); >> >>> >> 221 ATOMIC_CMPSET(long); >> >>> >> 222 >> >>> >> 223 /* >> >>> >> 224 * Atomically add the value of v to the integer pointed to by >> >>> >> p >> >>> and >> >>> >> return >> >>> >> 225 * the previous value of *p. >> >>> >> (kgdb) >> >>> > >> >>> > I should use kgdb from ports instead of /usr/libexec version. >> >>> > Similar >> >>> > result. >> >>> > >> >>> > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> >> >>> > lock)) >> >>> > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 >> >>> > cpuid = 1 >> >>> > time = 1570417211 >> >>> > KDB: stack backtrace: >> >>> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame >> >>> > 0xfffffe0093e9c260 >> >>> > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 >> >>> > panic() at panic+0x43/frame 0xfffffe0093e9c310 >> >>> > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 >> >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 >> >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 >> >>> > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 >> >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 >> >>> > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, >> >>> > rbp >> >>> > = >> >>> > 0xfffffe0093e9c7a0 --- >> >>> > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 >> >>> > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 >> >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 >> >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 >> >>> > trap() at trap+0x438/frame 0xfffffe0093e9cab0 >> >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 >> >>> > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = >> >>> > 0x7fffffffeaa0 >> >>> > --- >> >>> > Uptime: 3m33s >> >>> > Dumping 945 out of 7974 >> >>> > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% >> >>> > >> >>> > __curthread () at >> >>> > /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 >> >>> > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(st >> ruct pcp >> >>> u, >> >>> > (kgdb) >> >>> > >> >>> > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 >> >>> > (kgdb) frame 10 >> >>> > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, >> >>> > src=, expect=) >> >>> > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 >> >>> > 221 ATOMIC_CMPSET(long); >> >>> > (kgdb) l >> >>> > 216 } >> >>> > 217 >> >>> > 218 ATOMIC_CMPSET(char); >> >>> > 219 ATOMIC_CMPSET(short); >> >>> > 220 ATOMIC_CMPSET(int); >> >>> > 221 ATOMIC_CMPSET(long); >> >>> > 222 >> >>> > 223 /* >> >>> > 224 * Atomically add the value of v to the integer pointed to by p >> >>> > and >> >>> > return >> >>> > 225 * the previous value of *p. >> >>> > (kgdb) >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > Cheers, >> >>> > Cy Schubert >> >>> > FreeBSD UNIX: Web: http://www.FreeBSD.org >> >>> > >> >>> > The need of the many outweighs the greed of the few. >> >>> > >> >>> > >> >>> > >> >>> >> >>> >> >>> -- >> >>> Mateusz Guzik >> >> >> >> >> >> >> >> >> >> >> > >> > >> > -- >> > Mateusz Guzik >> > >> >> >> -- >> Mateusz Guzik > > > -- Mateusz Guzik From owner-svn-src-head@freebsd.org Tue Oct 8 12:53:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0E5501475C5; Tue, 8 Oct 2019 12:53:43 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mx1.sbone.de (cross.sbone.de [195.201.62.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ncjL6hNfz3PvH; Tue, 8 Oct 2019 12:53:42 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 872858D4A218; Tue, 8 Oct 2019 12:53:41 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 05967E7083A; Tue, 8 Oct 2019 12:53:41 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id g8dM2Gqc2O3V; Tue, 8 Oct 2019 12:53:38 +0000 (UTC) Received: from [192.168.2.110] (unknown [IPv6:fde9:577b:c1a9:31:4d5f:285f:ca38:521f]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id CA93BE707C8; Tue, 8 Oct 2019 12:53:38 +0000 (UTC) From: "Bjoern A. Zeeb" To: "Hans Petter Selasky" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353302 - head/sys/net Date: Tue, 08 Oct 2019 12:53:37 +0000 X-Mailer: MailMate (2.0BETAr6142) Message-ID: <68CDD3DA-3E39-401C-8402-C54D37AFADBC@lists.zabbadoz.net> In-Reply-To: <201910081106.x98B6OBB013578@repo.freebsd.org> References: <201910081106.x98B6OBB013578@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46ncjL6hNfz3PvH X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 12:53:43 -0000 On 8 Oct 2019, at 11:06, Hans Petter Selasky wrote: > Author: hselasky > Date: Tue Oct 8 11:06:24 2019 > New Revision: 353302 > URL: https://svnweb.freebsd.org/changeset/base/353302 > > Log: > Fix regression issue after r353274: > > Make sure the vnet_shutdown field is not set until after all > VNET_SYSUNINIT()'s in the SI_SUB_VNET_DONE subsystem have been > executed. Especially the vnet_if_return() functions requires that > if_move() is still operational. Which basically means that the boolean suggestion I suggested to you in the end isn’t right either as now some parts of the shutdown run without shutdown being set and checking state boundaries was the right thing. Now to know whether it is a startup or a shutdown you probably need both together? > Reported by: lwhsu@ > MFC after: 1 week > Sponsored by: Mellanox Technologies > > Modified: > head/sys/net/vnet.c > > Modified: head/sys/net/vnet.c > ============================================================================== > --- head/sys/net/vnet.c Tue Oct 8 10:50:16 2019 (r353301) > +++ head/sys/net/vnet.c Tue Oct 8 11:06:24 2019 (r353302) > @@ -279,9 +279,6 @@ vnet_destroy(struct vnet *vnet) > LIST_REMOVE(vnet, vnet_le); > VNET_LIST_WUNLOCK(); > > - /* Signal that VNET is being shutdown. */ > - vnet->vnet_shutdown = 1; > - > CURVNET_SET_QUIET(vnet); > vnet_sysuninit(); > CURVNET_RESTORE(); > @@ -353,15 +350,15 @@ vnet_data_startup(void *dummy __unused) > } > SYSINIT(vnet_data, SI_SUB_KLD, SI_ORDER_FIRST, vnet_data_startup, > NULL); > > -/* Dummy VNET_SYSINIT to make sure we always reach the final end > state. */ > static void > -vnet_sysinit_done(void *unused __unused) > +vnet_sysuninit_shutdown(void *unused __unused) > { > > - return; > + /* Signal that VNET is being shutdown. */ > + curvnet->vnet_shutdown = 1; > } > -VNET_SYSINIT(vnet_sysinit_done, SI_SUB_VNET_DONE, SI_ORDER_ANY, > - vnet_sysinit_done, NULL); > +VNET_SYSUNINIT(vnet_sysuninit_shutdown, SI_SUB_VNET_DONE, > SI_ORDER_FIRST, > + vnet_sysuninit_shutdown, NULL); > > /* > * When a module is loaded and requires storage for a virtualized > global From owner-svn-src-head@freebsd.org Tue Oct 8 13:05:00 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34D80147B21; Tue, 8 Oct 2019 13:05:00 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mx1.sbone.de (cross.sbone.de [195.201.62.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ncyL71F7z3QR9; Tue, 8 Oct 2019 13:04:58 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 4ABC68D4A218; Tue, 8 Oct 2019 13:04:57 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id B9A4BE7083A; Tue, 8 Oct 2019 13:04:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id fGeFbp-vhmQZ; Tue, 8 Oct 2019 13:04:54 +0000 (UTC) Received: from [192.168.2.110] (unknown [IPv6:fde9:577b:c1a9:31:4d5f:285f:ca38:521f]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 34C05E7081F; Tue, 8 Oct 2019 13:04:54 +0000 (UTC) From: "Bjoern A. Zeeb" To: "Hans Petter Selasky" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353274 - in head/sys: net sys Date: Tue, 08 Oct 2019 13:04:53 +0000 X-Mailer: MailMate (2.0BETAr6142) Message-ID: <09893B30-4961-411C-854D-7547EBB96470@lists.zabbadoz.net> In-Reply-To: <41bf4178-689e-573c-2684-450ee02d8de4@selasky.org> References: <201910071415.x97EFfiN064058@repo.freebsd.org> <41bf4178-689e-573c-2684-450ee02d8de4@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46ncyL71F7z3QR9 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of bzeeb-lists@lists.zabbadoz.net designates 195.201.62.131 as permitted sender) smtp.mailfrom=bzeeb-lists@lists.zabbadoz.net X-Spamd-Result: default: False [-5.09 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:195.201.62.131]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[zabbadoz.net]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(-2.79)[ip: (-8.62), ipnet: 195.201.0.0/16(-3.54), asn: 24940(-1.81), country: DE(-0.01)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:195.201.0.0/16, country:DE]; MID_RHS_MATCH_FROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 13:05:00 -0000 On 8 Oct 2019, at 12:50, Hans Petter Selasky wrote: > On 2019-10-08 14:48, Bjoern A. Zeeb wrote: >> On 7 Oct 2019, at 14:15, Hans Petter Selasky wrote: >> >>> Author: hselasky >>> Date: Mon Oct  7 14:15:41 2019 >>> New Revision: 353274 >>> URL: https://svnweb.freebsd.org/changeset/base/353274 >>> >>> Log: >>>   Factor out VNET shutdown check into an own vnet structure field. >>>   Remove the now obsolete vnet_state field. This greatly simplifies >>> the >>>   detection of VNET shutdown and avoids code duplication. >> >> I think I tried to say that the vnet_state is extremely helpful for >> debugging as you know where each of the stacks is during >> initialisation/shutdown, especially with loadable  modules and that >> it should stay and I cannot remember that I removed it in the patch >> that I suggested. >> >> I didn’t re-used a field but extended the structure.  What you did >> means you cannot MFC this easily.  Also it means that all previous >> vnet consumers got invalidated and the VNET_MAGIC_N should have been >> bumped and all modules need a re-compile. >> >> > > OK I can fix that, but should VNET_MAGIC_N be bumped when adding the > new vnet_shutdown boolean to this structure? Thanks! Yes, I guess it should be though it is technically not needed. But also see my other follow-up email to the bool flag. I think we are back to the point of “is the vnet in a stable state or not?†whereas for your further frag6 change your question only is “is the vnet shutting down or not because resources might be freed already otherwise?â€. For your https://reviews.freebsd.org/D19622 the boolean shutdown flag as it was originally in my patch should be fine. The fact that if_vmove() and related are not happy is my fault. Sorry. There’s yet another problem by the fact that the interfaces go away first, as that doesn’t allow us to properly shutdown connections anymore. However if they do not go first packets will continue to come in and a clean shutdown without any packet processing will be even harder. I think (in a quite moment of a day or two, maybe with a whiteboard) we should re-hash that decision I had to make a few years ago in the light of epoch(9) now. Probably that will almost be the same problem as the mbuf carrying the ifp along. (for another day…). /bz From owner-svn-src-head@freebsd.org Tue Oct 8 13:43:05 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3BF8128F23; Tue, 8 Oct 2019 13:43:05 +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 46ndpK498cz3xZh; Tue, 8 Oct 2019 13:43:05 +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 6B7AACFE; Tue, 8 Oct 2019 13:43:05 +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 x98Dh5Xm006906; Tue, 8 Oct 2019 13:43:05 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Dh5bW006905; Tue, 8 Oct 2019 13:43:05 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201910081343.x98Dh5bW006905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Tue, 8 Oct 2019 13:43:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353305 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 353305 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 13:43:05 -0000 Author: vangyzen Date: Tue Oct 8 13:43:05 2019 New Revision: 353305 URL: https://svnweb.freebsd.org/changeset/base/353305 Log: Fix problems in the kern_maxfiles__increase test ATF functions such as ATF_REQUIRE do not work correctly in child processes. Use plain C functions to report errors instead. In the parent, check for the untimely demise of children. Without this, the test hung until the framework's timeout. Raise the resource limit on the number of open files. If this was too low, the test hit the two problems above. Restore the kern.maxfiles sysctl OID in the cleanup function. The body prematurely removed the symlink in which the old value was saved. Make the test more robust by opening more files. In fact, due to the integer division by 4, this was necessary to make the test valid with some initial values of maxfiles. Thanks, asomers@. wait() for children instead of sleeping. Clean up a temporary file created by the test ("afile"). Reviewed by: asomers MFC after: 1 week Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D21900 Modified: head/tests/sys/kern/kern_descrip_test.c Modified: head/tests/sys/kern/kern_descrip_test.c ============================================================================== --- head/tests/sys/kern/kern_descrip_test.c Tue Oct 8 11:27:48 2019 (r353304) +++ head/tests/sys/kern/kern_descrip_test.c Tue Oct 8 13:43:05 2019 (r353305) @@ -28,16 +28,22 @@ __FBSDID("$FreeBSD$"); #include +#include +#include +#include +#include +#include +#include + #include #include #include #include #include +#include #include -#include -#include -#include #include + #include static volatile sig_atomic_t done; @@ -92,8 +98,13 @@ openfiles2(size_t n) int r; errno = 0; - for (i = 0; i < n; i++) - ATF_REQUIRE((r = open(AFILE, O_RDONLY)) != -1); + for (i = 0; i < n; i++) { + r = open(AFILE, O_RDONLY); + if (r < 0) { + fprintf(stderr, "open: %s\n", strerror(errno)); + _exit(1); + } + } kill(getppid(), SIGUSR1); for (;;) { @@ -118,10 +129,14 @@ openfiles(size_t n) for (i = 0; i < PARALLEL; i++) if (fork() == 0) openfiles2(n / PARALLEL); - while (done != PARALLEL) + while (done != PARALLEL) { usleep(1000); + ATF_REQUIRE_EQ_MSG(0, waitpid(-1, NULL, WNOHANG), + "a child exited unexpectedly"); + } unlink(RENDEZVOUS); - usleep(40000); + for (i = 0; i < PARALLEL; i++) + ATF_CHECK_MSG(wait(NULL) > 0, "wait: %s", strerror(errno)); } ATF_TC_WITH_CLEANUP(kern_maxfiles__increase); @@ -138,6 +153,7 @@ ATF_TC_BODY(kern_maxfiles__increase, tc) size_t oldlen; int maxfiles, oldmaxfiles, current; char buf[80]; + struct rlimit rl; oldlen = sizeof(maxfiles); if (sysctlbyname("kern.maxfiles", &maxfiles, &oldlen, NULL, 0) == -1) @@ -160,8 +176,11 @@ ATF_TC_BODY(kern_maxfiles__increase, tc) atf_tc_fail("getsysctlbyname(%s): %s", "kern.maxfiles", strerror(errno)); - openfiles(oldmaxfiles - current + 1); - (void)unlink(VALUE); + rl.rlim_cur = rl.rlim_max = maxfiles; + ATF_REQUIRE_EQ_MSG(0, setrlimit(RLIMIT_NOFILE, &rl), + "setrlimit(RLIMIT_NOFILE, %d): %s", maxfiles, strerror(errno)); + + openfiles(oldmaxfiles - current + EXPANDBY / 2); } ATF_TC_CLEANUP(kern_maxfiles__increase, tc) @@ -178,6 +197,8 @@ ATF_TC_CLEANUP(kern_maxfiles__increase, tc) &oldmaxfiles, oldlen); } } + (void)unlink(VALUE); + (void)unlink(AFILE); } ATF_TP_ADD_TCS(tp) From owner-svn-src-head@freebsd.org Tue Oct 8 14:14:22 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C07B4129FDA; Tue, 8 Oct 2019 14:14:22 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (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 46nfVP4spLz40PK; Tue, 8 Oct 2019 14:14:21 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-io1-xd43.google.com with SMTP id u8so36795938iom.5; Tue, 08 Oct 2019 07:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eyMktLx5JKMlWEbWU62ntsOxTH35nhql57eSECllIYo=; b=bUXvj5pq7bZjBla21f4/q+XX708X6PJ2Lr7iHF2v9V/d5DArhNmDUPT4bk9HIOgAHw MKigwfybn8xM85vVG8UCeNHpawQAyXFxEb2wVB75i+TKgAsLuEVdYW6V9sqkiqmyu7LF sMmQs3oRUJPUN6CPX2kttkHw4Mqzkx/KKYvfuSYKqjPn7G5TleX9YmlKVdpk8nLmVCIL MwtDx+a+0qsQmUqNaK2QCJbrjTaj9gecadSRRDSgK3eiBS2KHFwolxTUWkt+Jnl22e3Z y0cYE3LmveNLA36+RBD7JImnx1/7BlDtT40IWDgG8ZrRaCJiOpbIbvQuZc4a5ZqH1Q1i Q8Sg== 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 :in-reply-to:references:mime-version:content-transfer-encoding; bh=eyMktLx5JKMlWEbWU62ntsOxTH35nhql57eSECllIYo=; b=Kr5vks/bqjyuW9fleNvwLG7R9bocQde+u8SqmArD4vipopzR5cGtuEtAKGgFqxL1Cj OMboAMNN2Qku4YT0VNVVl+LY0q2G5VbuM8I0zt5OWwy7z95uXb3A83dg0w/8Y0xKzQNv 281TRJYpQQQsliMqAbbYu0EIBU4nOtZu8MoEHVwhXUPJuNE3eH12Td7lwuE/kRSp3CdW vj7onJgLOjZK6Skn5kkHsUly+aqJLMnG8OL/Thx4kUXGbBQ389+3R1eQfQ1MhV+WknX9 JshqGfWDWsVKomwhIUdOq/o3VzaX3xS6YVPPYyX0rohPGrRgNYK6OLCPaobSVZ9Icjlw ZHHQ== X-Gm-Message-State: APjAAAXqdziFRLHqm2aPRL7plnx2dUB/016sCOWc+o1v4v52B31vNZdg NzqFhNifitNAqO8Kz7NC0TOH0doi X-Google-Smtp-Source: APXvYqytbCJgGzKvtLPmZ58a8e7rugbrH2mMv0cJmqXs3454bJs4cN0MmvfrjSz2+a4KGF63XQ89UA== X-Received: by 2002:a92:c8ca:: with SMTP id c10mr31538892ilq.68.1570544060056; Tue, 08 Oct 2019 07:14:20 -0700 (PDT) Received: from ralga.knownspace (173-25-245-129.client.mchsi.com. [173.25.245.129]) by smtp.gmail.com with ESMTPSA id a25sm6601070iod.62.2019.10.08.07.14.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Oct 2019 07:14:19 -0700 (PDT) Sender: Justin Hibbits Date: Tue, 8 Oct 2019 09:14:14 -0500 From: Justin Hibbits To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353296 - head/sys/powerpc/include Message-ID: <20191008091414.4ae66fb4@ralga.knownspace> In-Reply-To: <20191008081604.GZ44691@kib.kiev.ua> References: <201910080136.x981aYTq073145@repo.freebsd.org> <20191008081604.GZ44691@kib.kiev.ua> X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; powerpc64-portbld-freebsd13.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46nfVP4spLz40PK X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=bUXvj5pq; dmarc=none; spf=pass (mx1.freebsd.org: domain of chmeeedalf@gmail.com designates 2607:f8b0:4864:20::d43 as permitted sender) smtp.mailfrom=chmeeedalf@gmail.com X-Spamd-Result: default: False [-2.74 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; 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]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCVD_IN_DNSWL_NONE(0.00)[3.4.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]; IP_SCORE(-0.54)[ip: (2.04), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), country: US(-0.05)]; FORGED_SENDER(0.30)[jhibbits@FreeBSD.org,chmeeedalf@gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[129.245.25.173.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[jhibbits@FreeBSD.org,chmeeedalf@gmail.com]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:14:22 -0000 On Tue, 8 Oct 2019 11:16:04 +0300 Konstantin Belousov wrote: > On Tue, Oct 08, 2019 at 01:36:34AM +0000, Justin Hibbits wrote: > > Author: jhibbits > > Date: Tue Oct 8 01:36:34 2019 > > New Revision: 353296 > > URL: https://svnweb.freebsd.org/changeset/base/353296 > > > > Log: > > powerpc: Implement atomic_(f)cmpset_ for short and char > > | > > This adds two implementations for each atomic_fcmpset_ and > > atomic_cmpset_ short and char functions, selectable at compile time > > for the target architecture. By default, it uses a generic > > shift-and-mask to perform atomic updates to sub-components of > > 32-bit words from . However, if > > ISA_206_ATOMICS is defined it uses the ll/sc instructions for > > halfword and bytes, introduced in PowerISA 2.06. These > > instructions are supported by all IBM processors from POWER7 on, as > > well as the Freescale/NXP e6500 core. Although the e5500 and > > e500mc both implement PowerISA 2.06 they do not implement these > > instructions. As part of this, clean up the atomic_(f)cmpset_acq > > and _rel wrappers, by using macros to reduce code duplication. > > > > ISA_206_ATOMICS requires clang or newer binutils (2.20 or later). > > > Why don't you use normal word-sized ll/sc tlwarx/stwcx, and only > modifying the part of the register as needed ? This would work on > all supported CPUs, right ? > > When kevans did the _atomic_subword.h, one of the arches involved was > sparc64, which does not have ll/sc. Also for MIPS there are some fine > details which might mean that C implementation is less work than using > word-sized ll/sc. But why for power ? No real significant reason. In fact, the review's diff has exactly what you're asking for. The only reason I modified it for commit with Kyle's work was purely readability, I thought using the C wrapper with atomic_fcmpset_() was just marginally cleaner. I haven't checked, but I don't think the inline code difference is too great, but I'll have to do another review of it to be sure. It's easy enough to commit the original diff over top instead, if that's the better way to go. - Justin From owner-svn-src-head@freebsd.org Tue Oct 8 14:22:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5C8012A600 for ; Tue, 8 Oct 2019 14:22:41 +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 46nfh10rjsz419r for ; Tue, 8 Oct 2019 14:22:40 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1570544559; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=YIpFhbnph1FvrSR2WGHvnOokeifF4HvHLl4VBfpmbzaQP62k/ZnfAYR/vGsAh+c5gFEFpGuYBFv/E gtUpk3e3bFwBlhP8pt9N4kHRxPrGF5dbv/ZN1i52Mp3iYcCQirVx4k95K1AklKClRFBwbMtAJjLg9t HDaqI0Os0f6pofAbjnLXvf8Z7vDytspNHbssbvLI6p70le/UqJviH583eVHYnJ7+zeFsGLj5F4hElB tfBC4GAc9fKc097UrdVt5dWLsNDnivo8QgA44pwNK/KDjzcz1DVG7lo/YV3Hvz7qll7TJC9noKLcyl aPFyNhO5VeK5tj5mtWyfC7jjGmQ/HHA== 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=A2jSNv+PIZn52lGqcZ2A/y6maEmeXYf9ZQVvE0DLVrg=; b=mypNDUsfxu7+Fu/DnVZYdmJYAUlcPV51k91Js1iSlJ3hI5ffXM+hObbQ129jGzJUAf86SftgFSfoj Jlq5bDb6zEtTMChpTeGJUj3wRhCD8CsZfFATQt5v/oTx44bq3wyJvHePwRLmaXMj7G0TBpxBP3hbCX +TDFkKSPd6W8zleEZEIBSKyjvPcTdgu9feV84XZA/7rMs3oXIMiPi9m5Fdy4Mkul+2BTqDMnA/gFrC Y4smf83O4UjjQd7CTxjbLRYscD0p9HaSXux+E+j5QRWH3HNuhQhgMqxmUuFvHtY98lDviq+JXMN/2N 6db99Rw0URHR+sNpldbHKAVgK3irqlA== 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:cc:to:from:subject:message-id:from; bh=A2jSNv+PIZn52lGqcZ2A/y6maEmeXYf9ZQVvE0DLVrg=; b=DBg3HIBlxqWy4oF8ilsF8jlIRWveHk/ANOhkHWlbBiJS34ynYdiFHT9ksAIcsTD14FxFgkae7BSm3 2/dg5G8wEM7HyR9+239zZ3Rh0sCueP4IvJialnI/cyHr+h9eqZcofOhZFHi36KBvy1Ywol+7ySaG2V z4QV6nVEu5TdH8sivQTcGAbJe4EbAmMvnNBO/05VgURHe7XWy4FnRathGF/z714Y0cYNG0ruStYqpE icG6liqgFRh+ztdaCbbCxrCwEVs4cfL3V+MFraU38d0382i2oL4mXPEtFxBCaEoXduDRASXo8lgw8y MId2sKalKg0yc5ZYr66hKZNMsIGX7bw== X-MHO-RoutePath: aGlwcGll X-MHO-User: 12026c83-e9d7-11e9-85ed-13b9aae3a1d2 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 12026c83-e9d7-11e9-85ed-13b9aae3a1d2; Tue, 08 Oct 2019 14:22:37 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id x98EMXKa082713; Tue, 8 Oct 2019 08:22:33 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> Subject: Re: svn commit: r352520 - head/usr.sbin/pkg From: Ian Lepore To: Emmanuel Vadot , Glen Barber Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 08 Oct 2019 08:22:33 -0600 In-Reply-To: <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46nfh10rjsz419r X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.93 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.93)[-0.927,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:22:41 -0000 On Tue, 2019-10-08 at 12:26 +0200, Emmanuel Vadot wrote: > Hi Glen, > > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > Glen Barber wrote: > > > Author: gjb > > Date: Thu Sep 19 16:43:12 2019 > > New Revision: 352520 > > URL: https://svnweb.freebsd.org/changeset/base/352520 > > > > Log: > > Apply r346792 (cperciva) from stable/12 to head. The original commit > > message: > > > > On non-x86 systems, use "quarterly" packages. > > > > x86 architectures have "latest" package builds on stable/*, so keep using > > those (they'll get switched over to "quarterly" during releases). > > > > The original commit was a direct commit to stable/12, as at the time it > > was presumed it would not be necessary for head. However, when it is time > > to create a releng branch or switch from PRERELEASE/STABLE to BETA/RC, the > > pkg(7) Makefile needs further adjusting. This commit includes those > > further adjustments, evaluating the BRANCH variable from release/Makefile > > to determine the pkg(7) repository to use. > > > > MFC after: immediate (if possible) > > Sponsored by: Rubicon Communications, LLC (Netgate) > > > > Modified: > > head/usr.sbin/pkg/Makefile > > > > Modified: head/usr.sbin/pkg/Makefile > > ============================================================================== > > --- head/usr.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 (r352519) > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 (r352520) > > @@ -1,6 +1,16 @@ > > # $FreeBSD$ > > > > +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" > > +PKGCONFBRANCH?= quarterly > > +.else > > +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH > > +BRANCH?= ${_BRANCH} > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > +PKGCONFBRANCH?= quarterly > > +. else > > PKGCONFBRANCH?= latest > > +. endif > > +.endif > > CONFS= FreeBSD.conf.${PKGCONFBRANCH} > > CONFSNAME= FreeBSD.conf > > CONFSDIR= /etc/pkg > > Tier 2 (and weird tier1 like aarch64) only have latest for current so > this doesn't work. > Also this depends on MACHINE and iirc MACHINE is always the host when > cross compiling. > I think this need to be reverted. > > Cheers, > MACHINE is the build host when you first launch make(1), but the crossbuild code in Makefile.inc1 overrides MACHINE to TARGET (and MACHINE_ARCH to TARGET_ARCH) and launches a sub-make that way. -- Ian From owner-svn-src-head@freebsd.org Tue Oct 8 14:33:37 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 26DFB12A91F; Tue, 8 Oct 2019 14:33:37 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46nfwb1KZwz41gw; Tue, 8 Oct 2019 14:33:34 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id 88563f08; Tue, 8 Oct 2019 16:33:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=vnIFvoVVsNZFk9tXLOQyb981olQ=; b=tBMt4YgePqzgvsiExAO9IzU2AMlK 58ZskSVR7sRsO+HCS+UAJ0q/b/iq5gQrVxxzMFhO50fmHBzU8AX2nFTbEWOk+2d7 xQlLCEW2E7yuOq8PFHjOW1HqqwX4SRYZ38qjNNpYxygyqeDZhzWut28L6MWMOoPa isUc8+M5qVbeuyQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=MpRwFb3j1px8moW/jMbNaDvFofcrRYbBr1h/1re6Q1tMwkltE4d7bri8 5h3aE3QXjmo6WMZGTPNB71GjXqpQ3AWsQJcy4NRObvHw0n5hIXJ+sETob9HKluq3 ExAgwxp3WDaH3t3eRj1t7ZnQhN/LWxaRK2oRqkW2xPPiBrDBpIQ= Received: from skull.home.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id e05ba351 TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Tue, 8 Oct 2019 16:33:32 +0200 (CEST) Date: Tue, 8 Oct 2019 16:33:32 +0200 From: Emmanuel Vadot To: Ian Lepore Cc: Glen Barber , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-Id: <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> In-Reply-To: <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46nfwb1KZwz41gw X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bidouilliste.com header.s=mail header.b=tBMt4Yge; dmarc=none; spf=pass (mx1.freebsd.org: domain of manu@bidouilliste.com designates 212.83.177.182 as permitted sender) smtp.mailfrom=manu@bidouilliste.com X-Spamd-Result: default: False [-1.20 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[bidouilliste.com:s=mail]; NEURAL_HAM_MEDIUM(-0.78)[-0.783,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:212.83.177.182/32]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MV_CASE(0.50)[]; DMARC_NA(0.00)[bidouilliste.com]; RCPT_COUNT_FIVE(0.00)[5]; NEURAL_HAM_LONG(-0.89)[-0.886,0]; DKIM_TRACE(0.00)[bidouilliste.com:+]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.37)[ip: (-0.74), ipnet: 212.83.160.0/19(2.48), asn: 12876(0.11), country: FR(-0.00)]; ASN(0.00)[asn:12876, ipnet:212.83.160.0/19, country:FR]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:33:37 -0000 On Tue, 08 Oct 2019 08:22:33 -0600 Ian Lepore wrote: > On Tue, 2019-10-08 at 12:26 +0200, Emmanuel Vadot wrote: > > Hi Glen, > > > > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > > Glen Barber wrote: > > > > > Author: gjb > > > Date: Thu Sep 19 16:43:12 2019 > > > New Revision: 352520 > > > URL: https://svnweb.freebsd.org/changeset/base/352520 > > > > > > Log: > > > Apply r346792 (cperciva) from stable/12 to head. The original commit > > > message: > > > > > > On non-x86 systems, use "quarterly" packages. > > > > > > x86 architectures have "latest" package builds on stable/*, so keep using > > > those (they'll get switched over to "quarterly" during releases). > > > > > > The original commit was a direct commit to stable/12, as at the time it > > > was presumed it would not be necessary for head. However, when it is time > > > to create a releng branch or switch from PRERELEASE/STABLE to BETA/RC, the > > > pkg(7) Makefile needs further adjusting. This commit includes those > > > further adjustments, evaluating the BRANCH variable from release/Makefile > > > to determine the pkg(7) repository to use. > > > > > > MFC after: immediate (if possible) > > > Sponsored by: Rubicon Communications, LLC (Netgate) > > > > > > Modified: > > > head/usr.sbin/pkg/Makefile > > > > > > Modified: head/usr.sbin/pkg/Makefile > > > ============================================================================== > > > --- head/usr.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 (r352519) > > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 (r352520) > > > @@ -1,6 +1,16 @@ > > > # $FreeBSD$ > > > > > > +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" > > > +PKGCONFBRANCH?= quarterly > > > +.else > > > +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH > > > +BRANCH?= ${_BRANCH} > > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > > +PKGCONFBRANCH?= quarterly > > > +. else > > > PKGCONFBRANCH?= latest > > > +. endif > > > +.endif > > > CONFS= FreeBSD.conf.${PKGCONFBRANCH} > > > CONFSNAME= FreeBSD.conf > > > CONFSDIR= /etc/pkg > > > > Tier 2 (and weird tier1 like aarch64) only have latest for current so > > this doesn't work. > > Also this depends on MACHINE and iirc MACHINE is always the host when > > cross compiling. > > I think this need to be reverted. > > > > Cheers, > > > > MACHINE is the build host when you first launch make(1), but the > crossbuild code in Makefile.inc1 overrides MACHINE to TARGET (and > MACHINE_ARCH to TARGET_ARCH) and launches a sub-make that way. > > -- Ian Ah ok, thanks for this info. Anyway it's still need to be reverted as all arches should use latest on CURRENT. -- Emmanuel Vadot From owner-svn-src-head@freebsd.org Tue Oct 8 14:36:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A508512AA3C; Tue, 8 Oct 2019 14:36:29 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (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 46nfzw1L7Kz41rK; Tue, 8 Oct 2019 14:36:27 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id Hqb9ifrFkIhW9HqbAiTJ2v; Tue, 08 Oct 2019 08:36:25 -0600 X-Authority-Analysis: v=2.3 cv=FcFJO626 c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=pGLkceISAAAA:8 a=VxmjJ2MpAAAA:8 a=EbiLLYq0rBB13wMDT14A:9 a=3XZ9B_5x4fuDUEud:21 a=tqImdHhgflz-xqX7:21 a=SCrnqfRnnjeyT4tX:21 a=CjuIK1q_8ugA:10 a=a5Ldh8olR6cA:10 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 a=7gXAzLPJhVmCkEl4_tsf:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id 31259BD; Tue, 8 Oct 2019 07:36:23 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x98EaM5F003438; Tue, 8 Oct 2019 07:36:22 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x98EaMSs003435; Tue, 8 Oct 2019 07:36:22 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910081436.x98EaMSs003435@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, x11@freebsd.org Subject: Re: svn commit: r353149 - head/sys/amd64/amd64 In-reply-to: References: <201910062213.x96MDZv3085523@repo.freebsd.org> <201910070406.x9746N0U009068@slippy.cwsent.com> <201910070419.x974JOkQ020574@slippy.cwsent.com> <201910071612.x97GCVx3003714@slippy.cwsent.com> <201910080421.x984LO1D003374@slippy.cwsent.com> Comments: In-reply-to Mateusz Guzik message dated "Tue, 08 Oct 2019 14:52:50 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 08 Oct 2019 07:36:22 -0700 X-CMAE-Envelope: MS4wfBSkElVL44JuweAJUomSGcuGABc8oQjkyM5l9/YDtk75UMdkaiiqFCRCaW6X5P1dfREVanoVFaJzvlHMRd1rVKqC94f/9NGbaIseFELi0RmeQ3U/wvJh 4nV5Mm6BIHkWKWILVC8O5oSwJi+Z+2A2Lstj5mSy2CJftNmLNZbF0my4EUC6pNn7mIOOIPt0QNUfi4cwjwtVU6N9LkmfNsaBwxypbImkBgPjlf0QYPvchCuB E/xphogFL56QkGX1Eecxqg0OmR019fqSmSlinRQ8yE0nzXjzIRq3fZljUOalM4Is X-Rspamd-Queue-Id: 46nfzw1L7Kz41rK X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.136.138) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-3.90 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[6]; REPLYTO_EQ_FROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[138.136.59.64.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; 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:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.30)[ip: (-6.00), ipnet: 64.59.128.0/20(-3.06), asn: 6327(-2.38), country: CA(-0.09)]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:36:29 -0000 Agreed. Yes, this fixes it. Thank you for all your work and persistence. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. In message , Mateusz Guzik writes: > It's definitely drm, I noted it does not like the sparse array. > > This one should do thet trick then: > https://people.freebsd.org/~mjg/pmap-nosparse.diff > > On 10/8/19, Cy Schubert wrote: > > Still no joy. > > > > I still think drm-current-kmod is involved because these are produced just > > prior to the panic whereas the dmesg buffer is clean of them without > > r353149. > > > > Unread portion of the kernel message buffer: > > WARNING !drm_modeset_is_locked(&crtc->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 577 > > WARNING !drm_modeset_is_locked(&crtc->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 577 > > WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed > > at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper > > .c:622 > > WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed > > at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper > > .c:622 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > WARNING !drm_modeset_is_locked(&plane->mutex) failed at > > /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/drm_atomic_helper.c > : > > 821 > > <4>WARN_ON(!mutex_is_locked(&dev->struct_mutex))WARN_ON(!mutex_is_locked(&d > e > > v->struct_mutex)) > > > > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fbc-> > > lock)) > > > > My servers (no X11) work well with this. It's only drm-current-kmod that > > has gas with this rev. > > > > I've cc'd the maintainer of drm-current-kmod (x11@). > > > > > > -- > > Cheers, > > Cy Schubert > > FreeBSD UNIX: Web: http://www.FreeBSD.org > > > > The need of the many outweighs the greed of the few. > > > > > > > > In message > > > om> > > , Mateusz Guzik writes: > >> Does this fix it for you? > >> > >> https://people.freebsd.org/~mjg/pmap-fict.diff > >> > >> On 10/7/19, Mateusz Guzik wrote: > >> > Ok, looks ilke it does not like the sparse array for fictitious > >> > mappings. I'll see about a patch. > >> > > >> > On 10/7/19, Cy Schubert wrote: > >> >> In message > >> >> >> >> om> > >> >> , Mateusz Guzik writes: > >> >>> Can you show: > >> >>> > >> >>> sysctl vm.phys_segso > >> >> > >> >> vm.phys_segs: > >> >> SEGMENT 0: > >> >> > >> >> start: 0x10000 > >> >> end: 0x9d000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f31070 > >> >> > >> >> SEGMENT 1: > >> >> > >> >> start: 0x100000 > >> >> end: 0x1000000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f31070 > >> >> > >> >> SEGMENT 2: > >> >> > >> >> start: 0x1000000 > >> >> end: 0x1ca4000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 3: > >> >> > >> >> start: 0x1cb3000 > >> >> end: 0x1ce3000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 4: > >> >> > >> >> start: 0x1f00000 > >> >> end: 0x20000000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 5: > >> >> > >> >> start: 0x20200000 > >> >> end: 0x40000000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 6: > >> >> > >> >> start: 0x40203000 > >> >> end: 0xd4993000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 7: > >> >> > >> >> start: 0xd6fff000 > >> >> end: 0xd7000000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 8: > >> >> > >> >> start: 0x100001000 > >> >> end: 0x211d4d000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> SEGMENT 9: > >> >> > >> >> start: 0x21fc00000 > >> >> end: 0x21fd44000 > >> >> domain: 0 > >> >> free list: 0xffffffff80f30e00 > >> >> > >> >> > >> >> > >> >>> > >> >>> and from the crashdump: > >> >>> p pv_table > >> >> > >> >> $1 = (struct pmap_large_md_page *) 0xfffffe000e000000 > >> >> > >> >> kgdb) p *pv_table > >> >> $1 = {pv_lock = {lock_object = {lo_name = 0xffffffff80b0a9ce "pmap pv > >> >> list", > >> >> lo_flags = 623050752, lo_data = 0, lo_witness = > >> >> 0x800000000201f163}, > >> >> rw_lock = 1}, pv_page = {pv_list = {tqh_first = 0x0, > >> >> tqh_last = 0xfffffe000e000020}, pv_gen = 0, pat_mode = 0}, > >> >> pv_invl_gen = 0} > >> >> (kgdb) > >> >> > >> >> > >> >> -- > >> >> Cheers, > >> >> Cy Schubert > >> >> FreeBSD UNIX: Web: http://www.FreeBSD.org > >> >> > >> >> The need of the many outweighs the greed of the few. > >> >> > >> >> > >> >>> > >> >>> On 10/7/19, Cy Schubert wrote: > >> >>> > In message <201910070406.x9746N0U009068@slippy.cwsent.com>, Cy > >> >>> > Schubert > >> >>> > writes: > >> >>> >> In message <201910062213.x96MDZv3085523@repo.freebsd.org>, Mateusz > >> >>> >> Guzik > >> >>> >> writes > >> >>> >> : > >> >>> >> > Author: mjg > >> >>> >> > Date: Sun Oct 6 22:13:35 2019 > >> >>> >> > New Revision: 353149 > >> >>> >> > URL: https://svnweb.freebsd.org/changeset/base/353149 > >> >>> >> > > >> >>> >> > Log: > >> >>> >> > amd64 pmap: implement per-superpage locks > >> >>> >> > > >> >>> >> > The current 256-lock sized array is a problem in the following > >> >>> >> > ways: > >> >>> >> > - it's way too small > >> >>> >> > - there are 2 locks per cacheline > >> >>> >> > - it is not NUMA-aware > >> >>> >> > > >> >>> >> > Solve these issues by introducing per-superpage locks backed > >> >>> >> > by > >> >>> >> > pages > >> >>> >> > allocated from respective domains. > >> >>> >> > > >> >>> >> > This significantly reduces contention e.g. during poudriere -j > >> >>> >> > 104. > >> >>> >> > See the review for results. > >> >>> >> > > >> >>> >> > Reviewed by: kib > >> >>> >> > Discussed with: jeff > >> >>> >> > Sponsored by: The FreeBSD Foundation > >> >>> >> > Differential Revision: https://reviews.freebsd.org/D21833 > >> >>> >> > > >> >>> >> > Modified: > >> >>> >> > head/sys/amd64/amd64/pmap.c > >> >>> >> > > >> >>> >> > Modified: head/sys/amd64/amd64/pmap.c > >> >>> >> > ================================================================= > === > >> ==== > >> >>> === > >> >>> >> == > >> >>> >> > = > >> >>> >> > --- head/sys/amd64/amd64/pmap.c Sun Oct 6 20:36:25 2019 > >> (r35314 > >> >>> >> > 8) > >> >>> >> > +++ head/sys/amd64/amd64/pmap.c Sun Oct 6 22:13:35 2019 > >> (r35314 > >> >>> >> > 9) > >> >>> >> > @@ -316,13 +316,25 @@ pmap_pku_mask_bit(pmap_t pmap) > >> >>> >> > #define PV_STAT(x) do { } while (0) > >> >>> >> > #endif > >> >>> >> > > >> >>> >> > -#define pa_index(pa) ((pa) >> PDRSHIFT) > >> >>> >> > +#undef pa_index > >> >>> >> > +#define pa_index(pa) ({ > >> \ > >> >>> >> > + KASSERT((pa) <= vm_phys_segs[vm_phys_nsegs - 1].end, \ > >> >>> >> > + ("address %lx beyond the last segment", (pa))); \ > >> >>> >> > + (pa) >> PDRSHIFT; \ > >> >>> >> > +}) > >> >>> >> > +#if VM_NRESERVLEVEL > 0 > >> >>> >> > +#define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) > >> >>> >> > +#define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) > >> >>> >> > +#define PHYS_TO_PV_LIST_LOCK(pa) \ > >> >>> >> > + (&(pa_to_pmdp(pa)->pv_lock)) > >> >>> >> > +#else > >> >>> >> > #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) > >> >>> >> > > >> >>> >> > #define NPV_LIST_LOCKS MAXCPU > >> >>> >> > > >> >>> >> > #define PHYS_TO_PV_LIST_LOCK(pa) \ > >> >>> >> > (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) > >> >>> >> > +#endif > >> >>> >> > > >> >>> >> > #define CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa) do { \ > >> >>> >> > struct rwlock **_lockp = (lockp); \ > >> >>> >> > @@ -400,14 +412,22 @@ static int pmap_initialized; > >> >>> >> > > >> >>> >> > /* > >> >>> >> > * Data for the pv entry allocation mechanism. > >> >>> >> > - * Updates to pv_invl_gen are protected by the pv_list_locks[] > >> >>> >> > - * elements, but reads are not. > >> >>> >> > + * Updates to pv_invl_gen are protected by the pv list lock but > >> >>> >> > reads > >> >>> >> > are > >> >>> >> no > >> >>> >> > t. > >> >>> >> > */ > >> >>> >> > static TAILQ_HEAD(pch, pv_chunk) pv_chunks = > >> >>> >> > TAILQ_HEAD_INITIALIZER(pv_chu > >> >>> >> nk > >> >>> >> > s); > >> >>> >> > static struct mtx __exclusive_cache_line pv_chunks_mutex; > >> >>> >> > +#if VM_NRESERVLEVEL > 0 > >> >>> >> > +struct pmap_large_md_page { > >> >>> >> > + struct rwlock pv_lock; > >> >>> >> > + struct md_page pv_page; > >> >>> >> > + u_long pv_invl_gen; > >> >>> >> > +}; > >> >>> >> > +static struct pmap_large_md_page *pv_table; > >> >>> >> > +#else > >> >>> >> > static struct rwlock __exclusive_cache_line > >> >>> >> > pv_list_locks[NPV_LIST_LOCKS]; > >> >>> >> > static u_long pv_invl_gen[NPV_LIST_LOCKS]; > >> >>> >> > static struct md_page *pv_table; > >> >>> >> > +#endif > >> >>> >> > static struct md_page pv_dummy; > >> >>> >> > > >> >>> >> > /* > >> >>> >> > @@ -918,12 +938,21 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, > >> >>> >> > invl_wait_slow, > >> >>> >> > CTLFL > >> >>> >> A > >> >>> >> > "Number of slow invalidation waits for lockless DI"); > >> >>> >> > #endif > >> >>> >> > > >> >>> >> > +#if VM_NRESERVLEVEL > 0 > >> >>> >> > static u_long * > >> >>> >> > pmap_delayed_invl_genp(vm_page_t m) > >> >>> >> > { > >> >>> >> > > >> >>> >> > + return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen); > >> >>> >> > +} > >> >>> >> > +#else > >> >>> >> > +static u_long * > >> >>> >> > +pmap_delayed_invl_genp(vm_page_t m) > >> >>> >> > +{ > >> >>> >> > + > >> >>> >> > return (&pv_invl_gen[pa_index(VM_PAGE_TO_PHYS(m)) % > >> >>> >> > NPV_LIST_LO > >> >>> CKS]); > >> >>> >> > } > >> >>> >> > +#endif > >> >>> >> > > >> >>> >> > static void > >> >>> >> > pmap_delayed_invl_callout_func(void *arg __unused) > >> >>> >> > @@ -1803,6 +1832,112 @@ pmap_page_init(vm_page_t m) > >> >>> >> > m->md.pat_mode = PAT_WRITE_BACK; > >> >>> >> > } > >> >>> >> > > >> >>> >> > +#if VM_NRESERVLEVEL > 0 > >> >>> >> > +static void > >> >>> >> > +pmap_init_pv_table(void) > >> >>> >> > +{ > >> >>> >> > + struct pmap_large_md_page *pvd; > >> >>> >> > + vm_size_t s; > >> >>> >> > + long start, end, highest, pv_npg; > >> >>> >> > + int domain, i, j, pages; > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * We strongly depend on the size being a power of two, so the > >> >>> assert > >> >>> >> > + * is overzealous. However, should the struct be resized to a > >> >>> >> > + * different power of two, the code below needs to be > >> >>> >> > revisited > >> >>> . > >> >>> >> > + */ > >> >>> >> > + CTASSERT((sizeof(*pvd) == 64)); > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * Calculate the size of the array. > >> >>> >> > + */ > >> >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); > >> >>> >> > + s = round_page(s); > >> >>> >> > + pv_table = (struct pmap_large_md_page *)kva_alloc(s); > >> >>> >> > + if (pv_table == NULL) > >> >>> >> > + panic("%s: kva_alloc failed\n", __func__); > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * Iterate physical segments to allocate space for respective > >> >>> >> > p > >> >>> ages. > >> >>> >> > + */ > >> >>> >> > + highest = -1; > >> >>> >> > + s = 0; > >> >>> >> > + for (i = 0; i < vm_phys_nsegs; i++) { > >> >>> >> > + start = vm_phys_segs[i].start / NBPDR; > >> >>> >> > + end = vm_phys_segs[i].end / NBPDR; > >> >>> >> > + domain = vm_phys_segs[i].domain; > >> >>> >> > + > >> >>> >> > + if (highest >= end) > >> >>> >> > + continue; > >> >>> >> > + > >> >>> >> > + if (start < highest) { > >> >>> >> > + start = highest + 1; > >> >>> >> > + pvd = &pv_table[start]; > >> >>> >> > + } else { > >> >>> >> > + /* > >> >>> >> > + * The lowest address may land somewhere in the > >> >>> middle > >> >>> >> > + * of our page. Simplify the code by pretending > >> >>> it is > >> >>> >> > + * at the beginning. > >> >>> >> > + */ > >> >>> >> > + pvd = pa_to_pmdp(vm_phys_segs[i].start); > >> >>> >> > + pvd = (struct pmap_large_md_page *)trunc_page(p > >> >>> vd); > >> >>> >> > + start = pvd - pv_table; > >> >>> >> > + } > >> >>> >> > + > >> >>> >> > + pages = end - start + 1; > >> >>> >> > + s = round_page(pages * sizeof(*pvd)); > >> >>> >> > + highest = start + (s / sizeof(*pvd)) - 1; > >> >>> >> > + > >> >>> >> > + for (j = 0; j < s; j += PAGE_SIZE) { > >> >>> >> > + vm_page_t m = vm_page_alloc_domain(NULL, 0, > >> >>> >> > + domain, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); > >> >>> >> > + if (m == NULL) > >> >>> >> > + panic("vm_page_alloc_domain failed for > >> >>> %lx\n", > >> >>> >> > (vm_offset_t)pvd + j); > >> >>> >> > + pmap_qenter((vm_offset_t)pvd + j, &m, 1); > >> >>> >> > + } > >> >>> >> > + > >> >>> >> > + for (j = 0; j < s / sizeof(*pvd); j++) { > >> >>> >> > + rw_init_flags(&pvd->pv_lock, "pmap pv list", RW > >> >>> _NEW); > >> >>> >> > + TAILQ_INIT(&pvd->pv_page.pv_list); > >> >>> >> > + pvd->pv_page.pv_gen = 0; > >> >>> >> > + pvd->pv_page.pat_mode = 0; > >> >>> >> > + pvd->pv_invl_gen = 0; > >> >>> >> > + pvd++; > >> >>> >> > + } > >> >>> >> > + } > >> >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); > >> >>> >> > +} > >> >>> >> > +#else > >> >>> >> > +static void > >> >>> >> > +pmap_init_pv_table(void) > >> >>> >> > +{ > >> >>> >> > + vm_size_t s; > >> >>> >> > + long i, pv_npg; > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * Initialize the pool of pv list locks. > >> >>> >> > + */ > >> >>> >> > + for (i = 0; i < NPV_LIST_LOCKS; i++) > >> >>> >> > + rw_init(&pv_list_locks[i], "pmap pv list"); > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * Calculate the size of the pv head table for superpages. > >> >>> >> > + */ > >> >>> >> > + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> >>> >> > + > >> >>> >> > + /* > >> >>> >> > + * Allocate memory for the pv head table for superpages. > >> >>> >> > + */ > >> >>> >> > + s = (vm_size_t)pv_npg * sizeof(struct md_page); > >> >>> >> > + s = round_page(s); > >> >>> >> > + pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | > >> >>> >> > M_ZERO); > >> >>> >> > + for (i = 0; i < pv_npg; i++) > >> >>> >> > + TAILQ_INIT(&pv_table[i].pv_list); > >> >>> >> > + TAILQ_INIT(&pv_dummy.pv_list); > >> >>> >> > +} > >> >>> >> > +#endif > >> >>> >> > + > >> >>> >> > /* > >> >>> >> > * Initialize the pmap module. > >> >>> >> > * Called by vm_init, to initialize any structures that th > e > >> >>> >> > pmap > >> >>> >> > @@ -1813,8 +1948,7 @@ pmap_init(void) > >> >>> >> > { > >> >>> >> > struct pmap_preinit_mapping *ppim; > >> >>> >> > vm_page_t m, mpte; > >> >>> >> > - vm_size_t s; > >> >>> >> > - int error, i, pv_npg, ret, skz63; > >> >>> >> > + int error, i, ret, skz63; > >> >>> >> > > >> >>> >> > /* L1TF, reserve page @0 unconditionally */ > >> >>> >> > vm_page_blacklist_add(0, bootverbose); > >> >>> >> > @@ -1902,26 +2036,7 @@ pmap_init(void) > >> >>> >> > */ > >> >>> >> > mtx_init(&pv_chunks_mutex, "pmap pv chunk list", NULL, > >> >>> >> > MTX_DEF) > >> >>> ; > >> >>> >> > > >> >>> >> > - /* > >> >>> >> > - * Initialize the pool of pv list locks. > >> >>> >> > - */ > >> >>> >> > - for (i = 0; i < NPV_LIST_LOCKS; i++) > >> >>> >> > - rw_init(&pv_list_locks[i], "pmap pv list"); > >> >>> >> > - > >> >>> >> > - /* > >> >>> >> > - * Calculate the size of the pv head table for superpages. > >> >>> >> > - */ > >> >>> >> > - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); > >> >>> >> > - > >> >>> >> > - /* > >> >>> >> > - * Allocate memory for the pv head table for superpages. > >> >>> >> > - */ > >> >>> >> > - s = (vm_size_t)(pv_npg * sizeof(struct md_page)); > >> >>> >> > - s = round_page(s); > >> >>> >> > - pv_table = (struct md_page *)kmem_malloc(s, M_WAITOK | > >> >>> >> > M_ZERO); > >> >>> >> > - for (i = 0; i < pv_npg; i++) > >> >>> >> > - TAILQ_INIT(&pv_table[i].pv_list); > >> >>> >> > - TAILQ_INIT(&pv_dummy.pv_list); > >> >>> >> > + pmap_init_pv_table(); > >> >>> >> > > >> >>> >> > pmap_initialized = 1; > >> >>> >> > for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { > >> >>> >> > > >> >>> >> > >> >>> >> This causes a page fault during X (xdm) startup, which loads > >> >>> >> drm-current-kmod. > >> >>> >> > >> >>> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >> >>> >> 0xfffffe0093e9c260 > >> >>> >> vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > >> >>> >> panic() at panic+0x43/frame 0xfffffe0093e9c310 > >> >>> >> vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > >> >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > >> >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > >> >>> >> trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > >> >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > >> >>> >> --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, > >> >>> >> rbp > >> >>> >> = > >> >>> >> 0xfffffe0093e9c7a0 --- > >> >>> >> pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > >> >>> >> vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > >> >>> >> vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > >> >>> >> trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > >> >>> >> trap() at trap+0x438/frame 0xfffffe0093e9cab0 > >> >>> >> calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > >> >>> >> --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = > >> >>> >> 0x7fffffffeaa0 > >> >>> >> > >> >>> >> --- > >> >>> >> Uptime: 3m33s > >> >>> >> Dumping 945 out of 7974 > >> >>> >> MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > >> >>> >> > >> >>> >> (kgdb) bt > >> >>> >> #0 doadump (textdump=1) at pcpu_aux.h:55 > >> >>> >> #1 0xffffffff8068c5ed in kern_reboot (howto=260) > >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:479 > >> >>> >> #2 0xffffffff8068caa9 in vpanic (fmt=, > >> >>> >> ap=) > >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:908 > >> >>> >> #3 0xffffffff8068c8a3 in panic (fmt=) > >> >>> >> at /opt/src/svn-current/sys/kern/kern_shutdown.c:835 > >> >>> >> #4 0xffffffff8098c966 in vm_fault (map=, > >> >>> >> vaddr=, fault_type=, > >> >>> >> fault_flags=, m_hold= >> >>> >> out>) > >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:672 > >> >>> >> #5 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80002001000, > >> >>> >> vaddr=, fault_type=2 '\002', > >> >>> >> fault_flags=, signo=0x0, ucode=0x0) > >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:568 > >> >>> >> #6 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9c630, > >> >>> >> signo=, ucode=) > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >> >>> >> #7 0xffffffff80a177f1 in trap (frame=0xfffffe0093e9c630) > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:407 > >> >>> >> #8 0xffffffff809f1aac in calltrap () > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >> >>> >> ---Type to continue, or q to quit--- > >> >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >> >>> >> va=851443712, m=0xfffffe0005b25ce8, prot= >> >>> >> out>, > >> >>> >> flags=2677542912, psind=) at atomic.h:221 > >> >>> >> #10 0xffffffff8098c4a9 in vm_fault (map=, > >> >>> >> vaddr=, fault_type=232 '\ufffd', > >> >>> >> fault_flags=, m_hold=0x0) > >> >>> >> at /opt/src/svn-current/sys/vm/vm_fault.c:489 > >> >>> >> #11 0xffffffff8098a723 in vm_fault_trap (map=0xfffff80173eb5000, > >> >>> >> vaddr=, fault_type=2 '\002', > >> >>> >> fault_flags=, signo=0xfffffe0093e9ca84, > >> >>> >> ucode=0xfffffe0093e9ca80) at > >> >>> >> /opt/src/svn-current/sys/vm/vm_fault.c:568 > >> >>> >> #12 0xffffffff80a18326 in trap_pfault (frame=0xfffffe0093e9cac0, > >> >>> >> signo=, ucode=) > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:828 > >> >>> >> #13 0xffffffff80a17988 in trap (frame=0xfffffe0093e9cac0) > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/trap.c:347 > >> >>> >> #14 0xffffffff809f1aac in calltrap () > >> >>> >> at /opt/src/svn-current/sys/amd64/amd64/exception.S:289 > >> >>> >> #15 0x0000000030e2a9c3 in ?? () > >> >>> >> Previous frame inner to this frame (corrupt stack?) > >> >>> >> Current language: auto; currently minimal > >> >>> >> (kgdb) frame 9 > >> >>> >> #9 0xffffffff80a054b1 in pmap_enter (pmap=, > >> >>> >> va=851443712, m=0xfffffe0005b25ce8, prot= >> >>> >> out>, > >> >>> >> flags=2677542912, psind=) at atomic.h:221 > >> >>> >> 221 ATOMIC_CMPSET(long); > >> >>> >> (kgdb) l > >> >>> >> 216 } > >> >>> >> 217 > >> >>> >> 218 ATOMIC_CMPSET(char); > >> >>> >> 219 ATOMIC_CMPSET(short); > >> >>> >> 220 ATOMIC_CMPSET(int); > >> >>> >> 221 ATOMIC_CMPSET(long); > >> >>> >> 222 > >> >>> >> 223 /* > >> >>> >> 224 * Atomically add the value of v to the integer pointed to by > >> >>> >> p > >> >>> and > >> >>> >> return > >> >>> >> 225 * the previous value of *p. > >> >>> >> (kgdb) > >> >>> > > >> >>> > I should use kgdb from ports instead of /usr/libexec version. > >> >>> > Similar > >> >>> > result. > >> >>> > > >> >>> > <4>WARN_ON(!mutex_is_locked(&fbc->lock))WARN_ON(!mutex_is_locked(&fb > c-> > >> >>> > lock)) > >> >>> > panic: vm_fault: fault on nofault entry, addr: 0xfffffe000e01c000 > >> >>> > cpuid = 1 > >> >>> > time = 1570417211 > >> >>> > KDB: stack backtrace: > >> >>> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >> >>> > 0xfffffe0093e9c260 > >> >>> > vpanic() at vpanic+0x19d/frame 0xfffffe0093e9c2b0 > >> >>> > panic() at panic+0x43/frame 0xfffffe0093e9c310 > >> >>> > vm_fault() at vm_fault+0x2126/frame 0xfffffe0093e9c460 > >> >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c4b0 > >> >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c510 > >> >>> > trap() at trap+0x2a1/frame 0xfffffe0093e9c620 > >> >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9c620 > >> >>> > --- trap 0xc, rip = 0xffffffff80a054b1, rsp = 0xfffffe0093e9c6f0, > >> >>> > rbp > >> >>> > = > >> >>> > 0xfffffe0093e9c7a0 --- > >> >>> > pmap_enter() at pmap_enter+0x861/frame 0xfffffe0093e9c7a0 > >> >>> > vm_fault() at vm_fault+0x1c69/frame 0xfffffe0093e9c8f0 > >> >>> > vm_fault_trap() at vm_fault_trap+0x73/frame 0xfffffe0093e9c940 > >> >>> > trap_pfault() at trap_pfault+0x1b6/frame 0xfffffe0093e9c9a0 > >> >>> > trap() at trap+0x438/frame 0xfffffe0093e9cab0 > >> >>> > calltrap() at calltrap+0x8/frame 0xfffffe0093e9cab0 > >> >>> > --- trap 0xc, rip = 0x30e2a9c3, rsp = 0x7fffffffea50, rbp = > >> >>> > 0x7fffffffeaa0 > >> >>> > --- > >> >>> > Uptime: 3m33s > >> >>> > Dumping 945 out of 7974 > >> >>> > MB:..2%..11%..21%..31%..41%..51%..61%..72%..82%..92% > >> >>> > > >> >>> > __curthread () at > >> >>> > /opt/src/svn-current/sys/amd64/include/pcpu_aux.h:55 > >> >>> > 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(st > >> ruct pcp > >> >>> u, > >> >>> > (kgdb) > >> >>> > > >> >>> > Backtrace stopped: Cannot access memory at address 0x7fffffffea50 > >> >>> > (kgdb) frame 10 > >> >>> > #10 0xffffffff80a054b1 in atomic_fcmpset_long (dst=, > >> >>> > src=, expect=) > >> >>> > at /opt/src/svn-current/sys/amd64/include/atomic.h:221 > >> >>> > 221 ATOMIC_CMPSET(long); > >> >>> > (kgdb) l > >> >>> > 216 } > >> >>> > 217 > >> >>> > 218 ATOMIC_CMPSET(char); > >> >>> > 219 ATOMIC_CMPSET(short); > >> >>> > 220 ATOMIC_CMPSET(int); > >> >>> > 221 ATOMIC_CMPSET(long); > >> >>> > 222 > >> >>> > 223 /* > >> >>> > 224 * Atomically add the value of v to the integer pointed to by p > >> >>> > and > >> >>> > return > >> >>> > 225 * the previous value of *p. > >> >>> > (kgdb) > >> >>> > > >> >>> > > >> >>> > > >> >>> > -- > >> >>> > Cheers, > >> >>> > Cy Schubert > >> >>> > FreeBSD UNIX: Web: http://www.FreeBSD.org > >> >>> > > >> >>> > The need of the many outweighs the greed of the few. > >> >>> > > >> >>> > > >> >>> > > >> >>> > >> >>> > >> >>> -- > >> >>> Mateusz Guzik > >> >> > >> >> > >> >> > >> >> > >> >> > >> > > >> > > >> > -- > >> > Mateusz Guzik > >> > > >> > >> > >> -- > >> Mateusz Guzik > > > > > > > > > -- > Mateusz Guzik From owner-svn-src-head@freebsd.org Tue Oct 8 14:54:36 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 19D1412BB02; Tue, 8 Oct 2019 14:54:36 +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 46ngNq6y1kz43dS; Tue, 8 Oct 2019 14:54: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 D1D4219AC; Tue, 8 Oct 2019 14:54: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 x98EsZq0048624; Tue, 8 Oct 2019 14:54:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98EsZDS048623; Tue, 8 Oct 2019 14:54:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910081454.x98EsZDS048623@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 14:54:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353306 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 353306 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:54:36 -0000 Author: markj Date: Tue Oct 8 14:54:35 2019 New Revision: 353306 URL: https://svnweb.freebsd.org/changeset/base/353306 Log: Clear PGA_WRITEABLE in riscv's pmap_remove_l3(). pmap_remove_l3() may remove the last mapping of a page, in which case it must clear PGA_WRITEABLE. Reported by: Jenkins, via lwhsu MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Oct 8 13:43:05 2019 (r353305) +++ head/sys/riscv/riscv/pmap.c Tue Oct 8 14:54:35 2019 (r353306) @@ -2085,6 +2085,7 @@ static int pmap_remove_l3(pmap_t pmap, pt_entry_t *l3, vm_offset_t va, pd_entry_t l2e, struct spglist *free, struct rwlock **lockp) { + struct md_page *pvh; pt_entry_t old_l3; vm_paddr_t phys; vm_page_t m; @@ -2104,6 +2105,12 @@ pmap_remove_l3(pmap_t pmap, pt_entry_t *l3, vm_offset_ vm_page_aflag_set(m, PGA_REFERENCED); CHANGE_PV_LIST_LOCK_TO_VM_PAGE(lockp, m); pmap_pvh_free(&m->md, pmap, va); + if (TAILQ_EMPTY(&m->md.pv_list) && + (m->flags & PG_FICTITIOUS) == 0) { + pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); + if (TAILQ_EMPTY(&pvh->pv_list)) + vm_page_aflag_clear(m, PGA_WRITEABLE); + } } return (pmap_unuse_pt(pmap, va, l2e, free)); From owner-svn-src-head@freebsd.org Tue Oct 8 14:59:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 277A712BED3; Tue, 8 Oct 2019 14:59:51 +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 46ngVv0DdJz441p; Tue, 8 Oct 2019 14:59:51 +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 DF8B119B6; Tue, 8 Oct 2019 14:59:50 +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 x98Exoam049052; Tue, 8 Oct 2019 14:59:50 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98ExouA049051; Tue, 8 Oct 2019 14:59:50 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910081459.x98ExouA049051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 8 Oct 2019 14:59:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353307 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 353307 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 14:59:51 -0000 Author: mjg Date: Tue Oct 8 14:59:50 2019 New Revision: 353307 URL: https://svnweb.freebsd.org/changeset/base/353307 Log: amd64 pmap: allocate pv table entries for gaps in PA This matches the state prior to r353149 and fixes crashes with DRM modules. Reported and tested by: cy, garga, Krasznai Andras Fixes: r353149 ("amd64 pmap: implement per-superpage locks") Sponsored by: The FreeBSD Foundation Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Tue Oct 8 14:54:35 2019 (r353306) +++ head/sys/amd64/amd64/pmap.c Tue Oct 8 14:59:50 2019 (r353307) @@ -1864,26 +1864,14 @@ pmap_init_pv_table(void) highest = -1; s = 0; for (i = 0; i < vm_phys_nsegs; i++) { - start = vm_phys_segs[i].start / NBPDR; end = vm_phys_segs[i].end / NBPDR; domain = vm_phys_segs[i].domain; if (highest >= end) continue; - if (start < highest) { - start = highest + 1; - pvd = &pv_table[start]; - } else { - /* - * The lowest address may land somewhere in the middle - * of our page. Simplify the code by pretending it is - * at the beginning. - */ - pvd = pa_to_pmdp(vm_phys_segs[i].start); - pvd = (struct pmap_large_md_page *)trunc_page(pvd); - start = pvd - pv_table; - } + start = highest + 1; + pvd = &pv_table[start]; pages = end - start + 1; s = round_page(pages * sizeof(*pvd)); From owner-svn-src-head@freebsd.org Tue Oct 8 15:03:49 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A012B12C35C; Tue, 8 Oct 2019 15:03:49 +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 46ngbT3nrtz44TV; Tue, 8 Oct 2019 15:03:49 +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 657011B79; Tue, 8 Oct 2019 15:03:49 +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 x98F3nRl054510; Tue, 8 Oct 2019 15:03:49 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98F3nQk054509; Tue, 8 Oct 2019 15:03:49 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910081503.x98F3nQk054509@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 15:03:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353308 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 353308 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:03:49 -0000 Author: markj Date: Tue Oct 8 15:03:48 2019 New Revision: 353308 URL: https://svnweb.freebsd.org/changeset/base/353308 Log: Avoid erroneously clearing PGA_WRITEABLE in riscv's pmap_enter(). During a CoW fault, we must check for both 4KB and 2MB mappings before clearing PGA_WRITEABLE on the old mapping's page. Previously we were only checking for 4KB mappings. This was missed in r344106. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Oct 8 14:59:50 2019 (r353307) +++ head/sys/riscv/riscv/pmap.c Tue Oct 8 15:03:48 2019 (r353308) @@ -2833,7 +2833,9 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, v if ((new_l3 & PTE_SW_MANAGED) == 0) free_pv_entry(pmap, pv); if ((om->aflags & PGA_WRITEABLE) != 0 && - TAILQ_EMPTY(&om->md.pv_list)) + TAILQ_EMPTY(&om->md.pv_list) && + ((om->flags & PG_FICTITIOUS) != 0 || + TAILQ_EMPTY(&pa_to_pvh(opa)->pv_list))) vm_page_aflag_clear(om, PGA_WRITEABLE); } pmap_invalidate_page(pmap, va); From owner-svn-src-head@freebsd.org Tue Oct 8 15:04:47 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A3F812C3FF; Tue, 8 Oct 2019 15:04:47 +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 46ngcZ6H43z44d6; Tue, 8 Oct 2019 15:04:46 +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 x98F4cXn017440 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 8 Oct 2019 18:04:41 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x98F4cXn017440 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x98F4c2H017439; Tue, 8 Oct 2019 18:04:38 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 8 Oct 2019 18:04:38 +0300 From: Konstantin Belousov To: Eric van Gyzen Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353305 - head/tests/sys/kern Message-ID: <20191008150438.GE44691@kib.kiev.ua> References: <201910081343.x98Dh5bW006905@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201910081343.x98Dh5bW006905@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46ngcZ6H43z44d6 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:04:47 -0000 On Tue, Oct 08, 2019 at 01:43:05PM +0000, Eric van Gyzen wrote: > Author: vangyzen > Date: Tue Oct 8 13:43:05 2019 > New Revision: 353305 > URL: https://svnweb.freebsd.org/changeset/base/353305 > > Log: > Fix problems in the kern_maxfiles__increase test > > ATF functions such as ATF_REQUIRE do not work correctly in child processes. > Use plain C functions to report errors instead. There are much more tests that fork and use ATF_ in children. Look e.g. at most ptrace(2) tests. > > In the parent, check for the untimely demise of children. Without this, > the test hung until the framework's timeout. > > Raise the resource limit on the number of open files. If this was too low, > the test hit the two problems above. > > Restore the kern.maxfiles sysctl OID in the cleanup function. > The body prematurely removed the symlink in which the old value was saved. > > Make the test more robust by opening more files. In fact, due to the > integer division by 4, this was necessary to make the test valid with > some initial values of maxfiles. Thanks, asomers@. > > wait() for children instead of sleeping. > > Clean up a temporary file created by the test ("afile"). > > Reviewed by: asomers > MFC after: 1 week > Sponsored by: Dell EMC Isilon > Differential Revision: https://reviews.freebsd.org/D21900 > > Modified: > head/tests/sys/kern/kern_descrip_test.c > > Modified: head/tests/sys/kern/kern_descrip_test.c > ============================================================================== > --- head/tests/sys/kern/kern_descrip_test.c Tue Oct 8 11:27:48 2019 (r353304) > +++ head/tests/sys/kern/kern_descrip_test.c Tue Oct 8 13:43:05 2019 (r353305) > @@ -28,16 +28,22 @@ > __FBSDID("$FreeBSD$"); > > #include > +#include > +#include > +#include > +#include > +#include > +#include > + > #include > #include > #include > #include > #include > +#include > #include > -#include > -#include > -#include > #include > + > #include > > static volatile sig_atomic_t done; > @@ -92,8 +98,13 @@ openfiles2(size_t n) > int r; > > errno = 0; > - for (i = 0; i < n; i++) > - ATF_REQUIRE((r = open(AFILE, O_RDONLY)) != -1); > + for (i = 0; i < n; i++) { > + r = open(AFILE, O_RDONLY); > + if (r < 0) { > + fprintf(stderr, "open: %s\n", strerror(errno)); > + _exit(1); > + } > + } > kill(getppid(), SIGUSR1); > > for (;;) { > @@ -118,10 +129,14 @@ openfiles(size_t n) > for (i = 0; i < PARALLEL; i++) > if (fork() == 0) > openfiles2(n / PARALLEL); > - while (done != PARALLEL) > + while (done != PARALLEL) { > usleep(1000); > + ATF_REQUIRE_EQ_MSG(0, waitpid(-1, NULL, WNOHANG), > + "a child exited unexpectedly"); > + } > unlink(RENDEZVOUS); > - usleep(40000); > + for (i = 0; i < PARALLEL; i++) > + ATF_CHECK_MSG(wait(NULL) > 0, "wait: %s", strerror(errno)); > } > > ATF_TC_WITH_CLEANUP(kern_maxfiles__increase); > @@ -138,6 +153,7 @@ ATF_TC_BODY(kern_maxfiles__increase, tc) > size_t oldlen; > int maxfiles, oldmaxfiles, current; > char buf[80]; > + struct rlimit rl; > > oldlen = sizeof(maxfiles); > if (sysctlbyname("kern.maxfiles", &maxfiles, &oldlen, NULL, 0) == -1) > @@ -160,8 +176,11 @@ ATF_TC_BODY(kern_maxfiles__increase, tc) > atf_tc_fail("getsysctlbyname(%s): %s", "kern.maxfiles", > strerror(errno)); > > - openfiles(oldmaxfiles - current + 1); > - (void)unlink(VALUE); > + rl.rlim_cur = rl.rlim_max = maxfiles; > + ATF_REQUIRE_EQ_MSG(0, setrlimit(RLIMIT_NOFILE, &rl), > + "setrlimit(RLIMIT_NOFILE, %d): %s", maxfiles, strerror(errno)); > + > + openfiles(oldmaxfiles - current + EXPANDBY / 2); > } > > ATF_TC_CLEANUP(kern_maxfiles__increase, tc) > @@ -178,6 +197,8 @@ ATF_TC_CLEANUP(kern_maxfiles__increase, tc) > &oldmaxfiles, oldlen); > } > } > + (void)unlink(VALUE); > + (void)unlink(AFILE); > } > > ATF_TP_ADD_TCS(tp) From owner-svn-src-head@freebsd.org Tue Oct 8 15:09:01 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E349E12C5E2 for ; Tue, 8 Oct 2019 15:09:01 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) (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 46ngjS5zs5z44qh for ; Tue, 8 Oct 2019 15:09:00 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x833.google.com with SMTP id j31so25799368qta.5 for ; Tue, 08 Oct 2019 08:09:00 -0700 (PDT) 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=W19eMhAOm0D+N7f1z0jaYTFwXhv/FvffxPlckTh0Cvg=; b=nO3Goqsb30OwvO9dtCdkD09IJ/l90sofcABa5Wp4eqifHlCZ9JdVYP3O2XOJH/TMgP +EEG4HNUyEEd2fE3MXKxkAkeIdmDry+VFfdAGx6TtobAIxtgt2tLUagsku2T7I5reRno LPcExRjVfuaNEQxaYk9cUe2H2TR9Mvl4tPCNiogH2NmBmNpxBcefcUq/JZzYF9ajCRnl 0w71rPmU4fvKBH7xB1+TBKfr6Ed+rQxc4/ogyPIf+rlJKFIpEKtmklBnTQr1/9d+ItQi ROSiOc3H3SG90h4bSUlS6/KgT1zahxzXvRIZxLzX3Jx2MabLvoA5jF81mvrMnYNHL0tS G4cg== 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=W19eMhAOm0D+N7f1z0jaYTFwXhv/FvffxPlckTh0Cvg=; b=nbrYWqSv99Fb0zowqbOOAFu2o3Zv2iUYQ2tTfX39XQvQVhsEeE9jNO/9xsIcprVTd7 T7JzX68IeSewC4oGwr7pvSXVAaxJheON5QBFjwqXFSkRYd8RjgneEq3wAGTIRHtJVIFe Uh9v/4D8oeNWr19EP+PMEFLtKiLaEBajFB/EN08Q1+nv7V+3gVXIVZLyZAaV+RWzVfuX KzDdeaMt9gJGpG0r5BWXVnVxQ9VoGyO4SVeItoiLpLA1Iwqera0QkNqcW7jCNP+0d5j5 6IFBgTwiTUlIyBgQCv/gaTk0idwcBW1XMvr529FxsXQ3qa75jwplNajKZnG5n1CnfE7X orIw== X-Gm-Message-State: APjAAAWqpNz9OHxbiV5GQpGraJCt4CAKZgdAncT0goIWVb9CTgvxGU8C P9lbMje7579nAiS1qOEoyWy+Jaxk56bPQtMz5TD7Gg== X-Google-Smtp-Source: APXvYqy78rcGv6Dx7MHdgJmlLFoZgdUab9zWG1829Yh4vafgTs0bEzalC0BHnqoaIdQbB4jlqS1rS5DxSlX8fg2kt2o= X-Received: by 2002:a0c:e2c9:: with SMTP id t9mr32565240qvl.22.1570547339528; Tue, 08 Oct 2019 08:08:59 -0700 (PDT) MIME-Version: 1.0 References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> In-Reply-To: <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> From: Warner Losh Date: Tue, 8 Oct 2019 09:08:48 -0600 Message-ID: Subject: Re: svn commit: r352520 - head/usr.sbin/pkg To: Ian Lepore Cc: Emmanuel Vadot , Glen Barber , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46ngjS5zs5z44qh X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=nO3Goqsb; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::833) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.80 / 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-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; 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)[3.3.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.80)[ip: (-9.29), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:09:01 -0000 On Tue, Oct 8, 2019 at 8:22 AM Ian Lepore wrote: > On Tue, 2019-10-08 at 12:26 +0200, Emmanuel Vadot wrote: > > Hi Glen, > > > > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > > Glen Barber wrote: > > > > > Author: gjb > > > Date: Thu Sep 19 16:43:12 2019 > > > New Revision: 352520 > > > URL: https://svnweb.freebsd.org/changeset/base/352520 > > > > > > Log: > > > Apply r346792 (cperciva) from stable/12 to head. The original commit > > > message: > > > > > > On non-x86 systems, use "quarterly" packages. > > > > > > x86 architectures have "latest" package builds on stable/*, so keep > using > > > those (they'll get switched over to "quarterly" during releases). > > > > > > The original commit was a direct commit to stable/12, as at the time > it > > > was presumed it would not be necessary for head. However, when it > is time > > > to create a releng branch or switch from PRERELEASE/STABLE to > BETA/RC, the > > > pkg(7) Makefile needs further adjusting. This commit includes those > > > further adjustments, evaluating the BRANCH variable from > release/Makefile > > > to determine the pkg(7) repository to use. > > > > > > MFC after: immediate (if possible) > > > Sponsored by: Rubicon Communications, LLC (Netgate) > > > > > > Modified: > > > head/usr.sbin/pkg/Makefile > > > > > > Modified: head/usr.sbin/pkg/Makefile > > > > ============================================================================== > > > --- head/usr.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 > (r352519) > > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 > (r352520) > > > @@ -1,6 +1,16 @@ > > > # $FreeBSD$ > > > > > > +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" > > > +PKGCONFBRANCH?= quarterly > > > +.else > > > +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH > > > +BRANCH?= ${_BRANCH} > > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > > +PKGCONFBRANCH?= quarterly > > > +. else > > > PKGCONFBRANCH?= latest > > > +. endif > > > +.endif > > > CONFS= FreeBSD.conf.${PKGCONFBRANCH} > > > CONFSNAME= FreeBSD.conf > > > CONFSDIR= /etc/pkg > > > > Tier 2 (and weird tier1 like aarch64) only have latest for current so > > this doesn't work. > > Also this depends on MACHINE and iirc MACHINE is always the host when > > cross compiling. > > I think this need to be reverted. > > > > Cheers, > > > > MACHINE is the build host when you first launch make(1), but the > crossbuild code in Makefile.inc1 overrides MACHINE to TARGET (and > MACHINE_ARCH to TARGET_ARCH) and launches a sub-make that way. > MACHINE_ARCH likely should be used in the above, since MACHINE is the KERNEL architecture and MACHINE_ARCH is the user-land architecture. Packages are almost exclusively for user-land, and we normally test MACHINE_ARCH outside of sys except for some very narrow cases (that likely could go away now that we no longer have pc98). In this case, it likely doesn't matter. It might for arm, though, since armv7 may have packages, but armv6 or plain arm might not and we may want to configure them differently as a result. Ian is right that during a buildworld, we specify TARGET/TARGET_ARCH which use use in Makefile.inc1 for various things, but for the actual building MACHINE and MACHINE_ARCH are what are used/tested. Warner From owner-svn-src-head@freebsd.org Tue Oct 8 15:15:09 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0D1DA12C8C1; Tue, 8 Oct 2019 15:15:09 +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 46ngrX5b9qz45FL; Tue, 8 Oct 2019 15:15:08 +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 x98FF0EB019917 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 8 Oct 2019 18:15:04 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x98FF0EB019917 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x98FF0PA019914; Tue, 8 Oct 2019 18:15:00 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 8 Oct 2019 18:15:00 +0300 From: Konstantin Belousov To: Justin Hibbits Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353296 - head/sys/powerpc/include Message-ID: <20191008151500.GF44691@kib.kiev.ua> References: <201910080136.x981aYTq073145@repo.freebsd.org> <20191008081604.GZ44691@kib.kiev.ua> <20191008091414.4ae66fb4@ralga.knownspace> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191008091414.4ae66fb4@ralga.knownspace> User-Agent: Mutt/1.12.2 (2019-09-21) 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46ngrX5b9qz45FL X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:15:09 -0000 On Tue, Oct 08, 2019 at 09:14:14AM -0500, Justin Hibbits wrote: > On Tue, 8 Oct 2019 11:16:04 +0300 > Konstantin Belousov wrote: > > > On Tue, Oct 08, 2019 at 01:36:34AM +0000, Justin Hibbits wrote: > > > Author: jhibbits > > > Date: Tue Oct 8 01:36:34 2019 > > > New Revision: 353296 > > > URL: https://svnweb.freebsd.org/changeset/base/353296 > > > > > > Log: > > > powerpc: Implement atomic_(f)cmpset_ for short and char > > > | > > > This adds two implementations for each atomic_fcmpset_ and > > > atomic_cmpset_ short and char functions, selectable at compile time > > > for the target architecture. By default, it uses a generic > > > shift-and-mask to perform atomic updates to sub-components of > > > 32-bit words from . However, if > > > ISA_206_ATOMICS is defined it uses the ll/sc instructions for > > > halfword and bytes, introduced in PowerISA 2.06. These > > > instructions are supported by all IBM processors from POWER7 on, as > > > well as the Freescale/NXP e6500 core. Although the e5500 and > > > e500mc both implement PowerISA 2.06 they do not implement these > > > instructions. As part of this, clean up the atomic_(f)cmpset_acq > > > and _rel wrappers, by using macros to reduce code duplication. > > > > > > ISA_206_ATOMICS requires clang or newer binutils (2.20 or later). > > > > > Why don't you use normal word-sized ll/sc tlwarx/stwcx, and only > > modifying the part of the register as needed ? This would work on > > all supported CPUs, right ? > > > > When kevans did the _atomic_subword.h, one of the arches involved was > > sparc64, which does not have ll/sc. Also for MIPS there are some fine > > details which might mean that C implementation is less work than using > > word-sized ll/sc. But why for power ? > > No real significant reason. In fact, the review's diff has exactly > what you're asking for. The only reason I modified it for commit with > Kyle's work was purely readability, I thought using the C wrapper with > atomic_fcmpset_() was just marginally cleaner. I haven't checked, but I > don't think the inline code difference is too great, but I'll have to do > another review of it to be sure. It's easy enough to commit the > original diff over top instead, if that's the better way to go. If the generated code difference is not significant, it is a strong argument to keep the committed version. But I find it quite surprising. From owner-svn-src-head@freebsd.org Tue Oct 8 15:18:53 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4268912CADD for ; Tue, 8 Oct 2019 15:18:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) (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 46ngwr3xFgz45Sf for ; Tue, 8 Oct 2019 15:18:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x834.google.com with SMTP id o12so25867263qtf.3 for ; Tue, 08 Oct 2019 08:18:52 -0700 (PDT) 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=GuNUeCEYqzBbgHw8HD3P5XNTHQtFurOO7fXWhRiQaaw=; b=jSiyaPBLYN7BVIM7byzhC13lYldRO7y9D4lIgPUzv+WJ15VjogLksKLbVkkansgcSt Io8gXDXKE9piTHxaFJmGzKFWpNJn1tjNTuHABhffYV8CZ8bMyS7ZYzbkTO+QjqjGpVDX 5HxouIJS2AwebGLPT0NkIYhZsOIkjSqpBaKjefGgXY0h7Ms1OGULVHPZqAhkD0o3Mqni /CZgAeYEqzD8I4Yi4YdjXlmSxwU9rwaG/tYRRMcws1aZ/Pi3zpibqTOA0d/3XMRpxPu7 mnldhPkU/SSeTyZKy/DMo9XMTo3iR/XZr9rH5KII+ZU4//Bf5Wvp9wLBzocfktJCNJNj W4mA== 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=GuNUeCEYqzBbgHw8HD3P5XNTHQtFurOO7fXWhRiQaaw=; b=fWSZ5fekPenlr6W6xJTSXMLRYtTWmjQ5EsSM2qBzqEb64JXdGKb4RYElfzRj8YOMKJ 6s9CffSYvvGFd6FczvxqoWkZJ51CWx0KUcLCar9cRMgYZFbyXYQgRGW7UNNsJV5Irzdn K2gSLeBP/zsT2vK1AXzySOv2XIHxU5hS466fySR/XppkJE3CXxtQFONC/MppYBFIHPbN yY1M/+s1dNr/Durer7wv3YWhRHE+3tbrCGRHM430s4OkCgnV1xvbqhdkm62eRUW41ulW okFdLkT1YyY2KJhfDQzLgMPVVceZ70TaCEioJPe9e8SHPY/sPgEkuSL7dOGmz1VxwHgz 4ydQ== X-Gm-Message-State: APjAAAVFxlxUYqjF9xRndIcyxLApMwQUYFtPk+oWA3J3bcRE8MxTsdv9 1AOONBb+fgY2HEr2qjd/bJ/BnbQSP6ixMvvJZkSLCw== X-Google-Smtp-Source: APXvYqyAN9MhpbYtig3O1LRx7q7vzTniX1RYfxfJtxOYNfYReBZoIjDJAQggQjLo5L7BZsyFOQxawHUeCAin2813zbA= X-Received: by 2002:ac8:44c9:: with SMTP id b9mr36332330qto.175.1570547931557; Tue, 08 Oct 2019 08:18:51 -0700 (PDT) MIME-Version: 1.0 References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> In-Reply-To: <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> From: Warner Losh Date: Tue, 8 Oct 2019 09:18:40 -0600 Message-ID: Subject: Re: svn commit: r352520 - head/usr.sbin/pkg To: Emmanuel Vadot Cc: Ian Lepore , Glen Barber , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46ngwr3xFgz45Sf X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=jSiyaPBL; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::834) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.83 / 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-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; 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)[4.3.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.83)[ip: (-9.42), ipnet: 2607:f8b0::/32(-2.54), asn: 15169(-2.14), 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:18:53 -0000 On Tue, Oct 8, 2019 at 8:33 AM Emmanuel Vadot wrote: > On Tue, 08 Oct 2019 08:22:33 -0600 > Ian Lepore wrote: > > > On Tue, 2019-10-08 at 12:26 +0200, Emmanuel Vadot wrote: > > > Hi Glen, > > > > > > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > > > Glen Barber wrote: > > > > > > > Author: gjb > > > > Date: Thu Sep 19 16:43:12 2019 > > > > New Revision: 352520 > > > > URL: https://svnweb.freebsd.org/changeset/base/352520 > > > > > > > > Log: > > > > Apply r346792 (cperciva) from stable/12 to head. The original > commit > > > > message: > > > > > > > > On non-x86 systems, use "quarterly" packages. > > > > > > > > x86 architectures have "latest" package builds on stable/*, so > keep using > > > > those (they'll get switched over to "quarterly" during releases). > > > > > > > > The original commit was a direct commit to stable/12, as at the > time it > > > > was presumed it would not be necessary for head. However, when it > is time > > > > to create a releng branch or switch from PRERELEASE/STABLE to > BETA/RC, the > > > > pkg(7) Makefile needs further adjusting. This commit includes > those > > > > further adjustments, evaluating the BRANCH variable from > release/Makefile > > > > to determine the pkg(7) repository to use. > > > > > > > > MFC after: immediate (if possible) > > > > Sponsored by: Rubicon Communications, LLC (Netgate) > > > > > > > > Modified: > > > > head/usr.sbin/pkg/Makefile > > > > > > > > Modified: head/usr.sbin/pkg/Makefile > > > > > ============================================================================== > > > > --- head/usr.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 > (r352519) > > > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 > (r352520) > > > > @@ -1,6 +1,16 @@ > > > > # $FreeBSD$ > > > > > > > > +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" > > > > +PKGCONFBRANCH?= quarterly > > > > +.else > > > > +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH > > > > +BRANCH?= ${_BRANCH} > > > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > > > +PKGCONFBRANCH?= quarterly > > > > +. else > > > > PKGCONFBRANCH?= latest > > > > +. endif > > > > +.endif > > > > CONFS= FreeBSD.conf.${PKGCONFBRANCH} > > > > CONFSNAME= FreeBSD.conf > > > > CONFSDIR= /etc/pkg > > > > > > Tier 2 (and weird tier1 like aarch64) only have latest for current so > > > this doesn't work. > > > Also this depends on MACHINE and iirc MACHINE is always the host when > > > cross compiling. > > > I think this need to be reverted. > > > > > > Cheers, > > > > > > > MACHINE is the build host when you first launch make(1), but the > > crossbuild code in Makefile.inc1 overrides MACHINE to TARGET (and > > MACHINE_ARCH to TARGET_ARCH) and launches a sub-make that way. > > > > -- Ian > > Ah ok, thanks for this info. > > Anyway it's still need to be reverted as all arches should use latest > on CURRENT. > Agreed. -current is moving too quickly to use the quarterly, and this 100% breaks all the graphics .ko's since those *MUST* be compiled against the latest kernel. Things are already wonky enough there without introducing this new (bad) behavior to the mix. It should be fixed in other ways, but until those are in place this change makes a bad situation much, much worse. Warner From owner-svn-src-head@freebsd.org Tue Oct 8 15:29:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1294812D718; Tue, 8 Oct 2019 15:29:29 +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 46nh945yVLz46yB; Tue, 8 Oct 2019 15:29:28 +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 x98FTIxE000818 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 8 Oct 2019 08:29:18 -0700 (PDT) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id x98FTIxB000817; Tue, 8 Oct 2019 08:29:18 -0700 (PDT) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Tue, 8 Oct 2019 08:29:18 -0700 From: Gleb Smirnoff To: Peter Holm Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib Message-ID: <20191008152918.GE1249@FreeBSD.org> References: <201910072240.x97Me60x065650@repo.freebsd.org> <20191008065634.GA64200@x8.osted.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191008065634.GA64200@x8.osted.lan> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 46nh945yVLz46yB X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:29:29 -0000 On Tue, Oct 08, 2019 at 08:56:34AM +0200, Peter Holm wrote: P> On Mon, Oct 07, 2019 at 10:40:06PM +0000, Gleb Smirnoff wrote: P> > Author: glebius P> > Date: Mon Oct 7 22:40:05 2019 P> > New Revision: 353292 P> > URL: https://svnweb.freebsd.org/changeset/base/353292 P> > P> > Log: P> > Widen NET_EPOCH coverage. P> > P> P> This seems to trigger this: Ack. Will fix all regressions ASAP. -- Gleb Smirnoff From owner-svn-src-head@freebsd.org Tue Oct 8 15:33:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0932D12DB14; Tue, 8 Oct 2019 15:33:12 +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 46nhFM6SYXz47Ph; Tue, 8 Oct 2019 15:33:11 +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 C125D20EF; Tue, 8 Oct 2019 15:33:11 +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 x98FXBJE072212; Tue, 8 Oct 2019 15:33:11 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98FXBaM072211; Tue, 8 Oct 2019 15:33:11 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910081533.x98FXBaM072211@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 8 Oct 2019 15:33:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353309 - head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Commit-Revision: 353309 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:33:12 -0000 Author: asomers Date: Tue Oct 8 15:33:11 2019 New Revision: 353309 URL: https://svnweb.freebsd.org/changeset/base/353309 Log: zfs: fix the zfsd_autoreplace_003_pos test The test declared that it only needed 5 disks, but actually tried to use 6. Fix it to use just 5, which is all it really needs. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_autoreplace_003_pos.ksh Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_autoreplace_003_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/zfsd/zfsd_autoreplace_003_pos.ksh Tue Oct 8 15:03:48 2019 (r353308) +++ head/tests/sys/cddl/zfs/tests/zfsd/zfsd_autoreplace_003_pos.ksh Tue Oct 8 15:33:11 2019 (r353309) @@ -78,11 +78,11 @@ function verify_assertion typeset PHYSPATH="some_physical_path" typeset REMOVAL_DISK=$DISK0 typeset REMOVAL_NOP=${DISK0}.nop -typeset NEW_DISK=$DISK4 -typeset NEW_NOP=${DISK4}.nop -typeset SPARE_DISK=${DISK5} -typeset SPARE_NOP=${DISK5}.nop -typeset OTHER_DISKS="${DISK1} ${DISK2} ${DISK3}" +typeset NEW_DISK=$DISK3 +typeset NEW_NOP=${DISK3}.nop +typeset SPARE_DISK=${DISK4} +typeset SPARE_NOP=${DISK4}.nop +typeset OTHER_DISKS="${DISK1} ${DISK2}" typeset OTHER_NOPS=${OTHER_DISKS//~(E)([[:space:]]+|$)/.nop\1} set -A MY_KEYWORDS "mirror" "raidz1" "raidz2" ensure_zfsd_running From owner-svn-src-head@freebsd.org Tue Oct 8 15:41:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1751D12E1B7; Tue, 8 Oct 2019 15:41:08 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46nhQW6pcxz48GY; Tue, 8 Oct 2019 15:41:07 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 64B2D26AE; Tue, 8 Oct 2019 15:41:03 +0000 (UTC) (envelope-from gjb@freebsd.org) Date: Tue, 8 Oct 2019 15:40:50 +0000 From: Glen Barber To: Emmanuel Vadot Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-ID: <20191008154050.GR27491@FreeBSD.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="R6d/YZw7aFPcgCGm" Content-Disposition: inline In-Reply-To: <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:41:08 -0000 --R6d/YZw7aFPcgCGm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 08, 2019 at 12:26:52PM +0200, Emmanuel Vadot wrote: >=20 > Hi Glen, >=20 > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > Glen Barber wrote: >=20 > > Author: gjb > > Date: Thu Sep 19 16:43:12 2019 > > New Revision: 352520 > > URL: https://svnweb.freebsd.org/changeset/base/352520 > >=20 > > Log: > > Apply r346792 (cperciva) from stable/12 to head. The original commit > > message: > > =20 > > On non-x86 systems, use "quarterly" packages. > > =20 > > x86 architectures have "latest" package builds on stable/*, so keep = using > > those (they'll get switched over to "quarterly" during releases). > > =20 > > The original commit was a direct commit to stable/12, as at the time = it > > was presumed it would not be necessary for head. However, when it is= time > > to create a releng branch or switch from PRERELEASE/STABLE to BETA/RC= , the > > pkg(7) Makefile needs further adjusting. This commit includes those > > further adjustments, evaluating the BRANCH variable from release/Make= file > > to determine the pkg(7) repository to use. > > =20 > > MFC after: immediate (if possible) > > Sponsored by: Rubicon Communications, LLC (Netgate) > >=20 > > Modified: > > head/usr.sbin/pkg/Makefile > >=20 > > Modified: head/usr.sbin/pkg/Makefile > > =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.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 (r352519) > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 (r352520) > > @@ -1,6 +1,16 @@ > > # $FreeBSD$ > > =20 > > +.if ${MACHINE} !=3D "amd64" && ${MACHINE} !=3D "i386" > > +PKGCONFBRANCH?=3D quarterly > > +.else > > +_BRANCH!=3D ${MAKE} -C ${SRCTOP}/release -V BRANCH > > +BRANCH?=3D ${_BRANCH} > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > +PKGCONFBRANCH?=3D quarterly > > +. else > > PKGCONFBRANCH?=3D latest > > +. endif > > +.endif > > CONFS=3D FreeBSD.conf.${PKGCONFBRANCH} > > CONFSNAME=3D FreeBSD.conf > > CONFSDIR=3D /etc/pkg >=20 > Tier 2 (and weird tier1 like aarch64) only have latest for current so > this doesn't work. It does. root@releng3:/usr/src/usr.sbin/pkg # make _BRANCH=3DCURRENT -V PKGCONFBRAN= CH latest root@releng3:/usr/src/usr.sbin/pkg # make _BRANCH=3DSTABLE -V PKGCONFBRANCH latest root@releng3:/usr/src/usr.sbin/pkg # make _BRANCH=3DRC1 -V PKGCONFBRANCH quarterly > Also this depends on MACHINE and iirc MACHINE is always the host when > cross compiling. You are correct. I'll fix this. > I think this need to be reverted. >=20 No, I'll implement a proper fix. Glen --R6d/YZw7aFPcgCGm Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAl2crgIACgkQAxRYpUeP 4pM3eQ/9HO6kRepGS7XquiHRpRXAjIkdLKA77FG8NZYzFTbh/jKwb7Xgg0zz4pc0 IS6sSUGZG/qFuwcba5A8bx781CX9ZmwIqhDSHyxsxu2pnmwm4v/iX2sfZx0bZqd6 nDLiGj1K6t0jikiL+u1OvnMSRXQR6KbdX+wt2Ak+qACc4tYHix60OURebExa97cd phIwomoyPHjGMS00ndhoKC+u22v5c8+NpwxIvK665m7cTEGXhuXHqXkDVrhS3nLn U251OJ4v6UkV4Yc7jcJoAoEDCLB9y7HeFo6xoMNkFvgWK/r30oWDA7hvA0EhekAe pf+Oo3/L/DiGliXY4z8/sYNs7HksTVQOlVEWm9rGLtK+moFvcPneZu8EUFXoQP+a XghqXpE7edrGB+VfMJvKYii7BDA3184OZRl41TrGadDitXRAWGtzjLUBhhAA4aDV SvvS668VTeQGI6+Zxug74IvUy8+Yikv5WTB3dF6i3LmoOxdN7cgSNczmUs9tx8dh ZkcrSNQBvb05ZD+ulp4s2GHrVFWm2EoH8ADCQIrBZltBNy3s7dBTMHgyeBU17Ean LvhWXHqeV83Byn86nESJrTcC3fhBm7R7tpaAhES2oGpsTBlUXuwC3HG8WI/Xb/np xPlOZsNx8VJ2yDPDm7rS1LLba/iYCiodKJpnC25bysmRiRaABds= =dZOT -----END PGP SIGNATURE----- --R6d/YZw7aFPcgCGm-- From owner-svn-src-head@freebsd.org Tue Oct 8 15:46:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EF40012E413; Tue, 8 Oct 2019 15:46:32 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46nhXm5zW1z48j7; Tue, 8 Oct 2019 15:46:32 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 8746C28A8; Tue, 8 Oct 2019 15:46:28 +0000 (UTC) (envelope-from gjb@freebsd.org) Date: Tue, 8 Oct 2019 15:46:18 +0000 From: Glen Barber To: Ian Lepore Cc: Emmanuel Vadot , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-ID: <20191008154618.GS27491@FreeBSD.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="tJpRIM2aoWGz8Rwb" Content-Disposition: inline In-Reply-To: <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> User-Agent: Mutt/1.12.1 (2019-06-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:46:33 -0000 --tJpRIM2aoWGz8Rwb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 08, 2019 at 08:22:33AM -0600, Ian Lepore wrote: > On Tue, 2019-10-08 at 12:26 +0200, Emmanuel Vadot wrote: > > Hi Glen, > >=20 > > On Thu, 19 Sep 2019 16:43:12 +0000 (UTC) > > Glen Barber wrote: > >=20 > > > Author: gjb > > > Date: Thu Sep 19 16:43:12 2019 > > > New Revision: 352520 > > > URL: https://svnweb.freebsd.org/changeset/base/352520 > > >=20 > > > Log: > > > Apply r346792 (cperciva) from stable/12 to head. The original comm= it > > > message: > > > =20 > > > On non-x86 systems, use "quarterly" packages. > > > =20 > > > x86 architectures have "latest" package builds on stable/*, so kee= p using > > > those (they'll get switched over to "quarterly" during releases). > > > =20 > > > The original commit was a direct commit to stable/12, as at the tim= e it > > > was presumed it would not be necessary for head. However, when it = is time > > > to create a releng branch or switch from PRERELEASE/STABLE to BETA/= RC, the > > > pkg(7) Makefile needs further adjusting. This commit includes those > > > further adjustments, evaluating the BRANCH variable from release/Ma= kefile > > > to determine the pkg(7) repository to use. > > > =20 > > > MFC after: immediate (if possible) > > > Sponsored by: Rubicon Communications, LLC (Netgate) > > >=20 > > > Modified: > > > head/usr.sbin/pkg/Makefile > > >=20 > > > Modified: head/usr.sbin/pkg/Makefile > > > =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.sbin/pkg/Makefile Thu Sep 19 15:12:32 2019 (r352519) > > > +++ head/usr.sbin/pkg/Makefile Thu Sep 19 16:43:12 2019 (r352520) > > > @@ -1,6 +1,16 @@ > > > # $FreeBSD$ > > > =20 > > > +.if ${MACHINE} !=3D "amd64" && ${MACHINE} !=3D "i386" > > > +PKGCONFBRANCH?=3D quarterly > > > +.else > > > +_BRANCH!=3D ${MAKE} -C ${SRCTOP}/release -V BRANCH > > > +BRANCH?=3D ${_BRANCH} > > > +. if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} > > > +PKGCONFBRANCH?=3D quarterly > > > +. else > > > PKGCONFBRANCH?=3D latest > > > +. endif > > > +.endif > > > CONFS=3D FreeBSD.conf.${PKGCONFBRANCH} > > > CONFSNAME=3D FreeBSD.conf > > > CONFSDIR=3D /etc/pkg > >=20 > > Tier 2 (and weird tier1 like aarch64) only have latest for current so > > this doesn't work. > > Also this depends on MACHINE and iirc MACHINE is always the host when > > cross compiling. > > I think this need to be reverted. > >=20 > > Cheers, > >=20 >=20 > MACHINE is the build host when you first launch make(1), but the > crossbuild code in Makefile.inc1 overrides MACHINE to TARGET (and > MACHINE_ARCH to TARGET_ARCH) and launches a sub-make that way. >=20 Ah, yes. That explains why when I first looked, my 'make -V [...]' in usr.sbin/pkg did not work correctly. Thank you for pointing this out. Glen --tJpRIM2aoWGz8Rwb Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAl2cr0oACgkQAxRYpUeP 4pN13Q//XM3DfaIw5QTmamFe5dA1ofR7KnD76YUZJW6gVWQa0DlNDx53HfMBn+tY OaMYbhqHTb+rIa+tM5TGPBy4T1DbgY7Mzw+CnZ4yd+ZRm2b3shPIc8iximiYY9AB KVXRqmvwt8TyVl3nFD4aQXQHM/C8oWAI9m5nuhNUuyfSVT+AnaO7G7n30b4zSWxw 5d5xigcQzUkH+p74jWRjLxGShHNpMvG24S04XeyCcYOkQ2jCyPwz22JCqW7EIT2q Ati20IepUSD4BE3t5tmqrrTpt3no7/fjj4khd1h0/2P6QzCHgfJYGZWxYmrLviLU zX2xkpeo7H7Q6MTHRHHR62yOtFF+MAnNiAUOUY6kb5Afe/FoOqnMdrLfe3U/RlAL eT4zhyngQ5RKHCHEE3mNB+pMxxS47uWdP9uz3iQapTfYBGEyT6GCDnrOoNSJtsIC duqWYo/JpEl9gp/Akn9UscEireBLkQha/b/Gib9Fb1hONoOLv80dS9JB3fNoyrJR rrNWgAbUupEdWoVFaVkoosWdRiH2rEqR90TG5V50oCHE+eJEeUsJQoU9n/xyG5yA ErAdQKm12sJFuhjUBfRFzIbLsyylkDp++0PCiDJmeRs7KB5mKEkmYTLqpW15Frl1 l5/UgfwcpmDG+wDOVYXCcmJoqFPjztk+aDazF0AgT0vorn0wFlo= =Yfdm -----END PGP SIGNATURE----- --tJpRIM2aoWGz8Rwb-- From owner-svn-src-head@freebsd.org Tue Oct 8 15:48:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4226C12E52F; Tue, 8 Oct 2019 15:48:29 +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 46nhb10zyNz48s1; Tue, 8 Oct 2019 15:48:29 +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 06AEF22E4; Tue, 8 Oct 2019 15:48:29 +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 x98FmSoH078752; Tue, 8 Oct 2019 15:48:28 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98FmSdG078751; Tue, 8 Oct 2019 15:48:28 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910081548.x98FmSdG078751@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 8 Oct 2019 15:48:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353310 - head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/zfsd X-SVN-Commit-Revision: 353310 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:48:29 -0000 Author: asomers Date: Tue Oct 8 15:48:28 2019 New Revision: 353310 URL: https://svnweb.freebsd.org/changeset/base/353310 Log: zfs: fix the zfsd_hotspare_007_pos test It was trying to destroy the pool while zfsd was detaching the spare, and "zpool destroy" failed. Fix by waiting until the spare has fully detached. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_hotspare_007_pos.ksh Modified: head/tests/sys/cddl/zfs/tests/zfsd/zfsd_hotspare_007_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/zfsd/zfsd_hotspare_007_pos.ksh Tue Oct 8 15:33:11 2019 (r353309) +++ head/tests/sys/cddl/zfs/tests/zfsd/zfsd_hotspare_007_pos.ksh Tue Oct 8 15:48:28 2019 (r353310) @@ -82,6 +82,9 @@ function verify_assertion # spare_dev # Re-enable the missing disk log_must create_gnop $REMOVAL_DISK $PHYSPATH + + # And now the spare should be released + wait_for_pool_dev_state_change 20 $spare_dev AVAIL } typeset PHYSPATH="some_physical_path" From owner-svn-src-head@freebsd.org Tue Oct 8 15:53:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0FF1412E8A8; Tue, 8 Oct 2019 15:53:08 +0000 (UTC) (envelope-from gjb@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 46nhhM6f4mz49NX; Tue, 8 Oct 2019 15:53:07 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id A96F82C1A; Tue, 8 Oct 2019 15:53:02 +0000 (UTC) (envelope-from gjb@freebsd.org) Date: Tue, 8 Oct 2019 15:52:52 +0000 From: Glen Barber To: Warner Losh Cc: Emmanuel Vadot , Ian Lepore , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-ID: <20191008155252.GT27491@FreeBSD.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Ui7Ivv9AiAUGhDAy" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.1 (2019-06-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 15:53:08 -0000 --Ui7Ivv9AiAUGhDAy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 08, 2019 at 09:18:40AM -0600, Warner Losh wrote: > On Tue, Oct 8, 2019 at 8:33 AM Emmanuel Vadot wro= te: > > Anyway it's still need to be reverted as all arches should use latest > > on CURRENT. > > >=20 > Agreed. -current is moving too quickly to use the quarterly, and this 100% > breaks all the graphics .ko's since those *MUST* be compiled against the > latest kernel. Things are already wonky enough there without introducing > this new (bad) behavior to the mix. It should be fixed in other ways, but > until those are in place this change makes a bad situation much, much wor= se. >=20 There is nothing to fix regarding 'latest' and 'quarterly' for CURRENT. It works as expected. root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DCURRENT -V PKGCONFBRANCH latest root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DBETA3 -V PKGCONFBRANCH quarterly root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DSTABLE -V PKGCONFBRANCH latest Glen --Ui7Ivv9AiAUGhDAy Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAl2csNQACgkQAxRYpUeP 4pOYYRAAgBg+LSFYjRg6Rc9HU7RP2Q33Uw8JZFXab5Lcyy9e96qhV1JDgEQKiYHE ilGKIsWO3R89Fc2/Um4TeIXp74IvWmNrh1L276xWKZIgIcO5sCzXH3QVOmdLAJUZ 9eIdsJ+S+I8CzNLvxttvqDXrbqgmQ2lMLz3sm4imQKjqPQKZAGesMgW6u7OS9cM4 I2vXEplTLxGDFkInK/RBwFjRdOYC1LRiGrgzLl1GfAXFdClI/6VW5IQ0s6Q1lxw2 eAjdTgzirYTRMUW9RtcpG3UTBP5Em9gAEjqoWl3zV0gzL2vTyuXXuSGY2yqdSwlK Pnggk1eo76ySJUL+7LE2EjMDq5GHrMmo7fmlfr1mJ6HewBCrYnh9HBhZtS16fPWO 2WCkAjHphzN19qtPt/GcRTGRcUCRV3GeAGQnrXcyS8YCwNnCTGJbyBvBsS4dy6I8 kpIKR34tlJKKCVfBUIiwzbJOKMtsnBPSg1tgssgPGEZGd9WgDjihPP+v112MwIgk PvZwprpEbzsia9/IxU1O0XngHXaKR4u63meCSDDJj7Pk2QvN8Y6JUKvMjwMDPRji /MfVBAb2ua3OujBqmjUhgyvfkqsTbzZke+AeH9fI1NBJsB4eT6kvClPUC2L/OqIC 2xS2pCAoU9+K7b8g/gzrOlpRMgxFvo/Nyo9/EZX0k5hGSPDYfEg= =EUri -----END PGP SIGNATURE----- --Ui7Ivv9AiAUGhDAy-- From owner-svn-src-head@freebsd.org Tue Oct 8 16:42:50 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EEF3A130590; Tue, 8 Oct 2019 16:42:50 +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 46njnk5zx3z4Dpm; Tue, 8 Oct 2019 16:42:50 +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 B13162DD3; Tue, 8 Oct 2019 16:42:50 +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 x98GgoKY013859; Tue, 8 Oct 2019 16:42:50 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98GgoQg013858; Tue, 8 Oct 2019 16:42:50 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910081642.x98GgoQg013858@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 16:42:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353311 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 353311 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 16:42:51 -0000 Author: markj Date: Tue Oct 8 16:42:50 2019 New Revision: 353311 URL: https://svnweb.freebsd.org/changeset/base/353311 Log: Simplify pmap_page_array_startup() a bit. No functional change intended. Sponsored by: The FreeBSD Foundation Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Tue Oct 8 15:48:28 2019 (r353310) +++ head/sys/amd64/amd64/pmap.c Tue Oct 8 16:42:50 2019 (r353311) @@ -3947,9 +3947,9 @@ pmap_page_array_startup(long pages) vm_page_array_size = pages; - start = va = VM_MIN_KERNEL_ADDRESS; - end = va + pages * sizeof(struct vm_page); - while (va < end) { + start = VM_MIN_KERNEL_ADDRESS; + end = start + pages * sizeof(struct vm_page); + for (va = start; va < end; va += NBPDR) { pfn = first_page + (va - start) / sizeof(struct vm_page); domain = _vm_phys_domain(ptoa(pfn)); pdpe = pmap_pdpe(kernel_pmap, va); @@ -3969,7 +3969,6 @@ pmap_page_array_startup(long pages) newpdir = (pd_entry_t)(pa | X86_PG_V | X86_PG_RW | X86_PG_A | X86_PG_M | PG_PS | pg_g | pg_nx); pde_store(pde, newpdir); - va += NBPDR; } vm_page_array = (vm_page_t)start; } From owner-svn-src-head@freebsd.org Tue Oct 8 16:45:56 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0D4313071D; Tue, 8 Oct 2019 16:45:56 +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 46njsJ5fM4z4F4f; Tue, 8 Oct 2019 16:45:56 +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 A69C12DD7; Tue, 8 Oct 2019 16:45:56 +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 x98GjuW9014092; Tue, 8 Oct 2019 16:45:56 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Gju1b014091; Tue, 8 Oct 2019 16:45:56 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910081645.x98Gju1b014091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 8 Oct 2019 16:45:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353312 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353312 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 16:45:56 -0000 Author: glebius Date: Tue Oct 8 16:45:56 2019 New Revision: 353312 URL: https://svnweb.freebsd.org/changeset/base/353312 Log: In DIAGNOSTIC block of if_delmulti_ifma_flags() enter the network epoch. This quickly plugs the regression from r353292. The locking of multicast definitely needs a broader review today... Reported by: pho, dhw Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Oct 8 16:42:50 2019 (r353311) +++ head/sys/net/if.c Tue Oct 8 16:45:56 2019 (r353312) @@ -3689,13 +3689,14 @@ if_delmulti_ifma_flags(struct ifmultiaddr *ifma, int f if (ifp == NULL) { printf("%s: ifma_ifp seems to be detached\n", __func__); } else { + struct epoch_tracker et; struct ifnet *oifp; - NET_EPOCH_ASSERT(); - + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(oifp, &V_ifnet, if_link) if (ifp == oifp) break; + NET_EPOCH_EXIT(et); if (ifp != oifp) ifp = NULL; } From owner-svn-src-head@freebsd.org Tue Oct 8 16:59:18 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5360B130B1A; Tue, 8 Oct 2019 16:59:18 +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 46nk8k1X56z4FpJ; Tue, 8 Oct 2019 16:59:18 +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 17D552FCF; Tue, 8 Oct 2019 16:59:18 +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 x98GxHa6020193; Tue, 8 Oct 2019 16:59:17 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98GxHJA020192; Tue, 8 Oct 2019 16:59:17 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910081659.x98GxHJA020192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 8 Oct 2019 16:59:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353313 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353313 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 16:59:18 -0000 Author: glebius Date: Tue Oct 8 16:59:17 2019 New Revision: 353313 URL: https://svnweb.freebsd.org/changeset/base/353313 Log: Quickly plug another regression from r353292. Again, multicast locking needs lots of work... Reported by: pho Modified: head/sys/netinet/in_mcast.c Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Tue Oct 8 16:45:56 2019 (r353312) +++ head/sys/netinet/in_mcast.c Tue Oct 8 16:59:17 2019 (r353313) @@ -2195,12 +2195,14 @@ inp_join_group(struct inpcb *inp, struct sockopt *sopt * Begin state merge transaction at IGMP layer. */ if (is_new) { + struct epoch_tracker et; + in_pcbref(inp); INP_WUNLOCK(inp); - + NET_EPOCH_ENTER(et); error = in_joingroup_locked(ifp, &gsa->sin.sin_addr, imf, &imf->imf_inm); - + NET_EPOCH_EXIT(et); INP_WLOCK(inp); if (in_pcbrele_wlocked(inp)) { error = ENXIO; From owner-svn-src-head@freebsd.org Tue Oct 8 17:19:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F56113125D; Tue, 8 Oct 2019 17:19:08 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46nkbZ59XRz4H3p; Tue, 8 Oct 2019 17:19:06 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id fcf8bb69; Tue, 8 Oct 2019 19:19:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=rS1c2Rj4PEJhbuTETt7dxM9ky2I=; b=pffSvvsu692+VPWBr5QX2W+r72UV isB6wNj6A7xMGhkyKnFnH4c35OxDculG6fyxfHkyHowWN1ypSdOoonB8pWe8WT6K DcqWRFA2bXrFYowar+GKgjZmZLgk6q3u97juc0SlhKb5syd9Dc0/94ZYMY+en/ey p1smvYNPrdAE9qI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=c5Xut/iKg2IzKDQyJXe1xG5S8ZHU49evOc1TOfoncS+MMGqSfOnTL30n cEYiQWQt9OhqTom0lCzCRwTXKxT2BoDimL7hgrclOs7BxLNM9F05R4srGwAh74ex ls5zOQIHJ4Nf6HGdrmY5PRBqaF5sIfbC6iWBoan/NGuND0vXtb8= Received: from skull.home.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 710289ab TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Tue, 8 Oct 2019 19:19:03 +0200 (CEST) Date: Tue, 8 Oct 2019 19:19:03 +0200 From: Emmanuel Vadot To: Glen Barber Cc: Warner Losh , Ian Lepore , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-Id: <20191008191903.df0e971bee6f257a8f5eae4f@bidouilliste.com> In-Reply-To: <20191008155252.GT27491@FreeBSD.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> <20191008155252.GT27491@FreeBSD.org> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46nkbZ59XRz4H3p X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bidouilliste.com header.s=mail header.b=pffSvvsu; dmarc=none; spf=pass (mx1.freebsd.org: domain of manu@bidouilliste.com designates 212.83.177.182 as permitted sender) smtp.mailfrom=manu@bidouilliste.com X-Spamd-Result: default: False [-1.50 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[bidouilliste.com:s=mail]; NEURAL_HAM_MEDIUM(-0.97)[-0.974,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:212.83.177.182/32]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[bidouilliste.com]; NEURAL_HAM_LONG(-0.99)[-0.994,0]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bidouilliste.com:+]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.37)[ip: (-0.74), ipnet: 212.83.160.0/19(2.48), asn: 12876(0.11), country: FR(-0.00)]; ASN(0.00)[asn:12876, ipnet:212.83.160.0/19, country:FR]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 17:19:08 -0000 On Tue, 8 Oct 2019 15:52:52 +0000 Glen Barber wrote: > On Tue, Oct 08, 2019 at 09:18:40AM -0600, Warner Losh wrote: > > On Tue, Oct 8, 2019 at 8:33 AM Emmanuel Vadot wrote: > > > Anyway it's still need to be reverted as all arches should use latest > > > on CURRENT. > > > > > > > Agreed. -current is moving too quickly to use the quarterly, and this 100% > > breaks all the graphics .ko's since those *MUST* be compiled against the > > latest kernel. Things are already wonky enough there without introducing > > this new (bad) behavior to the mix. It should be fixed in other ways, but > > until those are in place this change makes a bad situation much, much worse. > > > > There is nothing to fix regarding 'latest' and 'quarterly' for CURRENT. > It works as expected. > > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=CURRENT -V PKGCONFBRANCH > latest > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=BETA3 -V PKGCONFBRANCH > quarterly > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=STABLE -V PKGCONFBRANCH > latest > > Glen > Please have a look at the latest image generated for armv7 and aarch64, you will see that it doesn't work as expected. -- Emmanuel Vadot From owner-svn-src-head@freebsd.org Tue Oct 8 17:55:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8095C1322F4; Tue, 8 Oct 2019 17:55:46 +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 46nlPt2v3mz4KFH; Tue, 8 Oct 2019 17:55:46 +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 2EA033DCF; Tue, 8 Oct 2019 17:55:46 +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 x98Htkp6055965; Tue, 8 Oct 2019 17:55:46 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Htkuw055964; Tue, 8 Oct 2019 17:55:46 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910081755.x98Htkuw055964@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 8 Oct 2019 17:55:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353314 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353314 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 17:55:46 -0000 Author: glebius Date: Tue Oct 8 17:55:45 2019 New Revision: 353314 URL: https://svnweb.freebsd.org/changeset/base/353314 Log: Remove epoch assertion from if_setlladdr(). Originally this function was protected by IF_ADDR_LOCK(), which was a mutex, so that two simultaneous if_setlladdr() can't execute. Later it was switched to IF_ADDR_RLOCK(), likely by a mistake. Later it was switched to NET_EPOCH_ENTER(). Then I incorrectly added NET_EPOCH_ASSERT() here. In reality ifp->if_addr never goes away and never changes its length. So, doing bcopy() in it is always "safe", meaning it won't dereference a wrong pointer or write into someone's else memory. Of course doing two bcopy() in parallel would result in a mess of two addresses, but net epoch doesn't protect against that, neither IF_ADDR_RLOCK() did. So for now, just remove the assertion and leave for later a proper fix. Reported by: markj Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Oct 8 16:59:17 2019 (r353313) +++ head/sys/net/if.c Tue Oct 8 17:55:45 2019 (r353314) @@ -3822,26 +3822,18 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, struct sockaddr_dl *sdl; struct ifaddr *ifa; struct ifreq ifr; - int rc; - NET_EPOCH_ASSERT(); - - rc = 0; ifa = ifp->if_addr; - if (ifa == NULL) { - rc = EINVAL; - goto out; - } + if (ifa == NULL) + return (EINVAL); sdl = (struct sockaddr_dl *)ifa->ifa_addr; - if (sdl == NULL) { - rc = EINVAL; - goto out; - } - if (len != sdl->sdl_alen) { /* don't allow length to change */ - rc = EINVAL; - goto out; - } + if (sdl == NULL) + return (EINVAL); + + if (len != sdl->sdl_alen) /* don't allow length to change */ + return (EINVAL); + switch (ifp->if_type) { case IFT_ETHER: case IFT_XETHER: @@ -3851,8 +3843,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, bcopy(lladdr, LLADDR(sdl), len); break; default: - rc = ENODEV; - goto out; + return (ENODEV); } /* @@ -3873,9 +3864,8 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, } } EVENTHANDLER_INVOKE(iflladdr_event, ifp); + return (0); -out: - return (rc); } /* From owner-svn-src-head@freebsd.org Tue Oct 8 18:00:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A119013244F; Tue, 8 Oct 2019 18:00:12 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46nlW03jFdz4KVf; Tue, 8 Oct 2019 18:00:12 +0000 (UTC) (envelope-from gjb@freebsd.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id D3BEA53BF; Tue, 8 Oct 2019 18:00:11 +0000 (UTC) (envelope-from gjb@freebsd.org) Date: Tue, 8 Oct 2019 18:00:09 +0000 From: Glen Barber To: Emmanuel Vadot Cc: Warner Losh , Ian Lepore , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r352520 - head/usr.sbin/pkg Message-ID: <20191008180009.GY27491@FreeBSD.org> References: <201909191643.x8JGhCJu089738@repo.freebsd.org> <20191008122652.63c1a55e76fca9c202e50f8e@bidouilliste.com> <955b9ea8c0a578a422acd508fa98db9af04850ce.camel@freebsd.org> <20191008163332.662fa45bb75e0e9aefdd4723@bidouilliste.com> <20191008155252.GT27491@FreeBSD.org> <20191008191903.df0e971bee6f257a8f5eae4f@bidouilliste.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="DonMn61ARZgwTBST" Content-Disposition: inline In-Reply-To: <20191008191903.df0e971bee6f257a8f5eae4f@bidouilliste.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 18:00:12 -0000 --DonMn61ARZgwTBST Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 08, 2019 at 07:19:03PM +0200, Emmanuel Vadot wrote: > On Tue, 8 Oct 2019 15:52:52 +0000 > Glen Barber wrote: >=20 > > On Tue, Oct 08, 2019 at 09:18:40AM -0600, Warner Losh wrote: > > > On Tue, Oct 8, 2019 at 8:33 AM Emmanuel Vadot = wrote: > > > > Anyway it's still need to be reverted as all arches should use lat= est > > > > on CURRENT. > > > > > > >=20 > > > Agreed. -current is moving too quickly to use the quarterly, and this= 100% > > > breaks all the graphics .ko's since those *MUST* be compiled against = the > > > latest kernel. Things are already wonky enough there without introduc= ing > > > this new (bad) behavior to the mix. It should be fixed in other ways,= but > > > until those are in place this change makes a bad situation much, much= worse. > > >=20 > >=20 > > There is nothing to fix regarding 'latest' and 'quarterly' for CURRENT. > > It works as expected. > >=20 > > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DCURRENT -V PKGCONFB= RANCH > > latest > > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DBETA3 -V PKGCONFBRA= NCH > > quarterly > > root@releng3:/usr/src/usr.sbin/pkg # make BRANCH=3DSTABLE -V PKGCONFBR= ANCH > > latest > >=20 > > Glen > >=20 >=20 > Please have a look at the latest image generated for armv7 and > aarch64, you will see that it doesn't work as expected. >=20 You're right, something is off here. I'm looking into it. Glen --DonMn61ARZgwTBST Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAl2czqkACgkQAxRYpUeP 4pNyfQ//TlgM8PiP1AZJsOYDgylvwoeRKrb/D+aPg4msPdc79jhceclml3saf9AK K9MSkMD2phGrl29v9VVjZzddlIyohQLlgO1A7qRSzQ8v9ES2je+kO9ibbpF4YwlN tUCyXPUiatgPX59KdVfCgFe4h7Ln+W0lPzOj5DI3Rp0BrC46e2G/X0VOk9iyFSuJ QeR0kZNUehShfnWmpwCefaeUlDySBRKpzZr5zDtUicXgxpzkL2CE+3SCVIO7e5wd xsDvG9XohIGTxeNCV1UPxllgJ3Ugr1xSVITnrk1mrJeRhwP0OgWGtTdbSOvDLnfP CRRjNkYfxlnQol7ncg0/KP78ye7gZyLeG6JV4m18B40yEKlrV/9KqsVO0g09CTjB wJjaP5pKr5wfST3Q4RZoA60CCkzpbSKhgXz1jI1Xu0Anhluhgc+V63eoVQ9Ubk/t BbT4uMvDMamtEa3DoUqjvVcedZSPsfkiAtHBeHlsarYamnHgIyVR/G3ZX6nqd9Vh Jd/qfGYk+rsWSQEox0ZYqTSFgHYFtvEfrlUtggTSuLfIXL+LwwWCCldY0GAqn1He jTPEHNU2/WOlbO36VaxuO1HRI+cqOx+Va0kYK4VbmfNzOIlDp3+/w9QzHhWLvlxb DOQSgFtLaQWWvf/EU5e4KzsI1C5iqJGLT26B5KNddSaQBrX1Q2A= =f303 -----END PGP SIGNATURE----- --DonMn61ARZgwTBST-- From owner-svn-src-head@freebsd.org Tue Oct 8 18:58:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6FEB6133AB6; Tue, 8 Oct 2019 18:58:24 +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 46nmp81tc3z4NcH; Tue, 8 Oct 2019 18:58:24 +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 209484981; Tue, 8 Oct 2019 18:58:24 +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 x98IwND8092017; Tue, 8 Oct 2019 18:58:23 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98IwNnN092016; Tue, 8 Oct 2019 18:58:23 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910081858.x98IwNnN092016@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 8 Oct 2019 18:58:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353320 - head/usr.sbin/pkg X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/usr.sbin/pkg X-SVN-Commit-Revision: 353320 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 18:58:24 -0000 Author: gjb Date: Tue Oct 8 18:58:23 2019 New Revision: 353320 URL: https://svnweb.freebsd.org/changeset/base/353320 Log: Rework the logic for installing the pkg(8) configuration. 'quarterly' package sets do not exist for head, so explicitly install the 'latest' configuration file there. Otherwise, fall back to the original conditional evaluation to determine if the 'latest' or 'quarterly' configuration file should be installed. Reported by: manu Reviewed by: manu MFC after: 3 days Sponsored by: Rubicon Communications, LLC (Netgate) Modified: head/usr.sbin/pkg/Makefile Modified: head/usr.sbin/pkg/Makefile ============================================================================== --- head/usr.sbin/pkg/Makefile Tue Oct 8 18:21:44 2019 (r353319) +++ head/usr.sbin/pkg/Makefile Tue Oct 8 18:58:23 2019 (r353320) @@ -1,14 +1,18 @@ # $FreeBSD$ -.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" -PKGCONFBRANCH?= quarterly -.else _BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH BRANCH?= ${_BRANCH} +.if ${BRANCH:MCURRENT} != "" +PKGCONFBRANCH?= latest +.else . if ${BRANCH:MBETA*} || ${BRANCH:MRC*} || ${BRANCH:MRELEASE*} PKGCONFBRANCH?= quarterly . else +. if ${MACHINE} != "amd64" && ${MACHINE} != "i386" +PKGCONFBRANCH?= quarterly +. else PKGCONFBRANCH?= latest +. endif . endif .endif CONFS= FreeBSD.conf.${PKGCONFBRANCH} From owner-svn-src-head@freebsd.org Tue Oct 8 19:49:26 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 668A21350D8; Tue, 8 Oct 2019 19:49:26 +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 46nnx223y1z4R2j; Tue, 8 Oct 2019 19:49:26 +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 26F835258; Tue, 8 Oct 2019 19:49:26 +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 x98JnQow021544; Tue, 8 Oct 2019 19:49:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98JnPnQ021543; Tue, 8 Oct 2019 19:49:25 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910081949.x98JnPnQ021543@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 8 Oct 2019 19:49:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353321 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353321 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 19:49:26 -0000 Author: hselasky Date: Tue Oct 8 19:49:25 2019 New Revision: 353321 URL: https://svnweb.freebsd.org/changeset/base/353321 Log: Fix regression issue after r352989: As noted by the commit message, callouts are now persistant and should not be in the auto-zero section of the RQ's and SQ's. This fixes an assert when using the TX completion event factor feature with mlx5en(4). Found by: gallatin@ MFC after: 3 days Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/en.h Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Tue Oct 8 18:58:23 2019 (r353320) +++ head/sys/dev/mlx5/mlx5_en/en.h Tue Oct 8 19:49:25 2019 (r353321) @@ -748,6 +748,7 @@ struct mlx5e_rq { /* persistant fields */ struct mtx mtx; struct mlx5e_rq_stats stats; + struct callout watchdog; /* data path */ #define mlx5e_rq_zero_start wq @@ -769,7 +770,6 @@ struct mlx5e_rq { struct mlx5_wq_ctrl wq_ctrl; u32 rqn; struct mlx5e_channel *channel; - struct callout watchdog; } __aligned(MLX5E_CACHELINE_SIZE); struct mlx5e_sq_mbuf { @@ -794,6 +794,7 @@ struct mlx5e_sq { struct mtx lock; struct mtx comp_lock; struct mlx5e_sq_stats stats; + struct callout cev_callout; /* data path */ #define mlx5e_sq_zero_start dma_tag @@ -812,7 +813,6 @@ struct mlx5e_sq { #define MLX5E_CEV_STATE_SEND_NOPS 1 /* send NOPs */ #define MLX5E_CEV_STATE_HOLD_NOPS 2 /* don't send NOPs yet */ u16 running; /* set if SQ is running */ - struct callout cev_callout; union { u32 d32[2]; u64 d64; From owner-svn-src-head@freebsd.org Tue Oct 8 20:22:06 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E60413605B; Tue, 8 Oct 2019 20:22: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 46npfk0v4zz4T7x; Tue, 8 Oct 2019 20:22:06 +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 032315871; Tue, 8 Oct 2019 20:22:06 +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 x98KM5p4046092; Tue, 8 Oct 2019 20:22:05 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98KM5WK046091; Tue, 8 Oct 2019 20:22:05 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910082022.x98KM5WK046091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 8 Oct 2019 20:22:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353323 - head/sys/dev/cxgbe/crypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/dev/cxgbe/crypto X-SVN-Commit-Revision: 353323 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 20:22:06 -0000 Author: jhb Date: Tue Oct 8 20:22:05 2019 New Revision: 353323 URL: https://svnweb.freebsd.org/changeset/base/353323 Log: Set the FID field in lookaside crypto requests to the rx queue ID. The PCI block in the adapter requires this field to be set to a valid queue ID. It is not clear why it did not fail on all machines, but the effect was that crypto operations reading input data via DMA failed with an internal PCI read error on machines with 128G or more of RAM. Reported by: gallatin Reviewed by: np MFC after: 3 days Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/crypto/t4_crypto.c Modified: head/sys/dev/cxgbe/crypto/t4_crypto.c ============================================================================== --- head/sys/dev/cxgbe/crypto/t4_crypto.c Tue Oct 8 20:14:33 2019 (r353322) +++ head/sys/dev/cxgbe/crypto/t4_crypto.c Tue Oct 8 20:22:05 2019 (r353323) @@ -419,7 +419,7 @@ ccr_populate_wreq(struct ccr_softc *sc, struct chcr_wr crwr->ulptx.cmd_dest = htobe32(V_ULPTX_CMD(ULP_TX_PKT) | V_ULP_TXPKT_DATAMODIFY(0) | V_ULP_TXPKT_CHANNELID(sc->tx_channel_id) | V_ULP_TXPKT_DEST(0) | - V_ULP_TXPKT_FID(0) | V_ULP_TXPKT_RO(1)); + V_ULP_TXPKT_FID(sc->rxq->iq.abs_id) | V_ULP_TXPKT_RO(1)); crwr->ulptx.len = htobe32( ((wr_len - sizeof(struct fw_crypto_lookaside_wr)) / 16)); From owner-svn-src-head@freebsd.org Tue Oct 8 20:26:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 91DB913610C; Tue, 8 Oct 2019 20:26:52 +0000 (UTC) (envelope-from brooks@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 46npmD3KLsz4TK6; Tue, 8 Oct 2019 20:26:52 +0000 (UTC) (envelope-from brooks@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 556FF59B1; Tue, 8 Oct 2019 20:26:52 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98KQqwe047078; Tue, 8 Oct 2019 20:26:52 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98KQqU6047077; Tue, 8 Oct 2019 20:26:52 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910082026.x98KQqU6047077@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 8 Oct 2019 20:26:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353324 - head X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353324 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 20:26:52 -0000 Author: brooks Date: Tue Oct 8 20:26:51 2019 New Revision: 353324 URL: https://svnweb.freebsd.org/changeset/base/353324 Log: Allow -DNO_CLEAN build across r352689. Split the LIBCOMPAT case because the usual egrep only matches in LIBCOMPAT on amd64. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue Oct 8 20:22:05 2019 (r353323) +++ head/Makefile.inc1 Tue Oct 8 20:26:51 2019 (r353324) @@ -950,6 +950,21 @@ _sanity_check: .PHONY .MAKE _cleanobj_fast_depend_hack: .PHONY # Syscall stubs rewritten in C and obsolete MD assembly implementations # Date SVN Rev Syscalls +# 20190925 r352689 removal of obsolete i386 memchr.S +.for f in memchr + @if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \ + egrep -qw 'i386/string/memchr\.S' ${OBJTOP}/lib/libc/.depend.${f}.o; then \ + echo "Removing stale dependencies for memchr"; \ + rm -f ${OBJTOP}/lib/libc/.depend.${f}.*; \ + fi +.if defined(LIBCOMPAT) + @if [ -e "${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.o" ] && \ + egrep -qw 'i386/string/memchr\.S' ${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.o; then \ + echo "Removing stale dependencies for memchr"; \ + rm -f ${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.*; \ + fi +.endif +.endfor # 20180604 r334626 brk sbrk # 20190916 r352703 shm_open .for f in brk sbrk shm_open From owner-svn-src-head@freebsd.org Tue Oct 8 20:59:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 37E10136AA4; Tue, 8 Oct 2019 20:59:42 +0000 (UTC) (envelope-from brooks@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 46nqV61LNsz4Vmj; Tue, 8 Oct 2019 20:59:42 +0000 (UTC) (envelope-from brooks@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 123975FA6; Tue, 8 Oct 2019 20:59:42 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98KxgSq065308; Tue, 8 Oct 2019 20:59:42 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98KxWgW065254; Tue, 8 Oct 2019 20:59:32 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910082059.x98KxWgW065254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 8 Oct 2019 20:59:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353325 - in head/contrib/tcsh: . nls nls/C nls/et nls/finnish nls/french nls/german nls/greek nls/italian nls/ja nls/russian nls/spanish nls/ukrainian X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in head/contrib/tcsh: . nls nls/C nls/et nls/finnish nls/french nls/german nls/greek nls/italian nls/ja nls/russian nls/spanish nls/ukrainian X-SVN-Commit-Revision: 353325 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 20:59:42 -0000 Author: brooks Date: Tue Oct 8 20:59:31 2019 New Revision: 353325 URL: https://svnweb.freebsd.org/changeset/base/353325 Log: Update tcsh to 6.21.00. This is a bugfix release with no new features. A number of these fixes were previously merged into our tree. Sponsored by: DARPA, AFRL Added: head/contrib/tcsh/README.md - copied unchanged from r353317, vendor/tcsh/dist/README.md Deleted: head/contrib/tcsh/README head/contrib/tcsh/README.imake Modified: head/contrib/tcsh/Fixes head/contrib/tcsh/Imakefile head/contrib/tcsh/MAKEDIFFS head/contrib/tcsh/MAKESHAR head/contrib/tcsh/Makefile.in head/contrib/tcsh/Makefile.std head/contrib/tcsh/Makefile.vms head/contrib/tcsh/Ported head/contrib/tcsh/complete.tcsh head/contrib/tcsh/config_f.h head/contrib/tcsh/configure head/contrib/tcsh/dotlock.c head/contrib/tcsh/ed.chared.c head/contrib/tcsh/ed.decls.h head/contrib/tcsh/ed.defns.c head/contrib/tcsh/ed.h head/contrib/tcsh/ed.init.c head/contrib/tcsh/ed.inputl.c head/contrib/tcsh/ed.refresh.c head/contrib/tcsh/ed.screen.c head/contrib/tcsh/ed.term.c head/contrib/tcsh/ed.term.h head/contrib/tcsh/ed.xmap.c head/contrib/tcsh/eight-bit.me head/contrib/tcsh/gethost.c head/contrib/tcsh/glob.3 head/contrib/tcsh/glob.c head/contrib/tcsh/glob.h head/contrib/tcsh/host.defs head/contrib/tcsh/imake.config head/contrib/tcsh/ma.setp.c head/contrib/tcsh/mi.termios.c head/contrib/tcsh/mi.varargs.h head/contrib/tcsh/nls/C/set1 head/contrib/tcsh/nls/C/set10 head/contrib/tcsh/nls/C/set11 head/contrib/tcsh/nls/C/set12 head/contrib/tcsh/nls/C/set13 head/contrib/tcsh/nls/C/set14 head/contrib/tcsh/nls/C/set15 head/contrib/tcsh/nls/C/set16 head/contrib/tcsh/nls/C/set17 head/contrib/tcsh/nls/C/set18 head/contrib/tcsh/nls/C/set19 head/contrib/tcsh/nls/C/set2 head/contrib/tcsh/nls/C/set20 head/contrib/tcsh/nls/C/set21 head/contrib/tcsh/nls/C/set22 head/contrib/tcsh/nls/C/set23 head/contrib/tcsh/nls/C/set24 head/contrib/tcsh/nls/C/set25 head/contrib/tcsh/nls/C/set26 head/contrib/tcsh/nls/C/set27 head/contrib/tcsh/nls/C/set29 head/contrib/tcsh/nls/C/set3 head/contrib/tcsh/nls/C/set30 head/contrib/tcsh/nls/C/set31 head/contrib/tcsh/nls/C/set4 head/contrib/tcsh/nls/C/set5 head/contrib/tcsh/nls/C/set6 head/contrib/tcsh/nls/C/set7 head/contrib/tcsh/nls/C/set8 head/contrib/tcsh/nls/C/set9 head/contrib/tcsh/nls/Makefile.in head/contrib/tcsh/nls/catgen head/contrib/tcsh/nls/et/set1 head/contrib/tcsh/nls/et/set10 head/contrib/tcsh/nls/et/set11 head/contrib/tcsh/nls/et/set12 head/contrib/tcsh/nls/et/set13 head/contrib/tcsh/nls/et/set14 head/contrib/tcsh/nls/et/set15 head/contrib/tcsh/nls/et/set16 head/contrib/tcsh/nls/et/set17 head/contrib/tcsh/nls/et/set18 head/contrib/tcsh/nls/et/set19 head/contrib/tcsh/nls/et/set2 head/contrib/tcsh/nls/et/set20 head/contrib/tcsh/nls/et/set21 head/contrib/tcsh/nls/et/set22 head/contrib/tcsh/nls/et/set23 head/contrib/tcsh/nls/et/set24 head/contrib/tcsh/nls/et/set25 head/contrib/tcsh/nls/et/set26 head/contrib/tcsh/nls/et/set27 head/contrib/tcsh/nls/et/set29 head/contrib/tcsh/nls/et/set3 head/contrib/tcsh/nls/et/set30 head/contrib/tcsh/nls/et/set31 head/contrib/tcsh/nls/et/set4 head/contrib/tcsh/nls/et/set5 head/contrib/tcsh/nls/et/set6 head/contrib/tcsh/nls/et/set7 head/contrib/tcsh/nls/et/set8 head/contrib/tcsh/nls/et/set9 head/contrib/tcsh/nls/finnish/set1 head/contrib/tcsh/nls/finnish/set10 head/contrib/tcsh/nls/finnish/set11 head/contrib/tcsh/nls/finnish/set12 head/contrib/tcsh/nls/finnish/set13 head/contrib/tcsh/nls/finnish/set14 head/contrib/tcsh/nls/finnish/set15 head/contrib/tcsh/nls/finnish/set16 head/contrib/tcsh/nls/finnish/set17 head/contrib/tcsh/nls/finnish/set18 head/contrib/tcsh/nls/finnish/set19 head/contrib/tcsh/nls/finnish/set2 head/contrib/tcsh/nls/finnish/set20 head/contrib/tcsh/nls/finnish/set21 head/contrib/tcsh/nls/finnish/set22 head/contrib/tcsh/nls/finnish/set23 head/contrib/tcsh/nls/finnish/set24 head/contrib/tcsh/nls/finnish/set25 head/contrib/tcsh/nls/finnish/set26 head/contrib/tcsh/nls/finnish/set27 head/contrib/tcsh/nls/finnish/set29 head/contrib/tcsh/nls/finnish/set3 head/contrib/tcsh/nls/finnish/set30 head/contrib/tcsh/nls/finnish/set31 head/contrib/tcsh/nls/finnish/set4 head/contrib/tcsh/nls/finnish/set5 head/contrib/tcsh/nls/finnish/set6 head/contrib/tcsh/nls/finnish/set7 head/contrib/tcsh/nls/finnish/set8 head/contrib/tcsh/nls/finnish/set9 head/contrib/tcsh/nls/french/set1 head/contrib/tcsh/nls/french/set10 head/contrib/tcsh/nls/french/set11 head/contrib/tcsh/nls/french/set12 head/contrib/tcsh/nls/french/set13 head/contrib/tcsh/nls/french/set14 head/contrib/tcsh/nls/french/set15 head/contrib/tcsh/nls/french/set16 head/contrib/tcsh/nls/french/set17 head/contrib/tcsh/nls/french/set18 head/contrib/tcsh/nls/french/set19 head/contrib/tcsh/nls/french/set2 head/contrib/tcsh/nls/french/set20 head/contrib/tcsh/nls/french/set21 head/contrib/tcsh/nls/french/set22 head/contrib/tcsh/nls/french/set23 head/contrib/tcsh/nls/french/set24 head/contrib/tcsh/nls/french/set25 head/contrib/tcsh/nls/french/set26 head/contrib/tcsh/nls/french/set27 head/contrib/tcsh/nls/french/set29 head/contrib/tcsh/nls/french/set3 head/contrib/tcsh/nls/french/set30 head/contrib/tcsh/nls/french/set31 head/contrib/tcsh/nls/french/set4 head/contrib/tcsh/nls/french/set5 head/contrib/tcsh/nls/french/set6 head/contrib/tcsh/nls/french/set7 head/contrib/tcsh/nls/french/set8 head/contrib/tcsh/nls/french/set9 head/contrib/tcsh/nls/german/set1 head/contrib/tcsh/nls/german/set10 head/contrib/tcsh/nls/german/set11 head/contrib/tcsh/nls/german/set12 head/contrib/tcsh/nls/german/set13 head/contrib/tcsh/nls/german/set14 head/contrib/tcsh/nls/german/set15 head/contrib/tcsh/nls/german/set16 head/contrib/tcsh/nls/german/set17 head/contrib/tcsh/nls/german/set18 head/contrib/tcsh/nls/german/set19 head/contrib/tcsh/nls/german/set2 head/contrib/tcsh/nls/german/set20 head/contrib/tcsh/nls/german/set21 head/contrib/tcsh/nls/german/set22 head/contrib/tcsh/nls/german/set23 head/contrib/tcsh/nls/german/set24 head/contrib/tcsh/nls/german/set25 head/contrib/tcsh/nls/german/set26 head/contrib/tcsh/nls/german/set27 head/contrib/tcsh/nls/german/set29 head/contrib/tcsh/nls/german/set3 head/contrib/tcsh/nls/german/set30 head/contrib/tcsh/nls/german/set31 head/contrib/tcsh/nls/german/set4 head/contrib/tcsh/nls/german/set5 head/contrib/tcsh/nls/german/set6 head/contrib/tcsh/nls/german/set7 head/contrib/tcsh/nls/german/set8 head/contrib/tcsh/nls/german/set9 head/contrib/tcsh/nls/greek/set1 head/contrib/tcsh/nls/greek/set10 head/contrib/tcsh/nls/greek/set11 head/contrib/tcsh/nls/greek/set12 head/contrib/tcsh/nls/greek/set13 head/contrib/tcsh/nls/greek/set14 head/contrib/tcsh/nls/greek/set15 head/contrib/tcsh/nls/greek/set16 head/contrib/tcsh/nls/greek/set17 head/contrib/tcsh/nls/greek/set18 head/contrib/tcsh/nls/greek/set19 head/contrib/tcsh/nls/greek/set2 head/contrib/tcsh/nls/greek/set20 head/contrib/tcsh/nls/greek/set21 head/contrib/tcsh/nls/greek/set22 head/contrib/tcsh/nls/greek/set23 head/contrib/tcsh/nls/greek/set24 head/contrib/tcsh/nls/greek/set25 head/contrib/tcsh/nls/greek/set26 head/contrib/tcsh/nls/greek/set27 head/contrib/tcsh/nls/greek/set29 head/contrib/tcsh/nls/greek/set3 head/contrib/tcsh/nls/greek/set30 head/contrib/tcsh/nls/greek/set31 head/contrib/tcsh/nls/greek/set4 head/contrib/tcsh/nls/greek/set5 head/contrib/tcsh/nls/greek/set6 head/contrib/tcsh/nls/greek/set7 head/contrib/tcsh/nls/greek/set8 head/contrib/tcsh/nls/greek/set9 head/contrib/tcsh/nls/italian/set1 head/contrib/tcsh/nls/italian/set10 head/contrib/tcsh/nls/italian/set11 head/contrib/tcsh/nls/italian/set12 head/contrib/tcsh/nls/italian/set13 head/contrib/tcsh/nls/italian/set14 head/contrib/tcsh/nls/italian/set15 head/contrib/tcsh/nls/italian/set16 head/contrib/tcsh/nls/italian/set17 head/contrib/tcsh/nls/italian/set18 head/contrib/tcsh/nls/italian/set19 head/contrib/tcsh/nls/italian/set2 head/contrib/tcsh/nls/italian/set20 head/contrib/tcsh/nls/italian/set21 head/contrib/tcsh/nls/italian/set22 head/contrib/tcsh/nls/italian/set23 head/contrib/tcsh/nls/italian/set24 head/contrib/tcsh/nls/italian/set25 head/contrib/tcsh/nls/italian/set26 head/contrib/tcsh/nls/italian/set27 head/contrib/tcsh/nls/italian/set29 head/contrib/tcsh/nls/italian/set3 head/contrib/tcsh/nls/italian/set30 head/contrib/tcsh/nls/italian/set31 head/contrib/tcsh/nls/italian/set4 head/contrib/tcsh/nls/italian/set5 head/contrib/tcsh/nls/italian/set6 head/contrib/tcsh/nls/italian/set7 head/contrib/tcsh/nls/italian/set8 head/contrib/tcsh/nls/italian/set9 head/contrib/tcsh/nls/ja/set1 head/contrib/tcsh/nls/ja/set10 head/contrib/tcsh/nls/ja/set11 head/contrib/tcsh/nls/ja/set12 head/contrib/tcsh/nls/ja/set13 head/contrib/tcsh/nls/ja/set15 head/contrib/tcsh/nls/ja/set16 head/contrib/tcsh/nls/ja/set17 head/contrib/tcsh/nls/ja/set18 head/contrib/tcsh/nls/ja/set2 head/contrib/tcsh/nls/ja/set21 head/contrib/tcsh/nls/ja/set24 head/contrib/tcsh/nls/ja/set29 head/contrib/tcsh/nls/ja/set3 head/contrib/tcsh/nls/ja/set30 head/contrib/tcsh/nls/ja/set4 head/contrib/tcsh/nls/ja/set5 head/contrib/tcsh/nls/ja/set6 head/contrib/tcsh/nls/ja/set7 head/contrib/tcsh/nls/ja/set8 head/contrib/tcsh/nls/russian/set1 head/contrib/tcsh/nls/russian/set10 head/contrib/tcsh/nls/russian/set11 head/contrib/tcsh/nls/russian/set12 head/contrib/tcsh/nls/russian/set13 head/contrib/tcsh/nls/russian/set14 head/contrib/tcsh/nls/russian/set15 head/contrib/tcsh/nls/russian/set16 head/contrib/tcsh/nls/russian/set17 head/contrib/tcsh/nls/russian/set18 head/contrib/tcsh/nls/russian/set19 head/contrib/tcsh/nls/russian/set2 head/contrib/tcsh/nls/russian/set20 head/contrib/tcsh/nls/russian/set21 head/contrib/tcsh/nls/russian/set22 head/contrib/tcsh/nls/russian/set23 head/contrib/tcsh/nls/russian/set24 head/contrib/tcsh/nls/russian/set25 head/contrib/tcsh/nls/russian/set26 head/contrib/tcsh/nls/russian/set27 head/contrib/tcsh/nls/russian/set29 head/contrib/tcsh/nls/russian/set3 head/contrib/tcsh/nls/russian/set30 head/contrib/tcsh/nls/russian/set31 head/contrib/tcsh/nls/russian/set4 head/contrib/tcsh/nls/russian/set5 head/contrib/tcsh/nls/russian/set6 head/contrib/tcsh/nls/russian/set7 head/contrib/tcsh/nls/russian/set8 head/contrib/tcsh/nls/russian/set9 head/contrib/tcsh/nls/spanish/set1 head/contrib/tcsh/nls/spanish/set10 head/contrib/tcsh/nls/spanish/set11 head/contrib/tcsh/nls/spanish/set12 head/contrib/tcsh/nls/spanish/set13 head/contrib/tcsh/nls/spanish/set14 head/contrib/tcsh/nls/spanish/set15 head/contrib/tcsh/nls/spanish/set16 head/contrib/tcsh/nls/spanish/set17 head/contrib/tcsh/nls/spanish/set18 head/contrib/tcsh/nls/spanish/set19 head/contrib/tcsh/nls/spanish/set2 head/contrib/tcsh/nls/spanish/set20 head/contrib/tcsh/nls/spanish/set21 head/contrib/tcsh/nls/spanish/set22 head/contrib/tcsh/nls/spanish/set23 head/contrib/tcsh/nls/spanish/set24 head/contrib/tcsh/nls/spanish/set25 head/contrib/tcsh/nls/spanish/set26 head/contrib/tcsh/nls/spanish/set27 head/contrib/tcsh/nls/spanish/set29 head/contrib/tcsh/nls/spanish/set3 head/contrib/tcsh/nls/spanish/set30 head/contrib/tcsh/nls/spanish/set31 head/contrib/tcsh/nls/spanish/set4 head/contrib/tcsh/nls/spanish/set5 head/contrib/tcsh/nls/spanish/set6 head/contrib/tcsh/nls/spanish/set7 head/contrib/tcsh/nls/spanish/set8 head/contrib/tcsh/nls/spanish/set9 head/contrib/tcsh/nls/ukrainian/set1 head/contrib/tcsh/nls/ukrainian/set10 head/contrib/tcsh/nls/ukrainian/set11 head/contrib/tcsh/nls/ukrainian/set12 head/contrib/tcsh/nls/ukrainian/set13 head/contrib/tcsh/nls/ukrainian/set14 head/contrib/tcsh/nls/ukrainian/set15 head/contrib/tcsh/nls/ukrainian/set16 head/contrib/tcsh/nls/ukrainian/set17 head/contrib/tcsh/nls/ukrainian/set18 head/contrib/tcsh/nls/ukrainian/set19 head/contrib/tcsh/nls/ukrainian/set2 head/contrib/tcsh/nls/ukrainian/set20 head/contrib/tcsh/nls/ukrainian/set21 head/contrib/tcsh/nls/ukrainian/set22 head/contrib/tcsh/nls/ukrainian/set23 head/contrib/tcsh/nls/ukrainian/set24 head/contrib/tcsh/nls/ukrainian/set25 head/contrib/tcsh/nls/ukrainian/set26 head/contrib/tcsh/nls/ukrainian/set27 head/contrib/tcsh/nls/ukrainian/set29 head/contrib/tcsh/nls/ukrainian/set3 head/contrib/tcsh/nls/ukrainian/set30 head/contrib/tcsh/nls/ukrainian/set31 head/contrib/tcsh/nls/ukrainian/set4 head/contrib/tcsh/nls/ukrainian/set5 head/contrib/tcsh/nls/ukrainian/set6 head/contrib/tcsh/nls/ukrainian/set7 head/contrib/tcsh/nls/ukrainian/set8 head/contrib/tcsh/nls/ukrainian/set9 head/contrib/tcsh/patchlevel.h head/contrib/tcsh/pathnames.h head/contrib/tcsh/sh.c head/contrib/tcsh/sh.char.c head/contrib/tcsh/sh.char.h head/contrib/tcsh/sh.decls.h head/contrib/tcsh/sh.dir.c head/contrib/tcsh/sh.dir.h head/contrib/tcsh/sh.dol.c head/contrib/tcsh/sh.err.c head/contrib/tcsh/sh.exec.c head/contrib/tcsh/sh.exp.c head/contrib/tcsh/sh.file.c head/contrib/tcsh/sh.func.c head/contrib/tcsh/sh.glob.c head/contrib/tcsh/sh.h head/contrib/tcsh/sh.hist.c head/contrib/tcsh/sh.init.c head/contrib/tcsh/sh.lex.c head/contrib/tcsh/sh.misc.c head/contrib/tcsh/sh.parse.c head/contrib/tcsh/sh.print.c head/contrib/tcsh/sh.proc.c head/contrib/tcsh/sh.proc.h head/contrib/tcsh/sh.sem.c head/contrib/tcsh/sh.set.c head/contrib/tcsh/sh.time.c head/contrib/tcsh/sh.types.h head/contrib/tcsh/snames.h head/contrib/tcsh/tc.alloc.c head/contrib/tcsh/tc.bind.c head/contrib/tcsh/tc.const.c head/contrib/tcsh/tc.decls.h head/contrib/tcsh/tc.disc.c head/contrib/tcsh/tc.func.c head/contrib/tcsh/tc.h head/contrib/tcsh/tc.nls.c head/contrib/tcsh/tc.nls.h head/contrib/tcsh/tc.os.c head/contrib/tcsh/tc.os.h head/contrib/tcsh/tc.printf.c head/contrib/tcsh/tc.prompt.c head/contrib/tcsh/tc.sched.c head/contrib/tcsh/tc.sig.c head/contrib/tcsh/tc.sig.h head/contrib/tcsh/tc.str.c head/contrib/tcsh/tc.vers.c head/contrib/tcsh/tc.wait.h head/contrib/tcsh/tc.who.c head/contrib/tcsh/tcsh.man head/contrib/tcsh/tcsh.man.new head/contrib/tcsh/tcsh.man2html head/contrib/tcsh/termcap.vms head/contrib/tcsh/tw.color.c head/contrib/tcsh/tw.comp.c head/contrib/tcsh/tw.decls.h head/contrib/tcsh/tw.h head/contrib/tcsh/tw.help.c head/contrib/tcsh/tw.init.c head/contrib/tcsh/tw.parse.c head/contrib/tcsh/tw.spell.c head/contrib/tcsh/vms.termcap.c Directory Properties: head/contrib/tcsh/ (props changed) Modified: head/contrib/tcsh/Fixes ============================================================================== --- head/contrib/tcsh/Fixes Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Fixes Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,18 @@ - 22. Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar) + 12. V6.21.00 - 20190508 + 11. Abort history loading on words and lines too long + https://bugzilla.redhat.com/show_bug.cgi?id=1598502 + 10. PR/37: Introduce GetCmdChar() to avoid open coding array access. + 9. make closem() not close sockets so as not to affect nss_ldap. + tcsh never creates sockets so that's ok (Miloslav Trmac) + 8. PR/597: Make rmstar work with aliased rm + 7. convert match() from recursive to backtracking. + 6. Handle 8 bit characters in bindkey (Werner Fink) + 5. Look for tgetent in libtinfo as well (Werner Fink) + 4. Don't play pointer tricks that are undefined in modern c (Brooks Davis) + 3. Fix out of bounds read (Brooks Davis) + 2. Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar) + 1. PR/471: Delay arginp parsing + 20. V6.20.00 - 20161124 19. Don't resize the screen if it did not change size. 18. V6.19.01 - 20161025 Modified: head/contrib/tcsh/Imakefile ============================================================================== --- head/contrib/tcsh/Imakefile Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Imakefile Tue Oct 8 20:59:31 2019 (r353325) @@ -1,6 +1,4 @@ XCOMM -XCOMM $tcsh: Imakefile,v 1.88 2014/07/07 20:34:58 christos Exp $ -XCOMM XCOMM Imakefile for tcsh 6.12 XCOMM Marc Horowitz, MIT SIPB XCOMM @@ -522,12 +520,11 @@ TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} -MISCF = Makefile.std Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ - WishList config_f.h eight-bit.me glob.3 patchlevel.h \ - pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ - README.imake complete.tcsh vmsreadme.txt Makefile.vms termcap.vms \ - snames.h host.defs gethost.c tcsh.man2html Makefile.in configure.ac \ - Makefile.win32 aclocal.m4 +MISCF = Makefile.std BUILDING Fixes MAKEDIFFS MAKESHAR NewThings README.md \ + FAQ WishList config_f.h eight-bit.me glob.3 patchlevel.h pathnames.h \ + tcsh.man Ported src.desc Imakefile imake.config complete.tcsh \ + Makefile.vms termcap.vms snames.h host.defs gethost.c tcsh.man2html \ + Makefile.in configure.ac Makefile.win32 aclocal.m4 CONFSRCS=config/[a-z]* Modified: head/contrib/tcsh/MAKEDIFFS ============================================================================== --- head/contrib/tcsh/MAKEDIFFS Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/MAKEDIFFS Tue Oct 8 20:59:31 2019 (r353325) @@ -2,7 +2,6 @@ # # MAKEDIFFS.sh: Make context diffs for the csh sources # -# $tcsh: MAKEDIFFS,v 3.1 2006/03/02 18:46:44 christos Exp $ XINUDIR=/usr/share/src/mtXinu/bin/csh BSDDIR=/usr/share/src/mtXinu/BSD/bin/csh TAHOEDIR=/usr/share/src/mtXinu/TAHOE/bin/csh Modified: head/contrib/tcsh/MAKESHAR ============================================================================== --- head/contrib/tcsh/MAKESHAR Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/MAKESHAR Tue Oct 8 20:59:31 2019 (r353325) @@ -2,7 +2,6 @@ # # MAKESHAR.sh: Make a shar file for the sources # -# $tcsh: MAKESHAR,v 3.2 2006/03/02 18:46:44 christos Exp $ AWK=/usr/bin/nawk # Must be nawk or gawk cause of 2D arrays WC=/usr/ucb/wc Modified: head/contrib/tcsh/Makefile.in ============================================================================== --- head/contrib/tcsh/Makefile.in Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Makefile.in Tue Oct 8 20:59:31 2019 (r353325) @@ -1,5 +1,3 @@ -# $tcsh: Makefile.in,v 3.59 2015/08/24 20:09:04 kim Exp $ -# Makefile.in 4.3 6/11/83 # # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria @@ -407,11 +405,11 @@ TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.vers.${SUF} tc.who.${SUF} PVSRCS= Makefile.std Makefile.vms Makefile.in Makefile.win32 -AVSRCS= Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ +AVSRCS= BUILDING Fixes MAKEDIFFS MAKESHAR NewThings README.md FAQ \ WishList config_f.h eight-bit.me glob.3 patchlevel.h \ pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ - README.imake complete.tcsh vmsreadme.txt termcap.vms snames.h \ - host.defs gethost.c tcsh.man2html configure.ac configure config.h.in \ + complete.tcsh vmsreadme.txt termcap.vms snames.h host.defs \ + gethost.c tcsh.man2html configure.ac configure config.h.in \ tests/testsuite.at aclocal.m4 TESTFILES= tests/aliases.at tests/arguments.at tests/commands.at \ tests/expr.at tests/lexical.at tests/mb-eucjp.at \ @@ -449,7 +447,7 @@ pure:$(P) ${OBJS} gethost: gethost.c sh.err.h tc.const.h sh.h rm -f gethost - ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} $(srcdir)/gethost.c + ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} $(srcdir)/gethost.c tc.defs.c: gethost host.defs @rm -f $@.tmp Modified: head/contrib/tcsh/Makefile.std ============================================================================== --- head/contrib/tcsh/Makefile.std Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Makefile.std Tue Oct 8 20:59:31 2019 (r353325) @@ -1,5 +1,3 @@ -# $tcsh: Makefile.std,v 1.100 2015/08/24 20:09:04 kim Exp $ -# Makefile.std 4.3 6/11/83 # # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria @@ -317,11 +315,11 @@ TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.vers.${SUF} tc.who.${SUF} PVSRCS= Makefile.std Makefile.vms Makefile.in Makefile.win32 -AVSRCS= Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ +AVSRCS= BUILDING Fixes MAKEDIFFS MAKESHAR NewThings README.md FAQ \ WishList config_f.h eight-bit.me glob.3 patchlevel.h \ pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ - README.imake complete.tcsh vmsreadme.txt termcap.vms snames.h \ - host.defs gethost.c tcsh.man2html configure.ac configure config.h.in \ + complete.tcsh vmsreadme.txt termcap.vms snames.h host.defs \ + gethost.c tcsh.man2html configure.ac configure config.h.in \ aclocal.m4 VHSRCS=${PVSRCS} ${AVSRCS} Modified: head/contrib/tcsh/Makefile.vms ============================================================================== --- head/contrib/tcsh/Makefile.vms Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Makefile.vms Tue Oct 8 20:59:31 2019 (r353325) @@ -1,5 +1,3 @@ -# $tcsh: Makefile.vms,v 1.40 2014/07/07 20:34:58 christos Exp $ -# Makefile.vms 4.3 6/11/83 # # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria @@ -295,11 +293,11 @@ TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.vers.${SUF} tc.who.${SUF} PVSRCS= Makefile.std Makefile.vms Makefile.in Makefile.win32 -AVSRCS= Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ +AVSRCS= BUILDING Fixes MAKEDIFFS MAKESHAR NewThings README.md FAQ \ WishList config_f.h eight-bit.me glob.3 patchlevel.h \ pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ - README.imake complete.tcsh vmsreadme.txt termcap.vms snames.h \ - host.defs gethost.c tcsh.man2html configure.ac aclocal.m4 + complete.tcsh vmsreadme.txt termcap.vms snames.h host.defs \ + gethost.c tcsh.man2html configure.ac aclocal.m4 VHSRCS=${PVSRCS} ${AVSRCS} Modified: head/contrib/tcsh/Ported ============================================================================== --- head/contrib/tcsh/Ported Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/Ported Tue Oct 8 20:59:31 2019 (r353325) @@ -338,7 +338,7 @@ CFLAGS : normal LIBES : -ltermcap OS : bsd 4.3reno CONFIG : bsdreno -NOTES : ttyname() is buggy. calls closedir() twice. See README +NOTES : ttyname() is buggy. calls closedir() twice. See BUILDING ENVIRON : n/a VERSION : 6.00.04 Copied: head/contrib/tcsh/README.md (from r353317, vendor/tcsh/dist/README.md) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/tcsh/README.md Tue Oct 8 20:59:31 2019 (r353325, copy of r353317, vendor/tcsh/dist/README.md) @@ -0,0 +1,26 @@ +# Tcsh + +*C shell with file name completion and command line editing* + +The Tcsh source code is available on GitHub as a read-only repo +mirror at: + +> http://github.com/tcsh-org/tcsh + +Instructions for compiling Tcsh can be found in [BUILDING]. + +PLEASE file any bug reports, fixes, and code for new features at: + +> https://bugs.astron.com/ + +Comments, questions, etc. (even flames) are welcome via email to +the Tcsh Bugs mailing list: + +> tcsh-bugs@astron.com +> https://mailman.astron.com/ + +[![Build Status][status]][travis] + +[BUILDING]: BUILDING +[status]: https://travis-ci.org/tcsh-org/tcsh.svg?branch=master +[travis]: https://travis-ci.org/tcsh-org/tcsh Modified: head/contrib/tcsh/complete.tcsh ============================================================================== --- head/contrib/tcsh/complete.tcsh Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/complete.tcsh Tue Oct 8 20:59:31 2019 (r353325) @@ -1,5 +1,4 @@ # -# $tcsh: complete.tcsh,v 1.56 2015/07/03 16:52:47 christos Exp $ # example file using the new completion code # # Debian GNU/Linux Modified: head/contrib/tcsh/config_f.h ============================================================================== --- head/contrib/tcsh/config_f.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/config_f.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/config_f.h,v 3.52 2016/04/16 15:44:18 christos Exp $ */ /* * config_f.h -- configure various defines for tcsh * @@ -176,20 +175,6 @@ * FILEC support for old style file completion */ #define FILEC - -/* - * RCSID This defines if we want rcs strings in the binary or not - * - */ -#if !defined(lint) && !defined(SABER) && !defined(__CLCC__) -# ifndef __GNUC__ -# define RCSID(id) static char *rcsid = (id); -# else -# define RCSID(id) static const char rcsid[] __attribute__((__used__)) = (id); -# endif /* !__GNUC__ */ -#else -# define RCSID(id) /* Nothing */ -#endif /* !lint && !SABER */ /* Consistency checks */ #ifdef WIDE_STRINGS Modified: head/contrib/tcsh/configure ============================================================================== --- head/contrib/tcsh/configure Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/configure Tue Oct 8 20:59:31 2019 (r353325) @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for tcsh 6.20.00. +# Generated by GNU Autoconf 2.69 for tcsh 6.21.00. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -267,10 +267,10 @@ fi $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://bugs.gw.com/ about your system, including any -$0: error possibly output before this message. Then install -$0: a modern shell, or manually run the script under such a -$0: shell if you do have one." +$0: https://bugs.astron.com/ about your system, including +$0: any error possibly output before this message. Then +$0: install a modern shell, or manually run the script +$0: under such a shell if you do have one." fi exit 1 fi @@ -580,9 +580,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tcsh' PACKAGE_TARNAME='tcsh' -PACKAGE_VERSION='6.20.00' -PACKAGE_STRING='tcsh 6.20.00' -PACKAGE_BUGREPORT='http://bugs.gw.com/' +PACKAGE_VERSION='6.21.00' +PACKAGE_STRING='tcsh 6.21.00' +PACKAGE_BUGREPORT='https://bugs.astron.com/' PACKAGE_URL='' ac_unique_file="tc.vers.c" @@ -1250,7 +1250,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures tcsh 6.20.00 to adapt to many kinds of systems. +\`configure' configures tcsh 6.21.00 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1315,7 +1315,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of tcsh 6.20.00:";; + short | recursive ) echo "Configuration of tcsh 6.21.00:";; esac cat <<\_ACEOF @@ -1348,7 +1348,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1411,7 +1411,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -tcsh configure 6.20.00 +tcsh configure 6.21.00 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1658,9 +1658,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf docume $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ---------------------------------- ## -## Report this to http://bugs.gw.com/ ## -## ---------------------------------- ##" +( $as_echo "## --------------------------------------- ## +## Report this to https://bugs.astron.com/ ## +## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -2174,7 +2174,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by tcsh $as_me 6.20.00, which was +It was created by tcsh $as_me 6.21.00, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4284,7 +4284,7 @@ return tgetent (); return 0; } _ACEOF -for ac_lib in '' termlib termcap curses ncurses; do +for ac_lib in '' termlib tinfo termcap curses ncurses; do if test -z "$ac_lib"; then ac_res="none required" else @@ -7350,7 +7350,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by tcsh $as_me 6.20.00, which was +This file was extended by tcsh $as_me 6.21.00, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7410,13 +7410,13 @@ $config_headers Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -tcsh config.status 6.20.00 +tcsh config.status 6.21.00 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/tcsh/dotlock.c ============================================================================== --- head/contrib/tcsh/dotlock.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/dotlock.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,4 @@ -/* $NetBSD: dotlock.c,v 1.11 2009/10/21 01:07:46 snj Exp $ */ +/* NetBSD: dotlock.c,v 1.11 2009/10/21 01:07:46 snj Exp */ /* * Copyright (c) 1996 Christos Zoulas. All rights reserved. @@ -24,7 +24,6 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "sh.h" -RCSID("$tcsh: dotlock.c,v 3.4 2015/11/03 21:04:13 christos Exp $") #include #ifndef O_SYNC Modified: head/contrib/tcsh/ed.chared.c ============================================================================== --- head/contrib/tcsh/ed.chared.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.chared.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.chared.c,v 3.103 2015/08/19 14:29:55 christos Exp $ */ /* * ed.chared.c: Character editing functions. */ @@ -71,9 +70,6 @@ */ #include "sh.h" - -RCSID("$tcsh: ed.chared.c,v 3.103 2015/08/19 14:29:55 christos Exp $") - #include "ed.h" #include "tw.h" #include "ed.defns.h" @@ -1105,8 +1101,7 @@ e_inc_search(int dir) if (GetNextChar(&ch) != 1) return(e_send_eof(0)); - switch (ch > NT_NUM_KEYS - ? F_INSERT : CurrentKeyMap[(unsigned char) ch]) { + switch (GetCmdChar(ch)) { case F_INSERT: case F_DIGIT: case F_MAGIC_SPACE: Modified: head/contrib/tcsh/ed.decls.h ============================================================================== --- head/contrib/tcsh/ed.decls.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.decls.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.decls.h,v 3.46 2015/08/19 14:29:55 christos Exp $ */ /* * ed.decls.h: Editor external definitions */ @@ -250,6 +249,7 @@ extern CCRETVAL e_newline_down_hist (Char); * ed.inputl.c */ extern int Inputl (void); +extern int GetCmdChar (Char); extern int GetNextChar (Char *); extern void UngetNextChar (Char); extern void PushMacro (Char *); Modified: head/contrib/tcsh/ed.defns.c ============================================================================== --- head/contrib/tcsh/ed.defns.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.defns.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.defns.c,v 3.51 2016/02/14 15:44:18 christos Exp $ */ /* * ed.defns.c: Editor function definitions and initialization */ @@ -31,9 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.defns.c,v 3.51 2016/02/14 15:44:18 christos Exp $") - #include "ed.h" static void ed_InitMetaBindings (void); @@ -265,26 +261,22 @@ PFCmd CcFuncTbl[] = { /* table of available command #define F_COMMAND_NORM 111 e_dabbrev_expand, #define F_DABBREV_EXPAND 112 - e_copy_to_clipboard, -#define F_COPY_CLIP 113 - e_paste_from_clipboard, -#define F_PASTE_CLIP 114 e_dosify_next, -#define F_DOSIFY_NEXT 115 +#define F_DOSIFY_NEXT 113 e_dosify_prev, -#define F_DOSIFY_PREV 116 +#define F_DOSIFY_PREV 114 e_page_up, -#define F_PAGE_UP 117 +#define F_PAGE_UP 115 e_page_down, -#define F_PAGE_DOWN 118 +#define F_PAGE_DOWN 116 e_yank_pop, -#define F_YANK_POP 119 +#define F_YANK_POP 117 e_newline_hold, -#define F_NEWLINE_HOLD 120 +#define F_NEWLINE_HOLD 118 e_newline_down_hist, -#define F_NEWLINE_DOWN_HIST 121 +#define F_NEWLINE_DOWN_HIST 119 0 /* DUMMY VALUE */ -#define F_NUM_FNS 122 +#define F_NUM_FNS 120 }; @@ -1752,18 +1744,6 @@ editinit(void) f->func = F_YANK_POP; f->desc = CSAVS(3, 115, "Replace just-yanked text with yank from earlier kill"); - - f++; - f->name = "e_copy_to_clipboard"; - f->func = F_COPY_CLIP; - f->desc = CSAVS(3, 116, - "(WIN32 only) Copy cut buffer to system clipboard"); - - f++; - f->name = "e_paste_from_clipboard"; - f->func = F_PASTE_CLIP; - f->desc = CSAVS(3, 117, - "(WIN32 only) Paste clipboard buffer at cursor position"); f++; f->name = "e_dosify_next"; Modified: head/contrib/tcsh/ed.h ============================================================================== --- head/contrib/tcsh/ed.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.h,v 3.50 2007/07/05 14:13:06 christos Exp $ */ /* * ed.h: Editor declarations and globals */ Modified: head/contrib/tcsh/ed.init.c ============================================================================== --- head/contrib/tcsh/ed.init.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.init.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.init.c,v 3.60 2006/08/24 20:56:31 christos Exp $ */ /* * ed.init.c: Editor initializations */ @@ -31,9 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.init.c,v 3.60 2006/08/24 20:56:31 christos Exp $") - #include "ed.h" #include "tc.h" #include "ed.defns.h" Modified: head/contrib/tcsh/ed.inputl.c ============================================================================== --- head/contrib/tcsh/ed.inputl.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.inputl.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.inputl.c,v 3.73 2012/10/19 15:23:32 christos Exp $ */ /* * ed.inputl.c: Input line handling. */ @@ -31,9 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.inputl.c,v 3.73 2012/10/19 15:23:32 christos Exp $") - #include "ed.h" #include "ed.defns.h" /* for the function names */ #include "tw.h" /* for twenex stuff */ @@ -668,6 +664,17 @@ RunCommand(Char *str) Refresh(); } +int +GetCmdChar(Char ch) +{ +#ifndef WINNT_NATIVE // We use more than 256 for various extended keys + wint_t c = ch & CHAR; +#else + wint_t c = ch; +#endif + return c < NT_NUM_KEYS ? CurrentKeyMap[c] : F_INSERT; +} + static int GetNextCommand(KEYCMD *cmdnum, Char *ch) { @@ -696,17 +703,8 @@ GetNextCommand(KEYCMD *cmdnum, Char *ch) MetaNext = 0; *ch |= META; } - /* XXX: This needs to be fixed so that we don't just truncate - * the character, we unquote it. - */ - if (*ch < NT_NUM_KEYS) - cmd = CurrentKeyMap[*ch]; - else -#ifdef WINNT_NATIVE - cmd = CurrentKeyMap[(unsigned char) *ch]; -#else - cmd = F_INSERT; -#endif + + cmd = GetCmdChar(*ch); if (cmd == F_XKEY) { XmapVal val; CStr cstr; @@ -800,13 +798,18 @@ GetNextChar(Char *cp) return -1; } } - cbp++; - if (normal_mbtowc(cp, cbuf, cbp) == -1) { - reset_mbtowc(); - if (cbp < MB_CUR_MAX) - continue; /* Maybe a partial character */ - /* And drop the following bytes, if any */ - *cp = (unsigned char)*cbuf | INVALID_BYTE; + if (cbp == 0 /* && *cbuf < NT_NUM_KEYS */ + && CurrentKeyMap[(unsigned char)*cbuf] == F_XKEY) { + *cp = (unsigned char)*cbuf; + } else { + cbp++; + if (normal_mbtowc(cp, cbuf, cbp) == -1) { + reset_mbtowc(); + if (cbp < MB_CUR_MAX) + continue; /* Maybe a partial character */ + /* And drop the following bytes, if any */ + *cp = (unsigned char)*cbuf | INVALID_BYTE; + } } break; } Modified: head/contrib/tcsh/ed.refresh.c ============================================================================== --- head/contrib/tcsh/ed.refresh.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.refresh.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.refresh.c,v 3.51 2015/06/06 21:19:07 christos Exp $ */ /* * ed.refresh.c: Lower level screen refreshing functions */ @@ -31,9 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.refresh.c,v 3.51 2015/06/06 21:19:07 christos Exp $") - #include "ed.h" /* #define DEBUG_UPDATE */ /* #define DEBUG_REFRESH */ Modified: head/contrib/tcsh/ed.screen.c ============================================================================== --- head/contrib/tcsh/ed.screen.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.screen.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.screen.c,v 3.82 2016/11/24 15:04:14 christos Exp $ */ /* * ed.screen.c: Editor/termcap-curses interface */ @@ -31,9 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.screen.c,v 3.82 2016/11/24 15:04:14 christos Exp $") - #include "ed.h" #include "tc.h" #include "ed.defns.h" Modified: head/contrib/tcsh/ed.term.c ============================================================================== --- head/contrib/tcsh/ed.term.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.term.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.term.c,v 1.38 2011/02/25 23:58:34 christos Exp $ */ /* * ed.term.c: Low level terminal interface */ @@ -32,8 +31,6 @@ */ #include "sh.h" #ifndef WINNT_NATIVE - -RCSID("$tcsh: ed.term.c,v 1.38 2011/02/25 23:58:34 christos Exp $") #include #include "ed.h" Modified: head/contrib/tcsh/ed.term.h ============================================================================== --- head/contrib/tcsh/ed.term.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.term.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.term.h,v 1.19 2015/03/25 19:53:16 christos Exp $ */ /* * ed.term.h: Local terminal header */ Modified: head/contrib/tcsh/ed.xmap.c ============================================================================== --- head/contrib/tcsh/ed.xmap.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ed.xmap.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/ed.xmap.c,v 3.38 2015/06/06 21:19:07 christos Exp $ */ /* * ed.xmap.c: This module contains the procedures for maintaining * the extended-key map. @@ -87,9 +86,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: ed.xmap.c,v 3.38 2015/06/06 21:19:07 christos Exp $") - #include "ed.h" #include "ed.defns.h" Modified: head/contrib/tcsh/eight-bit.me ============================================================================== --- head/contrib/tcsh/eight-bit.me Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/eight-bit.me Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -.\" $tcsh: eight-bit.me,v 3.2 2006/03/02 18:46:44 christos Exp $ How to use 8 bit characters by Johan Widen Modified: head/contrib/tcsh/gethost.c ============================================================================== --- head/contrib/tcsh/gethost.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/gethost.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/gethost.c,v 1.19 2014/03/09 00:11:54 christos Exp $ */ /* * gethost.c: Create version file from prototype */ @@ -31,8 +30,6 @@ * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: gethost.c,v 1.19 2014/03/09 00:11:54 christos Exp $") #ifdef SCO # define perror __perror Modified: head/contrib/tcsh/glob.3 ============================================================================== --- head/contrib/tcsh/glob.3 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/glob.3 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,4 @@ -.\" $NetBSD: glob.3,v 1.17 2001/03/16 21:09:05 christos Exp $ +.\" NetBSD: glob.3,v 1.17 2001/03/16 21:09:05 christos Exp .\" .\" Copyright (c) 1989, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. Modified: head/contrib/tcsh/glob.c ============================================================================== --- head/contrib/tcsh/glob.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/glob.c Tue Oct 8 20:59:31 2019 (r353325) @@ -693,72 +693,92 @@ globextend(const char *path, glob_t *pglob) } /* - * pattern matching function for filenames. Each occurrence of the * - * pattern causes a recursion level. + * pattern matching function for filenames. */ static int match(const char *name, const Char *pat, const Char *patend, int m_not) { int ok, negate_range; + const Char *patNext; + const char *nameNext, *nameStart, *nameEnd; Char c; - while (pat < patend) { - size_t lwk; + patNext = pat; + nameStart = nameNext = name; + nameEnd = NULL; + + while (pat < patend || *name) { + size_t lwk, pwk; __Char wc, wk; c = *pat; /* Only for M_MASK bits */ - pat += One_Char_mbtowc(&wc, pat, MB_LEN_MAX); + if (*name == EOS) + nameEnd = name; + + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); lwk = one_mbtowc(&wk, name, MB_LEN_MAX); switch (c & M_MASK) { case M_ALL: - while (pat < patend && (*pat & M_MASK) == M_ALL) /* eat consecutive '*' */ - pat += One_Char_mbtowc(&wc, pat, MB_LEN_MAX); - if (pat == patend) - return (1); - while (!match(name, pat, patend, m_not)) { - if (*name == EOS) - return (0); - name += lwk; - lwk = one_mbtowc(&wk, name, MB_LEN_MAX); + while ((*(pat + pwk) & M_MASK) == M_ALL) { + pat += pwk; + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); } - return (1); + patNext = pat; + nameNext = name + lwk; + pat += pwk; + continue; case M_ONE: if (*name == EOS) - return (0); + break; name += lwk; - break; + pat += pwk; + continue; case M_SET: ok = 0; if (*name == EOS) - return (0); + break; + pat += pwk; + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); name += lwk; - if ((negate_range = ((*pat & M_MASK) == m_not)) != 0) - ++pat; + if ((negate_range = ((*pat & M_MASK) == m_not)) != 0) { + pat += pwk; + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); + } while ((*pat & M_MASK) != M_END) { - pat += One_Char_mbtowc(&wc, pat, MB_LEN_MAX); if ((*pat & M_MASK) == M_RNG) { __Char wc2; - pat++; - pat += One_Char_mbtowc(&wc2, pat, MB_LEN_MAX); + pat += pwk; + pwk = One_Char_mbtowc(&wc2, pat, MB_LEN_MAX); if (globcharcoll(wc, wk, 0) <= 0 && globcharcoll(wk, wc2, 0) <= 0) ok = 1; } else if (wc == wk) ok = 1; + pat += pwk; + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); } - pat += One_Char_mbtowc(&wc, pat, MB_LEN_MAX); + pat += pwk; + pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX); if (ok == negate_range) - return (0); - break; + break; + continue; default: if (*name == EOS || samecase(wk) != samecase(wc)) - return (0); + break; name += lwk; - break; + pat += pwk; + continue; } + if (nameNext != nameStart + && (nameEnd == NULL || nameNext <= nameEnd)) { + pat = patNext; + name = nameNext; + continue; + } + return 0; } - return (*name == EOS); + return 1; } /* free allocated data belonging to a glob_t structure */ Modified: head/contrib/tcsh/glob.h ============================================================================== --- head/contrib/tcsh/glob.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/glob.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,4 @@ -/* $NetBSD: glob.h,v 1.13 2001/03/16 21:02:42 christos Exp $ */ +/* NetBSD: glob.h,v 1.13 2001/03/16 21:02:42 christos Exp */ /* * Copyright (c) 1989, 1993 Modified: head/contrib/tcsh/host.defs ============================================================================== --- head/contrib/tcsh/host.defs Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/host.defs Tue Oct 8 20:59:31 2019 (r353325) @@ -1,5 +1,4 @@ newcode : -/* $Header: /p/tcsh/cvsroot/tcsh/host.defs,v 1.61 2015/05/26 18:56:19 christos Exp $ */ /* * host.defs: Hosttype/Machtype etc. */ @@ -32,8 +31,6 @@ newcode : * SUCH DAMAGE. */ #include "sh.h" - -RCSID("$tcsh: host.defs,v 1.61 2015/05/26 18:56:19 christos Exp $") endcode : Modified: head/contrib/tcsh/imake.config ============================================================================== --- head/contrib/tcsh/imake.config Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/imake.config Tue Oct 8 20:59:31 2019 (r353325) @@ -1,6 +1,4 @@ /* - * $tcsh: imake.config,v 1.5 2006/03/02 18:46:44 christos Exp $ - * * config.Imakefile for for tcsh 6.00 * Marc Horowitz, MIT SIPB */ Modified: head/contrib/tcsh/ma.setp.c ============================================================================== --- head/contrib/tcsh/ma.setp.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/ma.setp.c Tue Oct 8 20:59:31 2019 (r353325) @@ -82,7 +82,6 @@ ********************************************************************** */ #include "sh.h" -RCSID("$tcsh: ma.setp.c,v 1.19 2007/11/20 20:03:51 christos Exp $") #ifdef MACH Modified: head/contrib/tcsh/mi.termios.c ============================================================================== --- head/contrib/tcsh/mi.termios.c Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/mi.termios.c Tue Oct 8 20:59:31 2019 (r353325) @@ -1,10 +1,8 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/mi.termios.c,v 1.5 2006/03/02 18:46:44 christos Exp $ */ /* termios.c - fake termios interface using sgtty interface * by Magnus Doell and Bruce Evans. * */ #include "sh.h" -RCSID("$tcsh: mi.termios.c,v 1.5 2006/03/02 18:46:44 christos Exp $") #if defined(_MINIX) && !defined(_MINIX_VMD) Modified: head/contrib/tcsh/mi.varargs.h ============================================================================== --- head/contrib/tcsh/mi.varargs.h Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/mi.varargs.h Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -/* $Header: /p/tcsh/cvsroot/tcsh/mi.varargs.h,v 1.2 1996/04/26 19:18:39 christos Exp $ */ /* * mi.varargs.h: Correct varargs for minix */ Modified: head/contrib/tcsh/nls/C/set1 ============================================================================== --- head/contrib/tcsh/nls/C/set1 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set1 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set1,v 1.7 2015/05/26 17:38:25 christos Exp $ $ Error messages $set 1 1 Syntax Error Modified: head/contrib/tcsh/nls/C/set10 ============================================================================== --- head/contrib/tcsh/nls/C/set10 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set10 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set10,v 1.3 2006/03/02 18:46:45 christos Exp $ $ ma.setp.c $set 10 1 setpath: invalid command '%s'.\n Modified: head/contrib/tcsh/nls/C/set11 ============================================================================== --- head/contrib/tcsh/nls/C/set11 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set11 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set11,v 1.4 2006/03/02 18:46:45 christos Exp $ $ sh.c $set 11 1 Warning: no access to tty (%s).\n Modified: head/contrib/tcsh/nls/C/set12 ============================================================================== --- head/contrib/tcsh/nls/C/set12 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set12 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set12,v 1.4 2006/03/02 18:46:45 christos Exp $ $ sh.dir.c $set 12 1 %s: Trying to start from "%s"\n Modified: head/contrib/tcsh/nls/C/set13 ============================================================================== --- head/contrib/tcsh/nls/C/set13 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set13 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set13,v 1.3 2006/03/02 18:46:45 christos Exp $ $ sh.exec.c $set 13 1 hash=%-4d dir=%-2d prog=%s\n Modified: head/contrib/tcsh/nls/C/set14 ============================================================================== --- head/contrib/tcsh/nls/C/set14 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set14 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set14,v 1.4 2006/03/02 18:46:45 christos Exp $ $ sh.file.c $set 14 1 \nYikes!! Too many %s!!\n Modified: head/contrib/tcsh/nls/C/set15 ============================================================================== --- head/contrib/tcsh/nls/C/set15 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set15 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set15,v 1.4 2006/03/02 18:46:45 christos Exp $ $ sh.func.c $set 15 1 %s: %s: Can't %s%s limit\n Modified: head/contrib/tcsh/nls/C/set16 ============================================================================== --- head/contrib/tcsh/nls/C/set16 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set16 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set16,v 1.4 2006/03/02 18:46:45 christos Exp $ $ sh.lex.c $set 16 1 Reset tty pgrp from %d to %d\n Modified: head/contrib/tcsh/nls/C/set17 ============================================================================== --- head/contrib/tcsh/nls/C/set17 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set17 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set17,v 1.6 2006/03/02 18:46:45 christos Exp $ $ sh.proc.c $set 17 1 BUG: waiting for background job!\n Modified: head/contrib/tcsh/nls/C/set18 ============================================================================== --- head/contrib/tcsh/nls/C/set18 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set18 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set18,v 1.3 2006/03/02 18:46:45 christos Exp $ $ sh.set.c $set 18 1 Warning: ridiculously long PATH truncated\n Modified: head/contrib/tcsh/nls/C/set19 ============================================================================== --- head/contrib/tcsh/nls/C/set19 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set19 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set19,v 1.6 2011/02/25 23:58:07 christos Exp $ $ tc.alloc.c $set 19 1 nbytes=%d: Out of memory\n Modified: head/contrib/tcsh/nls/C/set2 ============================================================================== --- head/contrib/tcsh/nls/C/set2 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set2 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set2,v 1.5 2006/03/02 18:46:45 christos Exp $ $ Signal names $set 2 1 Null signal Modified: head/contrib/tcsh/nls/C/set20 ============================================================================== --- head/contrib/tcsh/nls/C/set20 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set20 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set20,v 1.4 2015/08/13 08:54:04 christos Exp $ $ tc.bind.c $set 20 1 Invalid key name `%S'\n Modified: head/contrib/tcsh/nls/C/set21 ============================================================================== --- head/contrib/tcsh/nls/C/set21 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set21 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set21,v 1.3 2006/03/02 18:46:45 christos Exp $ $ tc.disc.c $set 21 1 Couldn't get local chars.\n Modified: head/contrib/tcsh/nls/C/set22 ============================================================================== --- head/contrib/tcsh/nls/C/set22 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set22 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set22,v 1.3 2006/03/02 18:46:45 christos Exp $ $ tc.func.c $set 22 1 %S: \t aliased to Modified: head/contrib/tcsh/nls/C/set23 ============================================================================== --- head/contrib/tcsh/nls/C/set23 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set23 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set23,v 1.4 2006/03/02 18:46:45 christos Exp $ $ tc.os.c $set 23 1 Bad cpu/site name Modified: head/contrib/tcsh/nls/C/set24 ============================================================================== --- head/contrib/tcsh/nls/C/set24 Tue Oct 8 20:26:51 2019 (r353324) +++ head/contrib/tcsh/nls/C/set24 Tue Oct 8 20:59:31 2019 (r353325) @@ -1,4 +1,3 @@ -$ $tcsh: set24,v 1.3 2006/03/02 18:46:45 christos Exp $ $ tc.sched.c *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Oct 8 21:14:11 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB3D0137242; Tue, 8 Oct 2019 21:14:11 +0000 (UTC) (envelope-from brooks@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 46nqpq5TGpz4Wdk; Tue, 8 Oct 2019 21:14:11 +0000 (UTC) (envelope-from brooks@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 9F1526333; Tue, 8 Oct 2019 21:14:11 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98LEBer077228; Tue, 8 Oct 2019 21:14:11 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98LEAuU077185; Tue, 8 Oct 2019 21:14:10 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910082114.x98LEAuU077185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 8 Oct 2019 21:14:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353326 - in head: contrib/sendmail/mail.local lib/libc/tests/nss usr.bin/tip/tip usr.sbin/fwcontrol X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in head: contrib/sendmail/mail.local lib/libc/tests/nss usr.bin/tip/tip usr.sbin/fwcontrol X-SVN-Commit-Revision: 353326 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 21:14:11 -0000 Author: brooks Date: Tue Oct 8 21:14:09 2019 New Revision: 353326 URL: https://svnweb.freebsd.org/changeset/base/353326 Log: Fix various -Wpointer-compare warnings This warning (comparing a pointer against a zero character literal rather than NULL) has existed since GCC 7.1.0, and was recently added to Clang trunk. Almost all of these are harmless, except for fwcontrol's str2node, which needs to both guard against dereferencing a NULL pointer (though in practice it appears none of the callers will ever pass one in), as well as ensure it doesn't parse the empty string as node 0 due to strtol's awkward interface. Submitted by: James Clarke Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21914 Modified: head/contrib/sendmail/mail.local/mail.local.c head/lib/libc/tests/nss/getgr_test.c head/lib/libc/tests/nss/getproto_test.c head/lib/libc/tests/nss/getrpc_test.c head/lib/libc/tests/nss/getserv_test.c head/usr.bin/tip/tip/acu.c head/usr.sbin/fwcontrol/fwcontrol.c Modified: head/contrib/sendmail/mail.local/mail.local.c ============================================================================== --- head/contrib/sendmail/mail.local/mail.local.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/contrib/sendmail/mail.local/mail.local.c Tue Oct 8 21:14:09 2019 (r353326) @@ -393,7 +393,7 @@ main(argc, argv) } /* Non-LMTP from here on out */ - if (*argv == '\0') + if (*argv == NULL) usage(); /* Modified: head/lib/libc/tests/nss/getgr_test.c ============================================================================== --- head/lib/libc/tests/nss/getgr_test.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/lib/libc/tests/nss/getgr_test.c Tue Oct 8 21:14:09 2019 (r353326) @@ -153,7 +153,7 @@ compare_group(struct group *grp1, struct group *grp2, if (strcmp(*c1, *c2) != 0) goto errfin; - if (*c1 != '\0' || *c2 != '\0') + if (*c1 != NULL || *c2 != NULL) goto errfin; return 0; @@ -182,7 +182,7 @@ sdump_group(struct group *grp, char *buffer, size_t bu buflen -= written; if (grp->gr_mem != NULL) { - if (*(grp->gr_mem) != '\0') { + if (*(grp->gr_mem) != NULL) { for (cp = grp->gr_mem; *cp; ++cp) { written = snprintf(buffer, buflen, "%s%s", cp == grp->gr_mem ? "" : ",", *cp); Modified: head/lib/libc/tests/nss/getproto_test.c ============================================================================== --- head/lib/libc/tests/nss/getproto_test.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/lib/libc/tests/nss/getproto_test.c Tue Oct 8 21:14:09 2019 (r353326) @@ -148,7 +148,7 @@ compare_protoent(struct protoent *pe1, struct protoent if (strcmp(*c1, *c2) != 0) goto errfin; - if ((*c1 != '\0') || (*c2 != '\0')) + if ((*c1 != NULL) || (*c2 != NULL)) goto errfin; return 0; @@ -177,7 +177,7 @@ sdump_protoent(struct protoent *pe, char *buffer, size buflen -= written; if (pe->p_aliases != NULL) { - if (*(pe->p_aliases) != '\0') { + if (*(pe->p_aliases) != NULL) { for (cp = pe->p_aliases; *cp; ++cp) { written = snprintf(buffer, buflen, " %s", *cp); buffer += written; Modified: head/lib/libc/tests/nss/getrpc_test.c ============================================================================== --- head/lib/libc/tests/nss/getrpc_test.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/lib/libc/tests/nss/getrpc_test.c Tue Oct 8 21:14:09 2019 (r353326) @@ -147,7 +147,7 @@ compare_rpcent(struct rpcent *rpc1, struct rpcent *rpc if (strcmp(*c1, *c2) != 0) goto errfin; - if ((*c1 != '\0') || (*c2 != '\0')) + if ((*c1 != NULL) || (*c2 != NULL)) goto errfin; return 0; @@ -176,7 +176,7 @@ sdump_rpcent(struct rpcent *rpc, char *buffer, size_t buflen -= written; if (rpc->r_aliases != NULL) { - if (*(rpc->r_aliases) != '\0') { + if (*(rpc->r_aliases) != NULL) { for (cp = rpc->r_aliases; *cp; ++cp) { written = snprintf(buffer, buflen, " %s", *cp); buffer += written; Modified: head/lib/libc/tests/nss/getserv_test.c ============================================================================== --- head/lib/libc/tests/nss/getserv_test.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/lib/libc/tests/nss/getserv_test.c Tue Oct 8 21:14:09 2019 (r353326) @@ -153,7 +153,7 @@ compare_servent(struct servent *serv1, struct servent if (strcmp(*c1, *c2) != 0) goto errfin; - if ((*c1 != '\0') || (*c2 != '\0')) + if ((*c1 != NULL) || (*c2 != NULL)) goto errfin; return 0; @@ -182,7 +182,7 @@ sdump_servent(struct servent *serv, char *buffer, size buflen -= written; if (serv->s_aliases != NULL) { - if (*(serv->s_aliases) != '\0') { + if (*(serv->s_aliases) != NULL) { for (cp = serv->s_aliases; *cp; ++cp) { written = snprintf(buffer, buflen, " %s", *cp); buffer += written; Modified: head/usr.bin/tip/tip/acu.c ============================================================================== --- head/usr.bin/tip/tip/acu.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/usr.bin/tip/tip/acu.c Tue Oct 8 21:14:09 2019 (r353326) @@ -190,7 +190,7 @@ acutype(char *s) acu_t *p; extern acu_t acutable[]; - for (p = acutable; p->acu_name != '\0'; p++) + for (p = acutable; p->acu_name != NULL; p++) if (!strcmp(s, p->acu_name)) return (p); return (NOACU); Modified: head/usr.sbin/fwcontrol/fwcontrol.c ============================================================================== --- head/usr.sbin/fwcontrol/fwcontrol.c Tue Oct 8 20:59:31 2019 (r353325) +++ head/usr.sbin/fwcontrol/fwcontrol.c Tue Oct 8 21:14:09 2019 (r353326) @@ -129,7 +129,7 @@ str2node(int fd, const char *nodestr) char *endptr; int i, node; - if (nodestr == '\0') + if (nodestr == NULL || *nodestr == '\0') return (-1); /* From owner-svn-src-head@freebsd.org Tue Oct 8 21:14:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1EE84137245; Tue, 8 Oct 2019 21:14: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 46nqpr03trz4Wdl; Tue, 8 Oct 2019 21:14:12 +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 D960D6334; Tue, 8 Oct 2019 21:14: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 x98LEBFB077239; Tue, 8 Oct 2019 21:14:11 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98LEB2r077230; Tue, 8 Oct 2019 21:14:11 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910082114.x98LEB2r077230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 8 Oct 2019 21:14:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353327 - in head/sys: amd64/include x86/include X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: amd64/include x86/include X-SVN-Commit-Revision: 353327 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 21:14:12 -0000 Author: mjg Date: Tue Oct 8 21:14:11 2019 New Revision: 353327 URL: https://svnweb.freebsd.org/changeset/base/353327 Log: amd64: plug spurious cld instructions ABI already guarantees the direction is forward. Note this does not take care of i386-specific cld's. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21906 Modified: head/sys/amd64/include/cpufunc.h head/sys/x86/include/bus.h Modified: head/sys/amd64/include/cpufunc.h ============================================================================== --- head/sys/amd64/include/cpufunc.h Tue Oct 8 21:14:09 2019 (r353326) +++ head/sys/amd64/include/cpufunc.h Tue Oct 8 21:14:11 2019 (r353327) @@ -231,7 +231,7 @@ inl(u_int port) static __inline void insb(u_int port, void *addr, size_t count) { - __asm __volatile("cld; rep; insb" + __asm __volatile("rep; insb" : "+D" (addr), "+c" (count) : "d" (port) : "memory"); @@ -240,7 +240,7 @@ insb(u_int port, void *addr, size_t count) static __inline void insw(u_int port, void *addr, size_t count) { - __asm __volatile("cld; rep; insw" + __asm __volatile("rep; insw" : "+D" (addr), "+c" (count) : "d" (port) : "memory"); @@ -249,7 +249,7 @@ insw(u_int port, void *addr, size_t count) static __inline void insl(u_int port, void *addr, size_t count) { - __asm __volatile("cld; rep; insl" + __asm __volatile("rep; insl" : "+D" (addr), "+c" (count) : "d" (port) : "memory"); @@ -285,7 +285,7 @@ outl(u_int port, u_int data) static __inline void outsb(u_int port, const void *addr, size_t count) { - __asm __volatile("cld; rep; outsb" + __asm __volatile("rep; outsb" : "+S" (addr), "+c" (count) : "d" (port)); } @@ -293,7 +293,7 @@ outsb(u_int port, const void *addr, size_t count) static __inline void outsw(u_int port, const void *addr, size_t count) { - __asm __volatile("cld; rep; outsw" + __asm __volatile("rep; outsw" : "+S" (addr), "+c" (count) : "d" (port)); } @@ -301,7 +301,7 @@ outsw(u_int port, const void *addr, size_t count) static __inline void outsl(u_int port, const void *addr, size_t count) { - __asm __volatile("cld; rep; outsl" + __asm __volatile("rep; outsl" : "+S" (addr), "+c" (count) : "d" (port)); } Modified: head/sys/x86/include/bus.h ============================================================================== --- head/sys/x86/include/bus.h Tue Oct 8 21:14:09 2019 (r353326) +++ head/sys/x86/include/bus.h Tue Oct 8 21:14:11 2019 (r353327) @@ -280,7 +280,6 @@ bus_space_read_multi_1(bus_space_tag_t tag, bus_space_ else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: movb (%2),%%al \n\ stosb \n\ loop 1b" : @@ -301,7 +300,6 @@ bus_space_read_multi_2(bus_space_tag_t tag, bus_space_ else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: movw (%2),%%ax \n\ stosw \n\ loop 1b" : @@ -322,7 +320,6 @@ bus_space_read_multi_4(bus_space_tag_t tag, bus_space_ else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: movl (%2),%%eax \n\ stosl \n\ loop 1b" : @@ -367,7 +364,6 @@ bus_space_read_region_1(bus_space_tag_t tag, bus_space int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: inb %w2,%%al \n\ stosb \n\ incl %2 \n\ @@ -380,7 +376,6 @@ bus_space_read_region_1(bus_space_tag_t tag, bus_space bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsb" : "=D" (addr), "=c" (count), "=S" (_port_) : @@ -399,7 +394,6 @@ bus_space_read_region_2(bus_space_tag_t tag, bus_space int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: inw %w2,%%ax \n\ stosw \n\ addl $2,%2 \n\ @@ -412,7 +406,6 @@ bus_space_read_region_2(bus_space_tag_t tag, bus_space bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsw" : "=D" (addr), "=c" (count), "=S" (_port_) : @@ -431,7 +424,6 @@ bus_space_read_region_4(bus_space_tag_t tag, bus_space int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: inl %w2,%%eax \n\ stosl \n\ addl $4,%2 \n\ @@ -444,7 +436,6 @@ bus_space_read_region_4(bus_space_tag_t tag, bus_space bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsl" : "=D" (addr), "=c" (count), "=S" (_port_) : @@ -559,7 +550,6 @@ bus_space_write_multi_1(bus_space_tag_t tag, bus_space else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsb \n\ movb %%al,(%2) \n\ loop 1b" : @@ -580,7 +570,6 @@ bus_space_write_multi_2(bus_space_tag_t tag, bus_space else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsw \n\ movw %%ax,(%2) \n\ loop 1b" : @@ -601,7 +590,6 @@ bus_space_write_multi_4(bus_space_tag_t tag, bus_space else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsl \n\ movl %%eax,(%2) \n\ loop 1b" : @@ -647,7 +635,6 @@ bus_space_write_region_1(bus_space_tag_t tag, bus_spac int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsb \n\ outb %%al,%w0 \n\ incl %0 \n\ @@ -660,7 +647,6 @@ bus_space_write_region_1(bus_space_tag_t tag, bus_spac bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsb" : "=D" (_port_), "=S" (addr), "=c" (count) : @@ -679,7 +665,6 @@ bus_space_write_region_2(bus_space_tag_t tag, bus_spac int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsw \n\ outw %%ax,%w0 \n\ addl $2,%0 \n\ @@ -692,7 +677,6 @@ bus_space_write_region_2(bus_space_tag_t tag, bus_spac bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsw" : "=D" (_port_), "=S" (addr), "=c" (count) : @@ -711,7 +695,6 @@ bus_space_write_region_4(bus_space_tag_t tag, bus_spac int _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ 1: lodsl \n\ outl %%eax,%w0 \n\ addl $4,%0 \n\ @@ -724,7 +707,6 @@ bus_space_write_region_4(bus_space_tag_t tag, bus_spac bus_space_handle_t _port_ = bsh + offset; #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ - cld \n\ repne \n\ movsl" : "=D" (_port_), "=S" (addr), "=c" (count) : From owner-svn-src-head@freebsd.org Tue Oct 8 21:34:09 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E4B6137985; Tue, 8 Oct 2019 21:34:09 +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 46nrFs3WyVz4Xdn; Tue, 8 Oct 2019 21:34:09 +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 434596706; Tue, 8 Oct 2019 21:34:09 +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 x98LY9Qf088504; Tue, 8 Oct 2019 21:34:09 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98LY7YB088492; Tue, 8 Oct 2019 21:34:07 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910082134.x98LY7YB088492@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 8 Oct 2019 21:34:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353328 - in head/sys: kern netinet sys X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: kern netinet sys X-SVN-Commit-Revision: 353328 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 21:34:09 -0000 Author: jhb Date: Tue Oct 8 21:34:06 2019 New Revision: 353328 URL: https://svnweb.freebsd.org/changeset/base/353328 Log: Add a TOE KTLS mode and a TOE hook for allocating TLS sessions. This adds the glue to allocate TLS sessions and invokes it from the TLS enable socket option handler. This also adds some counters for active TOE sessions. The TOE KTLS mode is returned by getsockopt(TLSTX_TLS_MODE) when TOE KTLS is in use on a socket, but cannot be set via setsockopt(). To simplify various checks, a TLS session now includes an explicit 'mode' member set to the value returned by TLSTX_TLS_MODE. Various places that used to check 'sw_encrypt' against NULL to determine software vs ifnet (NIC) TLS now check 'mode' instead. Reviewed by: np, gallatin Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21891 Modified: head/sys/kern/kern_sendfile.c head/sys/kern/uipc_ktls.c head/sys/kern/uipc_socket.c head/sys/netinet/tcp.h head/sys/netinet/tcp_offload.c head/sys/netinet/tcp_offload.h head/sys/netinet/tcp_usrreq.c head/sys/netinet/toecore.c head/sys/netinet/toecore.h head/sys/sys/ktls.h Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/kern/kern_sendfile.c Tue Oct 8 21:34:06 2019 (r353328) @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -295,7 +296,7 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i mb_free_notready(sfio->m, sfio->npages); #ifdef KERN_TLS - } else if (sfio->tls != NULL && sfio->tls->sw_encrypt != NULL) { + } else if (sfio->tls != NULL && sfio->tls->mode == TCP_TLS_MODE_SW) { /* * I/O operation is complete, but we still need to * encrypt. We cannot do this in the interrupt thread @@ -1028,7 +1029,7 @@ prepend_header: */ free(sfio, M_TEMP); #ifdef KERN_TLS - if (tls != NULL && tls->sw_encrypt != NULL) { + if (tls != NULL && tls->mode == TCP_TLS_MODE_SW) { error = (*so->so_proto->pr_usrreqs->pru_send) (so, PRUS_NOTREADY, m, NULL, NULL, td); soref(so); Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/kern/uipc_ktls.c Tue Oct 8 21:34:06 2019 (r353328) @@ -63,6 +63,9 @@ __FBSDID("$FreeBSD$"); #include #endif #include +#ifdef TCP_OFFLOAD +#include +#endif #include #include #include @@ -161,6 +164,10 @@ SYSCTL_NODE(_kern_ipc_tls, OID_AUTO, sw, CTLFLAG_RD, 0 "Software TLS session stats"); SYSCTL_NODE(_kern_ipc_tls, OID_AUTO, ifnet, CTLFLAG_RD, 0, "Hardware (ifnet) TLS session stats"); +#ifdef TCP_OFFLOAD +SYSCTL_NODE(_kern_ipc_tls, OID_AUTO, toe, CTLFLAG_RD, 0, + "TOE TLS session stats"); +#endif static counter_u64_t ktls_sw_cbc; SYSCTL_COUNTER_U64(_kern_ipc_tls_sw, OID_AUTO, cbc, CTLFLAG_RD, &ktls_sw_cbc, @@ -199,6 +206,18 @@ SYSCTL_UINT(_kern_ipc_tls_ifnet, OID_AUTO, permitted, &ktls_ifnet_permitted, 1, "Whether to permit hardware (ifnet) TLS sessions"); +#ifdef TCP_OFFLOAD +static counter_u64_t ktls_toe_cbc; +SYSCTL_COUNTER_U64(_kern_ipc_tls_toe, OID_AUTO, cbc, CTLFLAG_RD, + &ktls_toe_cbc, + "Active number of TOE TLS sessions using AES-CBC"); + +static counter_u64_t ktls_toe_gcm; +SYSCTL_COUNTER_U64(_kern_ipc_tls_toe, OID_AUTO, gcm, CTLFLAG_RD, + &ktls_toe_gcm, + "Active number of TOE TLS sessions using AES-GCM"); +#endif + static MALLOC_DEFINE(M_KTLS, "ktls", "Kernel TLS"); static void ktls_cleanup(struct ktls_session *tls); @@ -325,6 +344,10 @@ ktls_init(void *dummy __unused) ktls_ifnet_reset = counter_u64_alloc(M_WAITOK); ktls_ifnet_reset_dropped = counter_u64_alloc(M_WAITOK); ktls_ifnet_reset_failed = counter_u64_alloc(M_WAITOK); +#ifdef TCP_OFFLOAD + ktls_toe_cbc = counter_u64_alloc(M_WAITOK); + ktls_toe_gcm = counter_u64_alloc(M_WAITOK); +#endif rm_init(&ktls_backends_lock, "ktls backends"); LIST_INIT(&ktls_backends); @@ -607,7 +630,8 @@ ktls_cleanup(struct ktls_session *tls) { counter_u64_add(ktls_offload_active, -1); - if (tls->free != NULL) { + switch (tls->mode) { + case TCP_TLS_MODE_SW: MPASS(tls->be != NULL); switch (tls->params.cipher_algorithm) { case CRYPTO_AES_CBC: @@ -618,7 +642,8 @@ ktls_cleanup(struct ktls_session *tls) break; } tls->free(tls); - } else if (tls->snd_tag != NULL) { + break; + case TCP_TLS_MODE_IFNET: switch (tls->params.cipher_algorithm) { case CRYPTO_AES_CBC: counter_u64_add(ktls_ifnet_cbc, -1); @@ -628,6 +653,19 @@ ktls_cleanup(struct ktls_session *tls) break; } m_snd_tag_rele(tls->snd_tag); + break; +#ifdef TCP_OFFLOAD + case TCP_TLS_MODE_TOE: + switch (tls->params.cipher_algorithm) { + case CRYPTO_AES_CBC: + counter_u64_add(ktls_toe_cbc, -1); + break; + case CRYPTO_AES_NIST_GCM_16: + counter_u64_add(ktls_toe_gcm, -1); + break; + } + break; +#endif } if (tls->params.auth_key != NULL) { explicit_bzero(tls->params.auth_key, tls->params.auth_key_len); @@ -646,6 +684,52 @@ ktls_cleanup(struct ktls_session *tls) } #if defined(INET) || defined(INET6) + +#ifdef TCP_OFFLOAD +static int +ktls_try_toe(struct socket *so, struct ktls_session *tls) +{ + struct inpcb *inp; + struct tcpcb *tp; + int error; + + inp = so->so_pcb; + INP_WLOCK(inp); + if (inp->inp_flags2 & INP_FREED) { + INP_WUNLOCK(inp); + return (ECONNRESET); + } + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { + INP_WUNLOCK(inp); + return (ECONNRESET); + } + if (inp->inp_socket == NULL) { + INP_WUNLOCK(inp); + return (ECONNRESET); + } + tp = intotcpcb(inp); + if (tp->tod == NULL) { + INP_WUNLOCK(inp); + return (EOPNOTSUPP); + } + + error = tcp_offload_alloc_tls_session(tp, tls); + INP_WUNLOCK(inp); + if (error == 0) { + tls->mode = TCP_TLS_MODE_TOE; + switch (tls->params.cipher_algorithm) { + case CRYPTO_AES_CBC: + counter_u64_add(ktls_toe_cbc, 1); + break; + case CRYPTO_AES_NIST_GCM_16: + counter_u64_add(ktls_toe_gcm, 1); + break; + } + } + return (error); +} +#endif + /* * Common code used when first enabling ifnet TLS on a connection or * when allocating a new ifnet TLS session due to a routing change. @@ -744,6 +828,7 @@ ktls_try_ifnet(struct socket *so, struct ktls_session error = ktls_alloc_snd_tag(so->so_pcb, tls, force, &mst); if (error == 0) { + tls->mode = TCP_TLS_MODE_IFNET; tls->snd_tag = mst; switch (tls->params.cipher_algorithm) { case CRYPTO_AES_CBC: @@ -787,6 +872,7 @@ ktls_try_sw(struct socket *so, struct ktls_session *tl rm_runlock(&ktls_backends_lock, &prio); if (be == NULL) return (EOPNOTSUPP); + tls->mode = TCP_TLS_MODE_SW; switch (tls->params.cipher_algorithm) { case CRYPTO_AES_CBC: counter_u64_add(ktls_sw_cbc, 1); @@ -834,9 +920,13 @@ ktls_enable_tx(struct socket *so, struct tls_enable *e if (error) return (error); - /* Prefer ifnet TLS over software TLS. */ - error = ktls_try_ifnet(so, tls, false); + /* Prefer TOE -> ifnet TLS -> software TLS. */ +#ifdef TCP_OFFLOAD + error = ktls_try_toe(so, tls); if (error) +#endif + error = ktls_try_ifnet(so, tls, false); + if (error) error = ktls_try_sw(so, tls); if (error) { @@ -852,7 +942,7 @@ ktls_enable_tx(struct socket *so, struct tls_enable *e SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_tls_info = tls; - if (tls->sw_encrypt == NULL) + if (tls->mode != TCP_TLS_MODE_SW) so->so_snd.sb_flags |= SB_TLS_IFNET; SOCKBUF_UNLOCK(&so->so_snd); sbunlock(&so->so_snd); @@ -875,10 +965,8 @@ ktls_get_tx_mode(struct socket *so) tls = so->so_snd.sb_tls_info; if (tls == NULL) mode = TCP_TLS_MODE_NONE; - else if (tls->sw_encrypt != NULL) - mode = TCP_TLS_MODE_SW; else - mode = TCP_TLS_MODE_IFNET; + mode = tls->mode; SOCKBUF_UNLOCK(&so->so_snd); return (mode); } @@ -893,7 +981,13 @@ ktls_set_tx_mode(struct socket *so, int mode) struct inpcb *inp; int error; - MPASS(mode == TCP_TLS_MODE_SW || mode == TCP_TLS_MODE_IFNET); + switch (mode) { + case TCP_TLS_MODE_SW: + case TCP_TLS_MODE_IFNET: + break; + default: + return (EINVAL); + } inp = so->so_pcb; INP_WLOCK_ASSERT(inp); @@ -904,8 +998,7 @@ ktls_set_tx_mode(struct socket *so, int mode) return (0); } - if ((tls->sw_encrypt != NULL && mode == TCP_TLS_MODE_SW) || - (tls->sw_encrypt == NULL && mode == TCP_TLS_MODE_IFNET)) { + if (tls->mode == mode) { SOCKBUF_UNLOCK(&so->so_snd); return (0); } @@ -952,7 +1045,7 @@ ktls_set_tx_mode(struct socket *so, int mode) SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_tls_info = tls_new; - if (tls_new->sw_encrypt == NULL) + if (tls_new->mode != TCP_TLS_MODE_SW) so->so_snd.sb_flags |= SB_TLS_IFNET; SOCKBUF_UNLOCK(&so->so_snd); sbunlock(&so->so_snd); @@ -1238,7 +1331,7 @@ ktls_frame(struct mbuf *top, struct ktls_session *tls, * When using ifnet TLS, unencrypted TLS records are * sent down the stack to the NIC. */ - if (tls->sw_encrypt != NULL) { + if (tls->mode == TCP_TLS_MODE_SW) { m->m_flags |= M_NOTREADY; pgs->nrdy = pgs->npgs; *enq_cnt += pgs->npgs; @@ -1278,7 +1371,7 @@ ktls_enqueue(struct mbuf *m, struct socket *so, int pa pgs = m->m_ext.ext_pgs; - KASSERT(pgs->tls->sw_encrypt != NULL, ("ifnet TLS mbuf")); + KASSERT(pgs->tls->mode == TCP_TLS_MODE_SW, ("!SW TLS mbuf")); pgs->enc_cnt = page_count; pgs->mbuf = m; Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/kern/uipc_socket.c Tue Oct 8 21:34:06 2019 (r353328) @@ -1491,7 +1491,7 @@ sosend_generic(struct socket *so, struct sockaddr *add tls_pruflag = 0; tls = ktls_hold(so->so_snd.sb_tls_info); if (tls != NULL) { - if (tls->sw_encrypt != NULL) + if (tls->mode == TCP_TLS_MODE_SW) tls_pruflag = PRUS_NOTREADY; if (control != NULL) { @@ -1659,7 +1659,7 @@ restart: } #ifdef KERN_TLS - if (tls != NULL && tls->sw_encrypt != NULL) { + if (tls != NULL && tls->mode == TCP_TLS_MODE_SW) { /* * Note that error is intentionally * ignored. Modified: head/sys/netinet/tcp.h ============================================================================== --- head/sys/netinet/tcp.h Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/tcp.h Tue Oct 8 21:34:06 2019 (r353328) @@ -357,6 +357,7 @@ struct tcp_function_set { #define TCP_TLS_MODE_NONE 0 #define TCP_TLS_MODE_SW 1 #define TCP_TLS_MODE_IFNET 2 +#define TCP_TLS_MODE_TOE 3 /* * TCP Control message types Modified: head/sys/netinet/tcp_offload.c ============================================================================== --- head/sys/netinet/tcp_offload.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/tcp_offload.c Tue Oct 8 21:34:06 2019 (r353328) @@ -178,6 +178,17 @@ tcp_offload_tcp_info(struct tcpcb *tp, struct tcp_info tod->tod_tcp_info(tod, tp, ti); } +int +tcp_offload_alloc_tls_session(struct tcpcb *tp, struct ktls_session *tls) +{ + struct toedev *tod = tp->tod; + + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); + + return (tod->tod_alloc_tls_session(tod, tp, tls)); +} + void tcp_offload_detach(struct tcpcb *tp) { Modified: head/sys/netinet/tcp_offload.h ============================================================================== --- head/sys/netinet/tcp_offload.h Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/tcp_offload.h Tue Oct 8 21:34:06 2019 (r353328) @@ -46,6 +46,7 @@ int tcp_offload_output(struct tcpcb *); void tcp_offload_rcvd(struct tcpcb *); void tcp_offload_ctloutput(struct tcpcb *, int, int); void tcp_offload_tcp_info(struct tcpcb *, struct tcp_info *); +int tcp_offload_alloc_tls_session(struct tcpcb *, struct ktls_session *); void tcp_offload_detach(struct tcpcb *); #endif Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/tcp_usrreq.c Tue Oct 8 21:34:06 2019 (r353328) @@ -1936,8 +1936,6 @@ unlock_and_done: error = sooptcopyin(sopt, &ui, sizeof(ui), sizeof(ui)); if (error) return (error); - if (ui != TCP_TLS_MODE_SW && ui != TCP_TLS_MODE_IFNET) - return (EINVAL); INP_WLOCK_RECHECK(inp); error = ktls_set_tx_mode(so, ui); Modified: head/sys/netinet/toecore.c ============================================================================== --- head/sys/netinet/toecore.c Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/toecore.c Tue Oct 8 21:34:06 2019 (r353328) @@ -191,6 +191,14 @@ toedev_tcp_info(struct toedev *tod __unused, struct tc return; } +static int +toedev_alloc_tls_session(struct toedev *tod __unused, struct tcpcb *tp __unused, + struct ktls_session *tls __unused) +{ + + return (EINVAL); +} + /* * Inform one or more TOE devices about a listening socket. */ @@ -281,6 +289,7 @@ init_toedev(struct toedev *tod) tod->tod_offload_socket = toedev_offload_socket; tod->tod_ctloutput = toedev_ctloutput; tod->tod_tcp_info = toedev_tcp_info; + tod->tod_alloc_tls_session = toedev_alloc_tls_session; } /* Modified: head/sys/netinet/toecore.h ============================================================================== --- head/sys/netinet/toecore.h Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/netinet/toecore.h Tue Oct 8 21:34:06 2019 (r353328) @@ -41,6 +41,7 @@ struct tcpopt; struct tcphdr; struct in_conninfo; struct tcp_info; +struct ktls_session; struct toedev { TAILQ_ENTRY(toedev) link; /* glue for toedev_list */ @@ -108,6 +109,10 @@ struct toedev { /* Update software state */ void (*tod_tcp_info)(struct toedev *, struct tcpcb *, struct tcp_info *); + + /* Create a TLS session */ + int (*tod_alloc_tls_session)(struct toedev *, struct tcpcb *, + struct ktls_session *); }; typedef void (*tcp_offload_listen_start_fn)(void *, struct tcpcb *); Modified: head/sys/sys/ktls.h ============================================================================== --- head/sys/sys/ktls.h Tue Oct 8 21:14:11 2019 (r353327) +++ head/sys/sys/ktls.h Tue Oct 8 21:34:06 2019 (r353328) @@ -156,6 +156,7 @@ struct ktls_session { struct tls_session_params params; u_int wq_index; volatile u_int refcount; + int mode; struct task reset_tag_task; struct inpcb *inp; From owner-svn-src-head@freebsd.org Tue Oct 8 21:39:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 712FF137C19; Tue, 8 Oct 2019 21:39:52 +0000 (UTC) (envelope-from brooks@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 46nrNS2Lxvz4Y3X; Tue, 8 Oct 2019 21:39:52 +0000 (UTC) (envelope-from brooks@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 3423D672B; Tue, 8 Oct 2019 21:39:52 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98LdqfV088826; Tue, 8 Oct 2019 21:39:52 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Ldqcr088825; Tue, 8 Oct 2019 21:39:52 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910082139.x98Ldqcr088825@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 8 Oct 2019 21:39:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353329 - head/lib/msun/src X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head/lib/msun/src X-SVN-Commit-Revision: 353329 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 21:39:52 -0000 Author: brooks Date: Tue Oct 8 21:39:51 2019 New Revision: 353329 URL: https://svnweb.freebsd.org/changeset/base/353329 Log: msun: Silence new harmless -Wimplicit-int-float-conversion warnings Clang from trunk recently added a warning for when implicit int-to-float conversions cause a loss of precision. The code in question is designed to be able to handle that, so add explicit casts to silence this. Submitted by: James Clarke Reviewed by: dim Obtained from: CheriBSD MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21913 Modified: head/lib/msun/src/s_lround.c Modified: head/lib/msun/src/s_lround.c ============================================================================== --- head/lib/msun/src/s_lround.c Tue Oct 8 21:34:06 2019 (r353328) +++ head/lib/msun/src/s_lround.c Tue Oct 8 21:39:51 2019 (r353329) @@ -49,9 +49,9 @@ __FBSDID("$FreeBSD$"); * that everything is in range. At compile time, INRANGE(x) should reduce to * two floating-point comparisons in the former case, or TRUE otherwise. */ -static const type dtype_min = DTYPE_MIN - 0.5; -static const type dtype_max = DTYPE_MAX + 0.5; -#define INRANGE(x) (dtype_max - DTYPE_MAX != 0.5 || \ +static const type dtype_min = (type)DTYPE_MIN - 0.5; +static const type dtype_max = (type)DTYPE_MAX + 0.5; +#define INRANGE(x) (dtype_max - (type)DTYPE_MAX != 0.5 || \ ((x) > dtype_min && (x) < dtype_max)) dtype From owner-svn-src-head@freebsd.org Tue Oct 8 21:40:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7612137D27; Tue, 8 Oct 2019 21:40: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 46nrPR6SLdz4YCV; Tue, 8 Oct 2019 21:40: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 C055B6746; Tue, 8 Oct 2019 21:40: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 x98LehX6089582; Tue, 8 Oct 2019 21:40:43 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Leg51088951; Tue, 8 Oct 2019 21:40:42 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910082140.x98Leg51088951@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 8 Oct 2019 21:40:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353330 - head/sys/dev/cxgbe/tom X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 353330 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 21:40:44 -0000 Author: jhb Date: Tue Oct 8 21:40:42 2019 New Revision: 353330 URL: https://svnweb.freebsd.org/changeset/base/353330 Log: Add support for KTLS in the Chelsio TOE module. This adds a TOE hook to allocate a KTLS session. It also recognizes TLS mbufs in the socket buffer and sends those to the NIC using a TLS work request to encrypt the record before segmenting it. TOE TLS support must be enabled via the dev.t6nex..tls sysctl in addition to enabling KTLS. Reviewed by: np, gallatin Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21891 Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/dev/cxgbe/tom/t4_tls.c head/sys/dev/cxgbe/tom/t4_tls.h head/sys/dev/cxgbe/tom/t4_tom.c head/sys/dev/cxgbe/tom/t4_tom.h Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Tue Oct 8 21:39:51 2019 (r353329) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Tue Oct 8 21:40:42 2019 (r353330) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" +#include "opt_kern_tls.h" #include "opt_ratelimit.h" #ifdef TCP_OFFLOAD @@ -728,9 +729,20 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep for (m = sndptr; m != NULL; m = m->m_next) { int n; - if (m->m_flags & M_NOMAP) + if (m->m_flags & M_NOMAP) { +#ifdef KERN_TLS + if (m->m_ext.ext_pgs->tls != NULL) { + toep->flags |= TPF_KTLS; + if (plen == 0) { + SOCKBUF_UNLOCK(sb); + t4_push_ktls(sc, toep, 0); + return; + } + break; + } +#endif n = sglist_count_mb_ext_pgs(m); - else + } else n = sglist_count(mtod(m, void *), m->m_len); nsegs += n; @@ -1086,6 +1098,22 @@ t4_push_pdus(struct adapter *sc, struct toepcb *toep, t4_close_conn(sc, toep); } +static inline void +t4_push_data(struct adapter *sc, struct toepcb *toep, int drop) +{ + + if (ulp_mode(toep) == ULP_MODE_ISCSI) + t4_push_pdus(sc, toep, drop); + else if (tls_tx_key(toep) && toep->tls.mode == TLS_MODE_TLSOM) + t4_push_tls_records(sc, toep, drop); +#ifdef KERN_TLS + else if (toep->flags & TPF_KTLS) + t4_push_ktls(sc, toep, drop); +#endif + else + t4_push_frames(sc, toep, drop); +} + int t4_tod_output(struct toedev *tod, struct tcpcb *tp) { @@ -1100,12 +1128,7 @@ t4_tod_output(struct toedev *tod, struct tcpcb *tp) ("%s: inp %p dropped.", __func__, inp)); KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); - if (ulp_mode(toep) == ULP_MODE_ISCSI) - t4_push_pdus(sc, toep, 0); - else if (tls_tx_key(toep)) - t4_push_tls_records(sc, toep, 0); - else - t4_push_frames(sc, toep, 0); + t4_push_data(sc, toep, 0); return (0); } @@ -1125,14 +1148,8 @@ t4_send_fin(struct toedev *tod, struct tcpcb *tp) KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); toep->flags |= TPF_SEND_FIN; - if (tp->t_state >= TCPS_ESTABLISHED) { - if (ulp_mode(toep) == ULP_MODE_ISCSI) - t4_push_pdus(sc, toep, 0); - else if (tls_tx_key(toep)) - t4_push_tls_records(sc, toep, 0); - else - t4_push_frames(sc, toep, 0); - } + if (tp->t_state >= TCPS_ESTABLISHED) + t4_push_data(sc, toep, 0); return (0); } @@ -1742,12 +1759,7 @@ do_fw4_ack(struct sge_iq *iq, const struct rss_header #endif toep->flags &= ~TPF_TX_SUSPENDED; CURVNET_SET(toep->vnet); - if (ulp_mode(toep) == ULP_MODE_ISCSI) - t4_push_pdus(sc, toep, plen); - else if (tls_tx_key(toep)) - t4_push_tls_records(sc, toep, plen); - else - t4_push_frames(sc, toep, plen); + t4_push_data(sc, toep, plen); CURVNET_RESTORE(); } else if (plen > 0) { struct sockbuf *sb = &so->so_snd; @@ -1775,7 +1787,8 @@ do_fw4_ack(struct sge_iq *iq, const struct rss_header tid, plen); #endif sbdrop_locked(sb, plen); - if (tls_tx_key(toep)) { + if (tls_tx_key(toep) && + toep->tls.mode == TLS_MODE_TLSOM) { struct tls_ofld_info *tls_ofld = &toep->tls; MPASS(tls_ofld->sb_off >= plen); Modified: head/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tls.c Tue Oct 8 21:39:51 2019 (r353329) +++ head/sys/dev/cxgbe/tom/t4_tls.c Tue Oct 8 21:40:42 2019 (r353330) @@ -28,12 +28,16 @@ */ #include "opt_inet.h" +#include "opt_kern_tls.h" #include __FBSDID("$FreeBSD$"); #include #include +#ifdef KERN_TLS +#include +#endif #include #include #include @@ -42,6 +46,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef KERN_TLS +#include +#include +#endif #ifdef TCP_OFFLOAD #include "common/common.h" @@ -784,11 +792,19 @@ t4_ctloutput_tls(struct socket *so, struct sockopt *so case SOPT_SET: switch (sopt->sopt_name) { case TCP_TLSOM_SET_TLS_CONTEXT: - error = program_key_context(tp, toep, &uk_ctx); + if (toep->tls.mode == TLS_MODE_KTLS) + error = EINVAL; + else { + error = program_key_context(tp, toep, &uk_ctx); + if (error == 0) + toep->tls.mode = TLS_MODE_TLSOM; + } INP_WUNLOCK(inp); break; case TCP_TLSOM_CLR_TLS_TOM: - if (ulp_mode(toep) == ULP_MODE_TLS) { + if (toep->tls.mode == TLS_MODE_KTLS) + error = EINVAL; + else if (ulp_mode(toep) == ULP_MODE_TLS) { CTR2(KTR_CXGBE, "%s: tid %d CLR_TLS_TOM", __func__, toep->tid); tls_clr_ofld_mode(toep); @@ -797,7 +813,9 @@ t4_ctloutput_tls(struct socket *so, struct sockopt *so INP_WUNLOCK(inp); break; case TCP_TLSOM_CLR_QUIES: - if (ulp_mode(toep) == ULP_MODE_TLS) { + if (toep->tls.mode == TLS_MODE_KTLS) + error = EINVAL; + else if (ulp_mode(toep) == ULP_MODE_TLS) { CTR2(KTR_CXGBE, "%s: tid %d CLR_QUIES", __func__, toep->tid); tls_clr_quiesce(toep); @@ -819,7 +837,8 @@ t4_ctloutput_tls(struct socket *so, struct sockopt *so * TLS RX requires a TLS ULP mode. */ optval = TLS_TOM_NONE; - if (can_tls_offload(td_adapter(toep->td))) { + if (can_tls_offload(td_adapter(toep->td)) && + toep->tls.mode != TLS_MODE_KTLS) { switch (ulp_mode(toep)) { case ULP_MODE_NONE: case ULP_MODE_TCPDDP: @@ -845,11 +864,264 @@ t4_ctloutput_tls(struct socket *so, struct sockopt *so return (error); } +#ifdef KERN_TLS +/* XXX: Should share this with ccr(4) eventually. */ +static void +init_ktls_gmac_hash(const char *key, int klen, char *ghash) +{ + static char zeroes[GMAC_BLOCK_LEN]; + uint32_t keysched[4 * (RIJNDAEL_MAXNR + 1)]; + int rounds; + + rounds = rijndaelKeySetupEnc(keysched, key, klen); + rijndaelEncrypt(keysched, rounds, zeroes, ghash); +} + +/* XXX: Should share this with ccr(4) eventually. */ +static void +ktls_copy_partial_hash(void *dst, int cri_alg, union authctx *auth_ctx) +{ + uint32_t *u32; + uint64_t *u64; + u_int i; + + u32 = (uint32_t *)dst; + u64 = (uint64_t *)dst; + switch (cri_alg) { + case CRYPTO_SHA1_HMAC: + for (i = 0; i < SHA1_HASH_LEN / 4; i++) + u32[i] = htobe32(auth_ctx->sha1ctx.h.b32[i]); + break; + case CRYPTO_SHA2_256_HMAC: + for (i = 0; i < SHA2_256_HASH_LEN / 4; i++) + u32[i] = htobe32(auth_ctx->sha256ctx.state[i]); + break; + case CRYPTO_SHA2_384_HMAC: + for (i = 0; i < SHA2_512_HASH_LEN / 8; i++) + u64[i] = htobe64(auth_ctx->sha384ctx.state[i]); + break; + } +} + +static void +init_ktls_hmac_digest(struct auth_hash *axf, u_int partial_digest_len, + char *key, int klen, char *dst) +{ + union authctx auth_ctx; + char ipad[SHA2_512_BLOCK_LEN], opad[SHA2_512_BLOCK_LEN]; + u_int i; + + /* + * If the key is larger than the block size, use the digest of + * the key as the key instead. + */ + klen /= 8; + if (klen > axf->blocksize) { + axf->Init(&auth_ctx); + axf->Update(&auth_ctx, key, klen); + axf->Final(ipad, &auth_ctx); + klen = axf->hashsize; + } else + memcpy(ipad, key, klen); + + memset(ipad + klen, 0, axf->blocksize - klen); + memcpy(opad, ipad, axf->blocksize); + + for (i = 0; i < axf->blocksize; i++) { + ipad[i] ^= HMAC_IPAD_VAL; + opad[i] ^= HMAC_OPAD_VAL; + } + + /* + * Hash the raw ipad and opad and store the partial results in + * the key context. + */ + axf->Init(&auth_ctx); + axf->Update(&auth_ctx, ipad, axf->blocksize); + ktls_copy_partial_hash(dst, axf->type, &auth_ctx); + + dst += roundup2(partial_digest_len, 16); + axf->Init(&auth_ctx); + axf->Update(&auth_ctx, opad, axf->blocksize); + ktls_copy_partial_hash(dst, axf->type, &auth_ctx); +} + +static void +init_ktls_key_context(struct ktls_session *tls, struct tls_key_context *k_ctx) +{ + struct auth_hash *axf; + u_int mac_key_size; + char *hash; + + k_ctx->l_p_key = V_KEY_GET_LOC(KEY_WRITE_TX); + if (tls->params.tls_vminor == TLS_MINOR_VER_ONE) + k_ctx->proto_ver = SCMD_PROTO_VERSION_TLS_1_1; + else + k_ctx->proto_ver = SCMD_PROTO_VERSION_TLS_1_2; + k_ctx->cipher_secret_size = tls->params.cipher_key_len; + k_ctx->tx_key_info_size = sizeof(struct tx_keyctx_hdr) + + k_ctx->cipher_secret_size; + memcpy(k_ctx->tx.key, tls->params.cipher_key, + tls->params.cipher_key_len); + hash = k_ctx->tx.key + tls->params.cipher_key_len; + if (tls->params.cipher_algorithm == CRYPTO_AES_NIST_GCM_16) { + k_ctx->state.auth_mode = SCMD_AUTH_MODE_GHASH; + k_ctx->state.enc_mode = SCMD_CIPH_MODE_AES_GCM; + k_ctx->iv_size = 4; + k_ctx->mac_first = 0; + k_ctx->hmac_ctrl = SCMD_HMAC_CTRL_NOP; + k_ctx->tx_key_info_size += GMAC_BLOCK_LEN; + memcpy(k_ctx->tx.salt, tls->params.iv, SALT_SIZE); + init_ktls_gmac_hash(tls->params.cipher_key, + tls->params.cipher_key_len * 8, hash); + } else { + switch (tls->params.auth_algorithm) { + case CRYPTO_SHA1_HMAC: + axf = &auth_hash_hmac_sha1; + mac_key_size = SHA1_HASH_LEN; + k_ctx->state.auth_mode = SCMD_AUTH_MODE_SHA1; + break; + case CRYPTO_SHA2_256_HMAC: + axf = &auth_hash_hmac_sha2_256; + mac_key_size = SHA2_256_HASH_LEN; + k_ctx->state.auth_mode = SCMD_AUTH_MODE_SHA256; + break; + case CRYPTO_SHA2_384_HMAC: + axf = &auth_hash_hmac_sha2_384; + mac_key_size = SHA2_512_HASH_LEN; + k_ctx->state.auth_mode = SCMD_AUTH_MODE_SHA512_384; + break; + default: + panic("bad auth mode"); + } + k_ctx->state.enc_mode = SCMD_CIPH_MODE_AES_CBC; + k_ctx->iv_size = 8; /* for CBC, iv is 16B, unit of 2B */ + k_ctx->mac_first = 1; + k_ctx->hmac_ctrl = SCMD_HMAC_CTRL_NO_TRUNC; + k_ctx->tx_key_info_size += roundup2(mac_key_size, 16) * 2; + k_ctx->mac_secret_size = mac_key_size; + init_ktls_hmac_digest(axf, mac_key_size, tls->params.auth_key, + tls->params.auth_key_len * 8, hash); + } + + k_ctx->frag_size = tls->params.max_frame_len; + k_ctx->iv_ctrl = 1; +} + +int +tls_alloc_ktls(struct toepcb *toep, struct ktls_session *tls) +{ + struct tls_key_context *k_ctx; + int error; + + if (toep->tls.mode == TLS_MODE_TLSOM) + return (EINVAL); + if (!can_tls_offload(td_adapter(toep->td))) + return (EINVAL); + switch (ulp_mode(toep)) { + case ULP_MODE_NONE: + case ULP_MODE_TCPDDP: + break; + default: + return (EINVAL); + } + + switch (tls->params.cipher_algorithm) { + case CRYPTO_AES_CBC: + /* XXX: Explicitly ignore any provided IV. */ + switch (tls->params.cipher_key_len) { + case 128 / 8: + case 192 / 8: + case 256 / 8: + break; + default: + return (EINVAL); + } + switch (tls->params.auth_algorithm) { + case CRYPTO_SHA1_HMAC: + case CRYPTO_SHA2_256_HMAC: + case CRYPTO_SHA2_384_HMAC: + break; + default: + return (EPROTONOSUPPORT); + } + break; + case CRYPTO_AES_NIST_GCM_16: + if (tls->params.iv_len != SALT_SIZE) + return (EINVAL); + switch (tls->params.cipher_key_len) { + case 128 / 8: + case 192 / 8: + case 256 / 8: + break; + default: + return (EINVAL); + } + break; + default: + return (EPROTONOSUPPORT); + } + + /* Only TLS 1.1 and TLS 1.2 are currently supported. */ + if (tls->params.tls_vmajor != TLS_MAJOR_VER_ONE || + tls->params.tls_vminor < TLS_MINOR_VER_ONE || + tls->params.tls_vminor > TLS_MINOR_VER_TWO) + return (EPROTONOSUPPORT); + + /* + * XXX: This assumes no key renegotation. If KTLS ever supports + * that we will want to allocate TLS sessions dynamically rather + * than as a static member of toep. + */ + k_ctx = &toep->tls.k_ctx; + init_ktls_key_context(tls, k_ctx); + + toep->tls.scmd0.seqno_numivs = + (V_SCMD_SEQ_NO_CTRL(3) | + V_SCMD_PROTO_VERSION(k_ctx->proto_ver) | + V_SCMD_ENC_DEC_CTRL(SCMD_ENCDECCTRL_ENCRYPT) | + V_SCMD_CIPH_AUTH_SEQ_CTRL((k_ctx->mac_first == 0)) | + V_SCMD_CIPH_MODE(k_ctx->state.enc_mode) | + V_SCMD_AUTH_MODE(k_ctx->state.auth_mode) | + V_SCMD_HMAC_CTRL(k_ctx->hmac_ctrl) | + V_SCMD_IV_SIZE(k_ctx->iv_size)); + + toep->tls.scmd0.ivgen_hdrlen = + (V_SCMD_IV_GEN_CTRL(k_ctx->iv_ctrl) | + V_SCMD_KEY_CTX_INLINE(0) | + V_SCMD_TLS_FRAG_ENABLE(1)); + + if (tls->params.cipher_algorithm == CRYPTO_AES_NIST_GCM_16) + toep->tls.iv_len = 8; + else + toep->tls.iv_len = AES_BLOCK_LEN; + + toep->tls.mac_length = k_ctx->mac_secret_size; + + toep->tls.tx_key_addr = -1; + + error = tls_program_key_id(toep, k_ctx); + if (error) + return (error); + + toep->tls.fcplenmax = get_tp_plen_max(&toep->tls); + toep->tls.expn_per_ulp = tls->params.tls_hlen + tls->params.tls_tlen; + toep->tls.pdus_per_ulp = 1; + toep->tls.adjusted_plen = toep->tls.expn_per_ulp + + toep->tls.k_ctx.frag_size; + + toep->tls.mode = TLS_MODE_KTLS; + + return (0); +} +#endif + void tls_init_toep(struct toepcb *toep) { struct tls_ofld_info *tls_ofld = &toep->tls; + tls_ofld->mode = TLS_MODE_OFF; tls_ofld->key_location = TLS_SFO_WR_CONTEXTLOC_DDR; tls_ofld->rx_key_addr = -1; tls_ofld->tx_key_addr = -1; @@ -961,8 +1233,8 @@ write_tlstx_wr(struct fw_tlstx_data_wr *txwr, struct t V_FW_TLSTX_DATA_WR_ADJUSTEDPLEN(tls_ofld->adjusted_plen)); txwr->expinplenmax_pkd = htobe16( V_FW_TLSTX_DATA_WR_EXPINPLENMAX(tls_ofld->expn_per_ulp)); - txwr->pdusinplenmax_pkd = htobe16( - V_FW_TLSTX_DATA_WR_PDUSINPLENMAX(tls_ofld->pdus_per_ulp)); + txwr->pdusinplenmax_pkd = + V_FW_TLSTX_DATA_WR_PDUSINPLENMAX(tls_ofld->pdus_per_ulp); } static void @@ -1374,6 +1646,310 @@ t4_push_tls_records(struct adapter *sc, struct toepcb t4_l2t_send(sc, wr, toep->l2te); } } + +#ifdef KERN_TLS +static int +count_ext_pgs_segs(struct mbuf_ext_pgs *ext_pgs) +{ + vm_paddr_t nextpa; + u_int i, nsegs; + + MPASS(ext_pgs->npgs > 0); + nsegs = 1; + nextpa = ext_pgs->pa[0] + PAGE_SIZE; + for (i = 1; i < ext_pgs->npgs; i++) { + if (nextpa != ext_pgs->pa[i]) + nsegs++; + nextpa = ext_pgs->pa[i] + PAGE_SIZE; + } + return (nsegs); +} + +static void +write_ktlstx_sgl(void *dst, struct mbuf_ext_pgs *ext_pgs, int nsegs) +{ + struct ulptx_sgl *usgl = dst; + vm_paddr_t pa; + uint32_t len; + int i, j; + + KASSERT(nsegs > 0, ("%s: nsegs 0", __func__)); + + usgl->cmd_nsge = htobe32(V_ULPTX_CMD(ULP_TX_SC_DSGL) | + V_ULPTX_NSGE(nsegs)); + + /* Figure out the first S/G length. */ + pa = ext_pgs->pa[0] + ext_pgs->first_pg_off; + usgl->addr0 = htobe64(pa); + len = mbuf_ext_pg_len(ext_pgs, 0, ext_pgs->first_pg_off); + pa += len; + for (i = 1; i < ext_pgs->npgs; i++) { + if (ext_pgs->pa[i] != pa) + break; + len += mbuf_ext_pg_len(ext_pgs, i, 0); + pa += mbuf_ext_pg_len(ext_pgs, i, 0); + } + usgl->len0 = htobe32(len); +#ifdef INVARIANTS + nsegs--; +#endif + + j = -1; + for (; i < ext_pgs->npgs; i++) { + if (j == -1 || ext_pgs->pa[i] != pa) { + if (j >= 0) + usgl->sge[j / 2].len[j & 1] = htobe32(len); + j++; +#ifdef INVARIANTS + nsegs--; +#endif + pa = ext_pgs->pa[i]; + usgl->sge[j / 2].addr[j & 1] = htobe64(pa); + len = mbuf_ext_pg_len(ext_pgs, i, 0); + pa += len; + } else { + len += mbuf_ext_pg_len(ext_pgs, i, 0); + pa += mbuf_ext_pg_len(ext_pgs, i, 0); + } + } + if (j >= 0) { + usgl->sge[j / 2].len[j & 1] = htobe32(len); + + if ((j & 1) == 0) + usgl->sge[j / 2].len[1] = htobe32(0); + } + KASSERT(nsegs == 0, ("%s: nsegs %d, ext_pgs %p", __func__, nsegs, + ext_pgs)); +} + +/* + * Similar to t4_push_frames() but handles sockets that contain TLS + * record mbufs. Unlike TLSOM, each mbuf is a complete TLS record and + * corresponds to a single work request. + */ +void +t4_push_ktls(struct adapter *sc, struct toepcb *toep, int drop) +{ + struct tls_hdr *thdr; + struct fw_tlstx_data_wr *txwr; + struct cpl_tx_tls_sfo *cpl; + struct wrqe *wr; + struct mbuf *m; + u_int nsegs, credits, wr_len; + u_int expn_size; + struct inpcb *inp = toep->inp; + struct tcpcb *tp = intotcpcb(inp); + struct socket *so = inp->inp_socket; + struct sockbuf *sb = &so->so_snd; + int tls_size, tx_credits, shove, sowwakeup; + struct ofld_tx_sdesc *txsd; + char *buf; + + INP_WLOCK_ASSERT(inp); + KASSERT(toep->flags & TPF_FLOWC_WR_SENT, + ("%s: flowc_wr not sent for tid %u.", __func__, toep->tid)); + + KASSERT(ulp_mode(toep) == ULP_MODE_NONE || + ulp_mode(toep) == ULP_MODE_TCPDDP, + ("%s: ulp_mode %u for toep %p", __func__, ulp_mode(toep), toep)); + KASSERT(tls_tx_key(toep), + ("%s: TX key not set for toep %p", __func__, toep)); + +#ifdef VERBOSE_TRACES + CTR4(KTR_CXGBE, "%s: tid %d toep flags %#x tp flags %#x drop %d", + __func__, toep->tid, toep->flags, tp->t_flags); +#endif + if (__predict_false(toep->flags & TPF_ABORT_SHUTDOWN)) + return; + +#ifdef RATELIMIT + if (__predict_false(inp->inp_flags2 & INP_RATE_LIMIT_CHANGED) && + (update_tx_rate_limit(sc, toep, so->so_max_pacing_rate) == 0)) { + inp->inp_flags2 &= ~INP_RATE_LIMIT_CHANGED; + } +#endif + + /* + * This function doesn't resume by itself. Someone else must clear the + * flag and call this function. + */ + if (__predict_false(toep->flags & TPF_TX_SUSPENDED)) { + KASSERT(drop == 0, + ("%s: drop (%d) != 0 but tx is suspended", __func__, drop)); + return; + } + + txsd = &toep->txsd[toep->txsd_pidx]; + for (;;) { + tx_credits = min(toep->tx_credits, MAX_OFLD_TX_CREDITS); + + SOCKBUF_LOCK(sb); + sowwakeup = drop; + if (drop) { + sbdrop_locked(sb, drop); + drop = 0; + } + + m = sb->sb_sndptr != NULL ? sb->sb_sndptr->m_next : sb->sb_mb; + + /* + * Send a FIN if requested, but only if there's no + * more data to send. + */ + if (m == NULL && toep->flags & TPF_SEND_FIN) { + if (sowwakeup) + sowwakeup_locked(so); + else + SOCKBUF_UNLOCK(sb); + SOCKBUF_UNLOCK_ASSERT(sb); + t4_close_conn(sc, toep); + return; + } + + /* + * If there is no ready data to send, wait until more + * data arrives. + */ + if (m == NULL || (m->m_flags & M_NOTAVAIL) != 0) { + if (sowwakeup) + sowwakeup_locked(so); + else + SOCKBUF_UNLOCK(sb); + SOCKBUF_UNLOCK_ASSERT(sb); +#ifdef VERBOSE_TRACES + CTR2(KTR_CXGBE, "%s: tid %d no ready data to send", + __func__, toep->tid); +#endif + return; + } + + KASSERT(m->m_flags & M_NOMAP, ("%s: mbuf %p is not NOMAP", + __func__, m)); + KASSERT(m->m_ext.ext_pgs->tls != NULL, + ("%s: mbuf %p doesn't have TLS session", __func__, m)); + + /* Calculate WR length. */ + wr_len = sizeof(struct fw_tlstx_data_wr) + + sizeof(struct cpl_tx_tls_sfo) + key_size(toep); + + /* Explicit IVs for AES-CBC and AES-GCM are <= 16. */ + MPASS(toep->tls.iv_len <= AES_BLOCK_LEN); + wr_len += AES_BLOCK_LEN; + + /* Account for SGL in work request length. */ + nsegs = count_ext_pgs_segs(m->m_ext.ext_pgs); + wr_len += sizeof(struct ulptx_sgl) + + ((3 * (nsegs - 1)) / 2 + ((nsegs - 1) & 1)) * 8; + + /* Not enough credits for this work request. */ + if (howmany(wr_len, 16) > tx_credits) { + if (sowwakeup) + sowwakeup_locked(so); + else + SOCKBUF_UNLOCK(sb); + SOCKBUF_UNLOCK_ASSERT(sb); +#ifdef VERBOSE_TRACES + CTR5(KTR_CXGBE, + "%s: tid %d mbuf %p requires %d credits, but only %d available", + __func__, toep->tid, m, howmany(wr_len, 16), + tx_credits); +#endif + toep->flags |= TPF_TX_SUSPENDED; + return; + } + + /* Shove if there is no additional data pending. */ + shove = ((m->m_next == NULL || + (m->m_next->m_flags & M_NOTAVAIL) != 0)) && + (tp->t_flags & TF_MORETOCOME) == 0; + + if (sb->sb_flags & SB_AUTOSIZE && + V_tcp_do_autosndbuf && + sb->sb_hiwat < V_tcp_autosndbuf_max && + sbused(sb) >= sb->sb_hiwat * 7 / 8) { + int newsize = min(sb->sb_hiwat + V_tcp_autosndbuf_inc, + V_tcp_autosndbuf_max); + + if (!sbreserve_locked(sb, newsize, so, NULL)) + sb->sb_flags &= ~SB_AUTOSIZE; + else + sowwakeup = 1; /* room available */ + } + if (sowwakeup) + sowwakeup_locked(so); + else + SOCKBUF_UNLOCK(sb); + SOCKBUF_UNLOCK_ASSERT(sb); + + if (__predict_false(toep->flags & TPF_FIN_SENT)) + panic("%s: excess tx.", __func__); + + wr = alloc_wrqe(roundup2(wr_len, 16), toep->ofld_txq); + if (wr == NULL) { + /* XXX: how will we recover from this? */ + toep->flags |= TPF_TX_SUSPENDED; + return; + } + + thdr = (struct tls_hdr *)m->m_ext.ext_pgs->hdr; +#ifdef VERBOSE_TRACES + CTR5(KTR_CXGBE, "%s: tid %d TLS record %ju type %d len %#x", + __func__, toep->tid, m->m_ext.ext_pgs->seqno, thdr->type, + m->m_len); +#endif + txwr = wrtod(wr); + cpl = (struct cpl_tx_tls_sfo *)(txwr + 1); + memset(txwr, 0, roundup2(wr_len, 16)); + credits = howmany(wr_len, 16); + expn_size = m->m_ext.ext_pgs->hdr_len + + m->m_ext.ext_pgs->trail_len; + tls_size = m->m_len - expn_size; + write_tlstx_wr(txwr, toep, 0, + tls_size, expn_size, 1, credits, shove, 1); + toep->tls.tx_seq_no = m->m_ext.ext_pgs->seqno; + write_tlstx_cpl(cpl, toep, thdr, tls_size, 1); + tls_copy_tx_key(toep, cpl + 1); + + /* Copy IV. */ + buf = (char *)(cpl + 1) + key_size(toep); + memcpy(buf, thdr + 1, toep->tls.iv_len); + buf += AES_BLOCK_LEN; + + write_ktlstx_sgl(buf, m->m_ext.ext_pgs, nsegs); + + KASSERT(toep->tx_credits >= credits, + ("%s: not enough credits", __func__)); + + toep->tx_credits -= credits; + + tp->snd_nxt += m->m_len; + tp->snd_max += m->m_len; + + SOCKBUF_LOCK(sb); + sb->sb_sndptr = m; + SOCKBUF_UNLOCK(sb); + + toep->flags |= TPF_TX_DATA_SENT; + if (toep->tx_credits < MIN_OFLD_TLSTX_CREDITS(toep)) + toep->flags |= TPF_TX_SUSPENDED; + + KASSERT(toep->txsd_avail > 0, ("%s: no txsd", __func__)); + txsd->plen = m->m_len; + txsd->tx_credits = credits; + txsd++; + if (__predict_false(++toep->txsd_pidx == toep->txsd_total)) { + toep->txsd_pidx = 0; + txsd = &toep->txsd[0]; + } + toep->txsd_avail--; + + atomic_add_long(&toep->vi->pi->tx_tls_records, 1); + atomic_add_long(&toep->vi->pi->tx_tls_octets, m->m_len); + + t4_l2t_send(sc, wr, toep->l2te); + } +} +#endif /* * For TLS data we place received mbufs received via CPL_TLS_DATA into Modified: head/sys/dev/cxgbe/tom/t4_tls.h ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tls.h Tue Oct 8 21:39:51 2019 (r353329) +++ head/sys/dev/cxgbe/tom/t4_tls.h Tue Oct 8 21:40:42 2019 (r353330) @@ -254,6 +254,12 @@ struct tls_scmd { __be32 ivgen_hdrlen; }; +enum tls_mode { + TLS_MODE_OFF, + TLS_MODE_TLSOM, + TLS_MODE_KTLS, +}; + struct tls_ofld_info { struct tls_key_context k_ctx; int key_location; @@ -266,8 +272,10 @@ struct tls_ofld_info { unsigned short expn_per_ulp; unsigned short pdus_per_ulp; struct tls_scmd scmd0; - u_int sb_off; + u_int iv_len; + enum tls_mode mode; struct callout handshake_timer; + u_int sb_off; u_int rcv_over; }; Modified: head/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.c Tue Oct 8 21:39:51 2019 (r353329) +++ head/sys/dev/cxgbe/tom/t4_tom.c Tue Oct 8 21:40:42 2019 (r353330) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" +#include "opt_kern_tls.h" #include "opt_ratelimit.h" #include @@ -806,6 +807,20 @@ t4_tcp_info(struct toedev *tod, struct tcpcb *tp, stru fill_tcp_info(sc, toep->tid, ti); } +#ifdef KERN_TLS +static int +t4_alloc_tls_session(struct toedev *tod, struct tcpcb *tp, + struct ktls_session *tls) +{ + struct toepcb *toep = tp->t_toe; + + INP_WLOCK_ASSERT(tp->t_inpcb); + MPASS(tls != NULL); + + return (tls_alloc_ktls(toep, tls)); +} +#endif + /* * The TOE driver will not receive any more CPLs for the tid associated with the * toepcb; release the hold on the inpcb. @@ -1721,6 +1736,9 @@ t4_tom_activate(struct adapter *sc) tod->tod_offload_socket = t4_offload_socket; tod->tod_ctloutput = t4_ctloutput; tod->tod_tcp_info = t4_tcp_info; +#ifdef KERN_TLS + tod->tod_alloc_tls_session = t4_alloc_tls_session; +#endif for_each_port(sc, i) { for_each_vi(sc->port[i], v, vi) { Modified: head/sys/dev/cxgbe/tom/t4_tom.h ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.h Tue Oct 8 21:39:51 2019 (r353329) +++ head/sys/dev/cxgbe/tom/t4_tom.h Tue Oct 8 21:40:42 2019 (r353330) @@ -72,6 +72,7 @@ enum { TPF_SYNQE = (1 << 8), /* synq_entry, not really a toepcb */ TPF_SYNQE_EXPANDED = (1 << 9), /* toepcb ready, tid context updated */ TPF_FORCE_CREDITS = (1 << 10), /* always send credits */ + TPF_KTLS = (1 << 11), /* send TLS records from KTLS */ }; enum { @@ -440,6 +441,7 @@ const struct offload_settings *lookup_offload_policy(s bool can_tls_offload(struct adapter *); int t4_ctloutput_tls(struct socket *, struct sockopt *); void t4_push_tls_records(struct adapter *, struct toepcb *, int); +void t4_push_ktls(struct adapter *, struct toepcb *, int); void t4_tls_mod_load(void); void t4_tls_mod_unload(void); void tls_establish(struct toepcb *); @@ -448,5 +450,6 @@ int tls_rx_key(struct toepcb *); void tls_stop_handshake_timer(struct toepcb *); int tls_tx_key(struct toepcb *); void tls_uninit_toep(struct toepcb *); +int tls_alloc_ktls(struct toepcb *, struct ktls_session *); #endif From owner-svn-src-head@freebsd.org Tue Oct 8 23:34:49 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3090213A64F; Tue, 8 Oct 2019 23:34:49 +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 46ntx50RMWz4ffR; Tue, 8 Oct 2019 23:34:49 +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 E67877CC0; Tue, 8 Oct 2019 23:34: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 x98NYmO7058696; Tue, 8 Oct 2019 23:34:48 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98NYmsk058695; Tue, 8 Oct 2019 23:34:48 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910082334.x98NYmsk058695@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 23:34:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353331 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353331 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 23:34:49 -0000 Author: markj Date: Tue Oct 8 23:34:48 2019 New Revision: 353331 URL: https://svnweb.freebsd.org/changeset/base/353331 Log: Fix handling of empty SCM_RIGHTS messages. As unp_internalize() processes the input control messages, it builds an output mbuf chain containing the internalized representations of those messages. In one special case, that of an empty SCM_RIGHTS message, the message is simply discarded. However, the loop which appends mbufs to the output chain assumed that each iteration would produce an mbuf, resulting in a null pointer dereference if an empty SCM_RIGHTS message was followed by a non-empty message. Fix this by advancing the output mbuf chain tail pointer only if an internalized control message was produced. Reported by: syzbot+1b5cced0f7fad26ae382@syzkaller.appspotmail.com MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/uipc_usrreq.c Modified: head/sys/kern/uipc_usrreq.c ============================================================================== --- head/sys/kern/uipc_usrreq.c Tue Oct 8 21:40:42 2019 (r353330) +++ head/sys/kern/uipc_usrreq.c Tue Oct 8 23:34:48 2019 (r353331) @@ -2318,7 +2318,8 @@ unp_internalize(struct mbuf **controlp, struct thread goto out; } - controlp = &(*controlp)->m_next; + if (*controlp != NULL) + controlp = &(*controlp)->m_next; if (CMSG_SPACE(datalen) < clen) { clen -= CMSG_SPACE(datalen); cm = (struct cmsghdr *) From owner-svn-src-head@freebsd.org Tue Oct 8 23:35:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B83B13A6D6; Tue, 8 Oct 2019 23:35:24 +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 46ntxm1jT0z4fnG; Tue, 8 Oct 2019 23:35:24 +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 1DFEA7CC1; Tue, 8 Oct 2019 23:35:24 +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 x98NZNbG058784; Tue, 8 Oct 2019 23:35:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98NZNIe058783; Tue, 8 Oct 2019 23:35:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910082335.x98NZNIe058783@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 23:35:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353332 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 353332 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 23:35:24 -0000 Author: markj Date: Tue Oct 8 23:35:23 2019 New Revision: 353332 URL: https://svnweb.freebsd.org/changeset/base/353332 Log: Add a regression test for r353331. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/kern/unix_passfd_test.c Modified: head/tests/sys/kern/unix_passfd_test.c ============================================================================== --- head/tests/sys/kern/unix_passfd_test.c Tue Oct 8 23:34:48 2019 (r353331) +++ head/tests/sys/kern/unix_passfd_test.c Tue Oct 8 23:35:23 2019 (r353332) @@ -620,6 +620,77 @@ ATF_TC_BODY(copyout_rights_error, tc) closesocketpair(fd); } +/* + * Verify that we can handle empty rights messages. Try sending two SCM_RIGHTS + * messages with a single call, one empty and one containing a single FD. + */ +ATF_TC_WITHOUT_HEAD(empty_rights_message); +ATF_TC_BODY(empty_rights_message, tc) +{ + struct iovec iov; + struct msghdr msghdr; + char *cm, message[CMSG_SPACE(0) + CMSG_SPACE(sizeof(int))]; + ssize_t len; + int error, fd[2], putfd; + + domainsocketpair(fd); + devnull(&putfd); + + /* + * First, try sending an empty message followed by a non-empty message. + */ + cm = message; + putfds(cm, -1, 0); + cm += CMSG_SPACE(0); + putfds(cm, putfd, 1); + + memset(&msghdr, 0, sizeof(msghdr)); + iov.iov_base = NULL; + iov.iov_len = 0; + msghdr.msg_control = message; + msghdr.msg_controllen = sizeof(message); + msghdr.msg_iov = &iov; + msghdr.msg_iovlen = 1; + + len = sendmsg(fd[0], &msghdr, 0); + ATF_REQUIRE_MSG(len == 0, "sendmsg failed: %s", strerror(errno)); + + /* Only the non-empty message should be received. */ + len = recvmsg(fd[1], &msghdr, 0); + ATF_REQUIRE_MSG(len == 0, "recvmsg failed: %s", strerror(errno)); + ATF_REQUIRE(msghdr.msg_controllen = CMSG_SPACE(sizeof(int))); + error = close((int *)CMSG_DATA(msghdr.msg_control)); + ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); + + /* + * Now try sending with the non-empty message before the empty message. + */ + cm = message; + putfds(cm, putfd, 1); + cm += CMSG_SPACE(sizeof(int)); + putfds(cm, -1, 0); + + memset(&msghdr, 0, sizeof(msghdr)); + iov.iov_base = NULL; + iov.iov_len = 0; + msghdr.msg_control = message; + msghdr.msg_controllen = CMSG_SPACE(sizeof(int)); + msghdr.msg_iov = &iov; + msghdr.msg_iovlen = 1; + + len = sendmsg(fd[0], &msghdr, 0); + ATF_REQUIRE_MSG(len == 0, "sendmsg failed: %s", strerror(errno)); + + /* Only the non-empty message should be received. */ + len = recvmsg(fd[1], &msghdr, 0); + ATF_REQUIRE_MSG(len == 0, "recvmsg failed: %s", strerror(errno)); + ATF_REQUIRE(msghdr.msg_controllen = CMSG_SPACE(sizeof(int))); + error = close((int *)CMSG_DATA(msghdr.msg_control)); + ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); + + (void)close(putfd); +} + ATF_TP_ADD_TCS(tp) { @@ -633,6 +704,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, rights_creds_payload); ATF_TP_ADD_TC(tp, truncated_rights); ATF_TP_ADD_TC(tp, copyout_rights_error); + ATF_TP_ADD_TC(tp, empty_rights_message); return (atf_no_error()); } From owner-svn-src-head@freebsd.org Tue Oct 8 23:52:05 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5FCC413AC63; Tue, 8 Oct 2019 23:52:05 +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 46nvK11pSnz3C8c; Tue, 8 Oct 2019 23:52:05 +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 22BB8802B; Tue, 8 Oct 2019 23:52:05 +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 x98Nq5pQ070596; Tue, 8 Oct 2019 23:52:05 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98Nq5RD070595; Tue, 8 Oct 2019 23:52:05 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910082352.x98Nq5RD070595@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 8 Oct 2019 23:52:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353333 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 353333 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 23:52:05 -0000 Author: markj Date: Tue Oct 8 23:52:04 2019 New Revision: 353333 URL: https://svnweb.freebsd.org/changeset/base/353333 Log: Fix a bug in r353332 that snuck in with a last-minute adjustment. Reported by: Jenkins MFC with: r353332 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/kern/unix_passfd_test.c Modified: head/tests/sys/kern/unix_passfd_test.c ============================================================================== --- head/tests/sys/kern/unix_passfd_test.c Tue Oct 8 23:35:23 2019 (r353332) +++ head/tests/sys/kern/unix_passfd_test.c Tue Oct 8 23:52:04 2019 (r353333) @@ -659,7 +659,7 @@ ATF_TC_BODY(empty_rights_message, tc) len = recvmsg(fd[1], &msghdr, 0); ATF_REQUIRE_MSG(len == 0, "recvmsg failed: %s", strerror(errno)); ATF_REQUIRE(msghdr.msg_controllen = CMSG_SPACE(sizeof(int))); - error = close((int *)CMSG_DATA(msghdr.msg_control)); + error = close(*(int *)CMSG_DATA(msghdr.msg_control)); ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); /* @@ -685,7 +685,7 @@ ATF_TC_BODY(empty_rights_message, tc) len = recvmsg(fd[1], &msghdr, 0); ATF_REQUIRE_MSG(len == 0, "recvmsg failed: %s", strerror(errno)); ATF_REQUIRE(msghdr.msg_controllen = CMSG_SPACE(sizeof(int))); - error = close((int *)CMSG_DATA(msghdr.msg_control)); + error = close(*(int *)CMSG_DATA(msghdr.msg_control)); ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); (void)close(putfd); From owner-svn-src-head@freebsd.org Wed Oct 9 02:02:23 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5437D13DB75; Wed, 9 Oct 2019 02:02:23 +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 46nyCM1Y0vz3Jjs; Wed, 9 Oct 2019 02:02:23 +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 195389773; Wed, 9 Oct 2019 02:02:23 +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 x9922Mdq046299; Wed, 9 Oct 2019 02:02:22 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9922Mgf046298; Wed, 9 Oct 2019 02:02:22 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <201910090202.x9922Mgf046298@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Wed, 9 Oct 2019 02:02:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353334 - head/lib/libthr/arch/riscv/include X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/lib/libthr/arch/riscv/include X-SVN-Commit-Revision: 353334 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 02:02:23 -0000 Author: mhorne Date: Wed Oct 9 02:02:22 2019 New Revision: 353334 URL: https://svnweb.freebsd.org/changeset/base/353334 Log: RISC-V: Fix an alignment warning in libthr Compiling with clang gives a loss-of-alignment error due the cast to uint8_t *. Since the TLS is always tcb aligned and TP_OFFSET is defined as sizeof(struct tcb) we can guarantee there is no misalignment. Silence the error by moving the offset into the inline assembly. Reviewed by: br MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21926 Modified: head/lib/libthr/arch/riscv/include/pthread_md.h Modified: head/lib/libthr/arch/riscv/include/pthread_md.h ============================================================================== --- head/lib/libthr/arch/riscv/include/pthread_md.h Tue Oct 8 23:52:04 2019 (r353333) +++ head/lib/libthr/arch/riscv/include/pthread_md.h Wed Oct 9 02:02:22 2019 (r353334) @@ -62,7 +62,7 @@ static __inline void _tcb_set(struct tcb *tcb) { - __asm __volatile("mv tp, %0" :: "r"((uint8_t *)tcb + TP_OFFSET)); + __asm __volatile("addi tp, %0, %1" :: "r"(tcb), "I"(TP_OFFSET)); } /* @@ -71,11 +71,11 @@ _tcb_set(struct tcb *tcb) static __inline struct tcb * _tcb_get(void) { - register uint8_t *_tp; + struct tcb *_tcb; - __asm __volatile("mv %0, tp" : "=r"(_tp)); + __asm __volatile("addi %0, tp, %1" : "=r"(_tcb) : "I"(-TP_OFFSET)); - return ((struct tcb *)(_tp - TP_OFFSET)); + return (_tcb); } static __inline struct pthread * From owner-svn-src-head@freebsd.org Wed Oct 9 05:28:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 37EDB141431; Wed, 9 Oct 2019 05:28:12 +0000 (UTC) (envelope-from yuripv@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 46p2mq1scWz3x66; Wed, 9 Oct 2019 05:28:11 +0000 (UTC) (envelope-from yuripv@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 1ED92BAB6; Wed, 9 Oct 2019 05:28:11 +0000 (UTC) (envelope-from yuripv@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x995SAG1065006; Wed, 9 Oct 2019 05:28:10 GMT (envelope-from yuripv@FreeBSD.org) Received: (from yuripv@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x995SAQR065004; Wed, 9 Oct 2019 05:28:10 GMT (envelope-from yuripv@FreeBSD.org) Message-Id: <201910090528.x995SAQR065004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: yuripv set sender to yuripv@FreeBSD.org using -f From: Yuri Pankov Date: Wed, 9 Oct 2019 05:28:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353335 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head X-SVN-Commit-Author: yuripv X-SVN-Commit-Paths: head/usr.sbin/bsdinstall/scripts X-SVN-Commit-Revision: 353335 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 05:28:12 -0000 Author: yuripv Date: Wed Oct 9 05:28:10 2019 New Revision: 353335 URL: https://svnweb.freebsd.org/changeset/base/353335 Log: bsdinstall: fix ESP detection for auto ZFS layout Pass the list of user selected disks from zfsboot to bootconfig so that the latter doesn't rely on ESP autodetection that apparently fails for some cases, e.g. memstick installation with nvme (boot) and sata drives. While here, fix printing of debug messages in bootconfig. Reviewed by: bcran, imp, tsoome Differential Revision: https://reviews.freebsd.org/D21930 Modified: head/usr.sbin/bsdinstall/scripts/bootconfig head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/bootconfig ============================================================================== --- head/usr.sbin/bsdinstall/scripts/bootconfig Wed Oct 9 02:02:22 2019 (r353334) +++ head/usr.sbin/bsdinstall/scripts/bootconfig Wed Oct 9 05:28:10 2019 (r353335) @@ -27,6 +27,9 @@ # # $FreeBSD$ +BSDCFG_SHARE="/usr/share/bsdconfig" +. $BSDCFG_SHARE/common.subr || exit 1 + die() { echo $* exit 1 @@ -47,7 +50,8 @@ if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "i fi if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" = "UEFI" ]; then - UFSBOOT_ESPS=$(cat /tmp/bsdinstall-esps) + UFSBOOT_ESPS=$(cat /tmp/bsdinstall-esps 2>/dev/null) + ZFSBOOT_DISKS=$(cat /tmp/bsdinstall-zfsboot 2>/dev/null) num_esps=0 if [ -n "$ZFSBOOT_DISKS" ]; then @@ -119,20 +123,20 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" fi for esp in $ESPS; do - echo "Formatting /dev/${esp} as FAT32" + f_dprintf "Formatting /dev/${esp} as FAT32" newfs_msdos -F 32 -c 1 -L EFISYS "/dev/$esp" > /dev/null 2>&1 if [ $? -ne 0 ]; then die "Failed to format ESP $esp as FAT32" fi mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) - echo "Mounting ESP /dev/${esp}" + f_dprintf "Mounting ESP /dev/${esp}" mount -t msdosfs "/dev/${esp}" "${mntpt}" if [ $? -ne 0 ]; then die "Failed to mount ESP ${dev} on ${mntpt}" fi - echo "Installing loader.efi onto ESP" + f_dprintf "Installing loader.efi onto ESP" mkdir -p "$mntpt/EFI/freebsd" cp "$BSDINSTALL_CHROOT/boot/loader.efi" "${mntpt}/EFI/freebsd/loader.efi" @@ -142,14 +146,14 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" bootlabel="FreeBSD" fi - echo "Creating UEFI boot entry" + f_dprintf "Creating UEFI boot entry" efibootmgr --create --activate --label "$bootlabel" --loader "${mntpt}/EFI/freebsd/loader.efi" > /dev/null - echo "Unmounting ESP" + f_dprintf "Unmounting ESP" umount "${mntpt}" rmdir "${mntpt}" - echo "Finished configuring /dev/${esp} as ESP" + f_dprintf "Finished configuring /dev/${esp} as ESP" done fi Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Wed Oct 9 02:02:22 2019 (r353334) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Wed Oct 9 05:28:10 2019 (r353335) @@ -1656,6 +1656,9 @@ while :; do zfs_create_boot "$ZFSBOOT_POOL_NAME" \ "$vdev_type" $ZFSBOOT_DISKS || continue + # To be reused by bootconfig + echo "$ZFSBOOT_DISKS" > /tmp/bsdinstall-zfsboot + break # to success ;; ?" $msg_pool_type_disks") From owner-svn-src-head@freebsd.org Wed Oct 9 05:52:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D449141AE4; Wed, 9 Oct 2019 05:52:08 +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 46p3JS1Q66z3y5S; Wed, 9 Oct 2019 05:52:08 +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 13C83C186; Wed, 9 Oct 2019 05:52:08 +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 x995q7bw082298; Wed, 9 Oct 2019 05:52:07 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x995q7dw082297; Wed, 9 Oct 2019 05:52:07 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910090552.x995q7dw082297@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 05:52:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353336 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 353336 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 05:52:08 -0000 Author: glebius Date: Wed Oct 9 05:52:07 2019 New Revision: 353336 URL: https://svnweb.freebsd.org/changeset/base/353336 Log: Revert changes to rip6_bind() from r353292. This function is always called in syscall context, so it must enter epoch itself. This changeset originates from early version of the patch, and somehow slipped to the final version. Reported by: pho Modified: head/sys/netinet6/raw_ip6.c Modified: head/sys/netinet6/raw_ip6.c ============================================================================== --- head/sys/netinet6/raw_ip6.c Wed Oct 9 05:28:10 2019 (r353335) +++ head/sys/netinet6/raw_ip6.c Wed Oct 9 05:52:07 2019 (r353336) @@ -734,12 +734,12 @@ rip6_disconnect(struct socket *so) static int rip6_bind(struct socket *so, struct sockaddr *nam, struct thread *td) { + struct epoch_tracker et; struct inpcb *inp; struct sockaddr_in6 *addr = (struct sockaddr_in6 *)nam; struct ifaddr *ifa = NULL; int error = 0; - NET_EPOCH_ASSERT(); inp = sotoinpcb(so); KASSERT(inp != NULL, ("rip6_bind: inp == NULL")); @@ -752,14 +752,20 @@ rip6_bind(struct socket *so, struct sockaddr *nam, str if ((error = sa6_embedscope(addr, V_ip6_use_defzone)) != 0) return (error); + NET_EPOCH_ENTER(et); if (!IN6_IS_ADDR_UNSPECIFIED(&addr->sin6_addr) && - (ifa = ifa_ifwithaddr((struct sockaddr *)addr)) == NULL) + (ifa = ifa_ifwithaddr((struct sockaddr *)addr)) == NULL) { + NET_EPOCH_EXIT(et); return (EADDRNOTAVAIL); + } if (ifa != NULL && ((struct in6_ifaddr *)ifa)->ia6_flags & (IN6_IFF_ANYCAST|IN6_IFF_NOTREADY| - IN6_IFF_DETACHED|IN6_IFF_DEPRECATED)) + IN6_IFF_DETACHED|IN6_IFF_DEPRECATED)) { + NET_EPOCH_EXIT(et); return (EADDRNOTAVAIL); + } + NET_EPOCH_EXIT(et); INP_INFO_WLOCK(&V_ripcbinfo); INP_WLOCK(inp); inp->in6p_laddr = addr->sin6_addr; From owner-svn-src-head@freebsd.org Wed Oct 9 06:22:53 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B9E451423BB; Wed, 9 Oct 2019 06:22:53 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) (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 46p3zw6btLz413g; Wed, 9 Oct 2019 06:22:52 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pl1-x62f.google.com with SMTP id e5so537272pls.9; Tue, 08 Oct 2019 23:22:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=CBUnWycMM1nM7ognf66PGjfST/hgwxZuAsJShyrg2V8=; b=XZnurm+XIK0EGY4glw3RoNDvL3vUzEhRijgoV1tey3TuA0lori5SAGfwPzFK5AxUiO VSIpwkBiZOPQAD1UiYnLe+ECz+Q8+/DSTOl1+ZqdjIotl8o7Anb/tB9b2ky6d8YnAYDi T/xMscqNwqTbnEjs+7oO2bVDLrTI35WKnxe5kzF+d71i7lpsy2jZW/HJMuZNOclFhr2B GKE8iZmK0+L9sDihryWUzeLtzp0fduRDM3mti5AcgXIrbOdoiYphbhQVErsdbhKLs0U1 HA6ralnpkSwGt3Hi0Ko0NkBwFNdBuThdzVqH/ePCWYaF5jN3VO9vKExZy14AS5i9c54n jTlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=CBUnWycMM1nM7ognf66PGjfST/hgwxZuAsJShyrg2V8=; b=kuHE69JjsthC5M0oQEKic6FgEUVmNEHA1RfVKHI5tjVcJt7e6vzujot+dnorGO0J4U ws/270iwAo+H7Rr8lBnsbtFM1toDEuWUbz5hk67/AL/peH3/78zWSw7Y9f3qYlYXdfBg Me7Pcu9TjoSNSWXBlOG+JmG/Wk6w/IiJYoU17UXM4cGcPz3sBk95Pyrfo0sFnp5oNBwT 7JJaCBJWDr3LKc/Y/46/BY4d/BI60EpltxmP3mVML1WhojQNLOfbT64H9w4ALjdxIKDi X76+KEe+PGox2q0JdNO0RmG26AGip/HdnM6Nbwj/DqJgVVTLtDtTebr5hM6eQnaOpbu4 sWww== X-Gm-Message-State: APjAAAUXA6yc+/qR6blBIVEiC5Ti3RlZv2/hxh1s8RSFQJe5xu1FSz5j FDaqPjjWU7AQgxO3J1/iY9c= X-Google-Smtp-Source: APXvYqzLfY+UHHgmCLnCo9wr7ImNAGMz7zLGphSyAYSF0aipdJdc6cYQ62aMOMFrnzVxvIW/7k6CfA== X-Received: by 2002:a17:902:690c:: with SMTP id j12mr1524129plk.183.1570602170954; Tue, 08 Oct 2019 23:22:50 -0700 (PDT) Received: from [192.168.20.12] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id u194sm1503951pgc.30.2019.10.08.23.22.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Oct 2019 23:22:50 -0700 (PDT) From: "Enji Cooper (yaneurabeya)" Message-Id: Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r353305 - head/tests/sys/kern Date: Tue, 8 Oct 2019 23:22:48 -0700 In-Reply-To: <20191008150438.GE44691@kib.kiev.ua> Cc: Eric van Gyzen , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Konstantin Belousov References: <201910081343.x98Dh5bW006905@repo.freebsd.org> <20191008150438.GE44691@kib.kiev.ua> X-Mailer: Apple Mail (2.3445.104.11) X-Rspamd-Queue-Id: 46p3zw6btLz413g X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=XZnurm+X; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::62f as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-1.50 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MV_CASE(0.50)[]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FREEMAIL_TO(0.00)[gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[228.52.19.73.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; 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)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-9.28), ipnet: 2607:f8b0::/32(-2.53), asn: 15169(-2.14), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[f.2.6.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]; RCVD_TLS_ALL(0.00)[] 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 06:22:53 -0000 > On Oct 8, 2019, at 08:04, Konstantin Belousov = wrote: >=20 > On Tue, Oct 08, 2019 at 01:43:05PM +0000, Eric van Gyzen wrote: >> Author: vangyzen >> Date: Tue Oct 8 13:43:05 2019 >> New Revision: 353305 >> URL: https://svnweb.freebsd.org/changeset/base/353305 >>=20 >> Log: >> Fix problems in the kern_maxfiles__increase test >>=20 >> ATF functions such as ATF_REQUIRE do not work correctly in child = processes. >> Use plain C functions to report errors instead. > There are much more tests that fork and use ATF_ in children. > Look e.g. at most ptrace(2) tests. I beg to disagree: 86 /* 87 * A variant of ATF_REQUIRE that is suitable for use in child 88 * processes. This only works if the parent process is tripped up = by 89 * the early exit and fails some requirement itself. 90 */ 91 #define CHILD_REQUIRE(exp) do { = \ 92 if (!(exp)) = \ 93 child_fail_require(__FILE__, __LINE__, = \ 94 #exp " not met"); = \ 95 } while (0) The issue, in this particular case, and the item that evangyzen was = fixing, was the fact that failures in children can result in very = confusing failures from a parent level. In particular, ATF_CHECK does = not trickle up to parents and ATF_REQUIRE* gets thrown up to parents as = abort()=E2=80=99ed processes. The best way to handle this within the atf-c/atf-c++ framework (with = less boilerplate) is to use these APIs: = atf_utils_fork(..)/atf_utils_wait(..). You will still need to use = `_exit` (instead of exit(..)/assert(..)/ATF_CHECK(..)/ATF_REQUIRE(..), = but it=E2=80=99s a lot less boilerplate than writing it yourself. Again, this is why I was driving towards GoogleTest. Despite the fact = that it=E2=80=99s a C++ framework, there=E2=80=99s a lot less confusing = boilerplate involved and context, since things are executed in = relatively the same context, i.e., setup -> test -> teardown, and = they=E2=80=99re easier to follow. The best way to move forward usability-wise with this (I think) is to = probably alias the ATF_* macros to something more sensible when forking = processes. However, given the amount of complaints I=E2=80=99ve heard = about ATF, I think it=E2=80=99s best not to build upon an unstable = foundation, but instead encourage the use of something more = widely-accepted across the open source community/straightforward use = wise. In this case, googletest. Thanks, -Enji= From owner-svn-src-head@freebsd.org Wed Oct 9 08:01:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 12E97144B57; Wed, 9 Oct 2019 08:01:41 +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 46p69w0SZwz45kg; Wed, 9 Oct 2019 08:01:39 +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 x9981O7x055871 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 9 Oct 2019 11:01:27 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x9981O7x055871 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x9981Ois055870; Wed, 9 Oct 2019 11:01:24 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 9 Oct 2019 11:01:24 +0300 From: Konstantin Belousov To: "Enji Cooper (yaneurabeya)" Cc: Eric van Gyzen , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353305 - head/tests/sys/kern Message-ID: <20191009080124.GI44691@kib.kiev.ua> References: <201910081343.x98Dh5bW006905@repo.freebsd.org> <20191008150438.GE44691@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.12.2 (2019-09-21) 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46p69w0SZwz45kg 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)[]; TO_DN_SOME(0.00)[]; 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]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(0.00)[ip: (-2.69), ipnet: 2001:470::/32(-4.57), asn: 6939(-3.40), 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 08:01:41 -0000 On Tue, Oct 08, 2019 at 11:22:48PM -0700, Enji Cooper (yaneurabeya) wrote: > > > On Oct 8, 2019, at 08:04, Konstantin Belousov wrote: > > > > On Tue, Oct 08, 2019 at 01:43:05PM +0000, Eric van Gyzen wrote: > >> Author: vangyzen > >> Date: Tue Oct 8 13:43:05 2019 > >> New Revision: 353305 > >> URL: https://svnweb.freebsd.org/changeset/base/353305 > >> > >> Log: > >> Fix problems in the kern_maxfiles__increase test > >> > >> ATF functions such as ATF_REQUIRE do not work correctly in child processes. > >> Use plain C functions to report errors instead. > > There are much more tests that fork and use ATF_ in children. > > Look e.g. at most ptrace(2) tests. > > I beg to disagree: > > 86 /* > 87 * A variant of ATF_REQUIRE that is suitable for use in child > 88 * processes. This only works if the parent process is tripped up by > 89 * the early exit and fails some requirement itself. > 90 */ > 91 #define CHILD_REQUIRE(exp) do { \ > 92 if (!(exp)) \ > 93 child_fail_require(__FILE__, __LINE__, \ > 94 #exp " not met"); \ > 95 } while (0) Disagree to what ? How this citation is relevant to my statement that there are tests that use fork and ATF_ in children, I know about ptrace(2) tests at least. > > The issue, in this particular case, and the item that evangyzen was fixing, was the fact that failures in children can result in very confusing failures from a parent level. In particular, ATF_CHECK does not trickle up to parents and ATF_REQUIRE* gets thrown up to parents as abort()’ed processes. > > The best way to handle this within the atf-c/atf-c++ framework (with less boilerplate) is to use these APIs: atf_utils_fork(..)/atf_utils_wait(..). You will still need to use `_exit` (instead of exit(..)/assert(..)/ATF_CHECK(..)/ATF_REQUIRE(..), but it’s a lot less boilerplate than writing it yourself. This is not a way at all. Fork/wait is needed to create the child in controlled matter, sometimes we must even know precisely which syscalls are executed both by parent and child on their path. We need exactly the bare-bone syscalls to create the testing situation. > > Again, this is why I was driving towards GoogleTest. Despite the fact that it’s a C++ framework, there’s a lot less confusing boilerplate involved and context, since things are executed in relatively the same context, i.e., setup -> test -> teardown, and they’re easier to follow. > > The best way to move forward usability-wise with this (I think) is to probably alias the ATF_* macros to something more sensible when forking processes. However, given the amount of complaints I’ve heard about ATF, I think it’s best not to build upon an unstable foundation, but instead encourage the use of something more widely-accepted across the open source community/straightforward use wise. In this case, googletest. Can we have some testing framework where tests can be conveniently debugged, for the start ? From owner-svn-src-head@freebsd.org Wed Oct 9 11:26:38 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2F39A149103; Wed, 9 Oct 2019 11:26:38 +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 46pBkQ18P2z4HTM; Wed, 9 Oct 2019 11:26:38 +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 E09C3FC73; Wed, 9 Oct 2019 11:26:37 +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 x99BQbxp082381; Wed, 9 Oct 2019 11:26:37 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99BQa7A082375; Wed, 9 Oct 2019 11:26:36 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910091126.x99BQa7A082375@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 9 Oct 2019 11:26:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353340 - in head/sys/cddl: compat/opensolaris/kern compat/opensolaris/sys contrib/opensolaris/common/atomic/aarch64 contrib/opensolaris/common/atomic/amd64 contrib/opensolaris/common/a... X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head/sys/cddl: compat/opensolaris/kern compat/opensolaris/sys contrib/opensolaris/common/atomic/aarch64 contrib/opensolaris/common/atomic/amd64 contrib/opensolaris/common/atomic/i386 contrib/openso... X-SVN-Commit-Revision: 353340 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:26:38 -0000 Author: avg Date: Wed Oct 9 11:26:36 2019 New Revision: 353340 URL: https://svnweb.freebsd.org/changeset/base/353340 Log: cleanup of illumos compatibility atomics atomic_cas_32 is implemented using atomic_fcmpset_32 on all platforms. Ditto for atomic_cas_64 and atomic_fcmpset_64 on platforms that have it. The only exception is sparc64 that provides MD atomic_cas_32 and atomic_cas_64. This is slightly inefficient as fcmpset reports whether the operation updated the target and that information is not needed for cas. Nevertheless, there is less code to maintain and to add for new platforms. Also, the operations are done inline now as opposed to function calls before. atomic_add_64_nv is implemented using atomic_fetchadd_64 on platforms that provide it. casptr, cas32, atomic_or_8, atomic_or_8_nv are completely removed as they have no users. atomic_mtx that is used to emulate 64-bit atomics on platforms that lack them is defined only on those platforms. As a result, platform specific opensolaris_atomic.S files have lost most of their code. The only exception is i386 where the compat+contrib code provides 64-bit atomics for userland use. That code assumes availability of cmpxchg8b instruction. FreeBSD does not have that assumption for i386 userland and does not provide 64-bit atomics. Hopefully, this can and will be fixed. MFC after: 3 weeks Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c head/sys/cddl/compat/opensolaris/sys/atomic.h head/sys/cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Wed Oct 9 11:26:36 2019 (r353340) @@ -32,6 +32,9 @@ __FBSDID("$FreeBSD$"); #include #include +#if !defined(__LP64__) && !defined(__mips_n32) && \ + !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) + #ifdef _KERNEL #include @@ -52,8 +55,6 @@ atomic_init(void) } #endif -#if !defined(__LP64__) && !defined(__mips_n32) && \ - !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) void atomic_add_64(volatile uint64_t *target, int64_t delta) { @@ -94,7 +95,6 @@ atomic_load_64(volatile uint64_t *a) mtx_unlock(&atomic_mtx); return (ret); } -#endif uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta) @@ -107,27 +107,6 @@ atomic_add_64_nv(volatile uint64_t *target, int64_t de return (newval); } -#if defined(__powerpc__) || defined(__arm__) || defined(__mips__) -void -atomic_or_8(volatile uint8_t *target, uint8_t value) -{ - mtx_lock(&atomic_mtx); - *target |= value; - mtx_unlock(&atomic_mtx); -} -#endif - -uint8_t -atomic_or_8_nv(volatile uint8_t *target, uint8_t value) -{ - uint8_t newval; - - mtx_lock(&atomic_mtx); - newval = (*target |= value); - mtx_unlock(&atomic_mtx); - return (newval); -} - uint64_t atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval) { @@ -140,19 +119,7 @@ atomic_cas_64(volatile uint64_t *target, uint64_t cmp, mtx_unlock(&atomic_mtx); return (oldval); } - -uint32_t -atomic_cas_32(volatile uint32_t *target, uint32_t cmp, uint32_t newval) -{ - uint32_t oldval; - - mtx_lock(&atomic_mtx); - oldval = *target; - if (oldval == cmp) - *target = newval; - mtx_unlock(&atomic_mtx); - return (oldval); -} +#endif void membar_producer(void) Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Wed Oct 9 11:26:36 2019 (r353340) @@ -32,10 +32,6 @@ #include #include -#define casptr(_a, _b, _c) \ - atomic_cmpset_ptr((volatile uintptr_t *)(_a), (uintptr_t)(_b), (uintptr_t) (_c)) -#define cas32 atomic_cmpset_32 - #if defined(__i386__) && (defined(_KERNEL) || defined(KLD_MODULE)) #define I386_HAVE_ATOMIC64 #endif @@ -46,28 +42,13 @@ extern void atomic_add_64(volatile uint64_t *target, i extern void atomic_dec_64(volatile uint64_t *target); extern uint64_t atomic_swap_64(volatile uint64_t *a, uint64_t value); extern uint64_t atomic_load_64(volatile uint64_t *a); -#endif -#ifndef __sparc64__ -extern uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, - uint32_t newval); +extern uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta); extern uint64_t atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval); #endif -extern uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta); -extern uint8_t atomic_or_8_nv(volatile uint8_t *target, uint8_t value); + extern void membar_producer(void); -#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) || \ - defined(__mips__) || defined(__aarch64__) || defined(__riscv) -extern void atomic_or_8(volatile uint8_t *target, uint8_t value); -#else -static __inline void -atomic_or_8(volatile uint8_t *target, uint8_t value) -{ - atomic_set_8(target, value); -} -#endif - static __inline uint32_t atomic_add_32_nv(volatile uint32_t *target, int32_t delta) { @@ -81,6 +62,18 @@ atomic_add_int_nv(volatile u_int *target, int delta) } static __inline void +atomic_inc_32(volatile uint32_t *target) +{ + atomic_add_32(target, 1); +} + +static __inline uint32_t +atomic_inc_32_nv(volatile uint32_t *target) +{ + return (atomic_add_32_nv(target, 1)); +} + +static __inline void atomic_dec_32(volatile uint32_t *target) { atomic_subtract_32(target, 1); @@ -89,9 +82,18 @@ atomic_dec_32(volatile uint32_t *target) static __inline uint32_t atomic_dec_32_nv(volatile uint32_t *target) { - return (atomic_fetchadd_32(target, -1) - 1); + return (atomic_add_32_nv(target, -1)); } +#ifndef __sparc64__ +static inline uint32_t +atomic_cas_32(volatile uint32_t *target, uint32_t cmp, uint32_t newval) +{ + (void)atomic_fcmpset_32(target, &cmp, newval); + return (cmp); +} +#endif + #if defined(__LP64__) || defined(__mips_n32) || \ defined(ARM_HAVE_ATOMIC64) || defined(I386_HAVE_ATOMIC64) static __inline void @@ -99,19 +101,22 @@ atomic_dec_64(volatile uint64_t *target) { atomic_subtract_64(target, 1); } -#endif -static __inline void -atomic_inc_32(volatile uint32_t *target) +static inline uint64_t +atomic_add_64_nv(volatile uint64_t *target, int64_t delta) { - atomic_add_32(target, 1); + return (atomic_fetchadd_64(target, delta) + delta); } -static __inline uint32_t -atomic_inc_32_nv(volatile uint32_t *target) +#ifndef __sparc64__ +static inline uint64_t +atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval) { - return (atomic_add_32_nv(target, 1)); + (void)atomic_fcmpset_64(target, &cmp, newval); + return (cmp); } +#endif +#endif static __inline void atomic_inc_64(volatile uint64_t *target) Modified: head/sys/cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S Wed Oct 9 11:26:36 2019 (r353340) @@ -28,58 +28,6 @@ #include -/* - * uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta) - */ -ENTRY(atomic_add_64_nv) -1: ldxr x2, [x0] /* Load *target */ - add x2, x2, x1 /* x2 = x2 + delta */ - stxr w3, x2, [x0] /* Store *target */ - cbnz w3, 1b /* Check if the store succeeded */ - mov x0, x2 /* Return the new value */ - ret -END(atomic_add_64_nv) - -/* - * uint32_t - * atomic_cas_32(volatile uint32_t *target, uint32_t cmp, uint32_t newval) - */ -ENTRY(atomic_cas_32) -1: ldxr w3, [x0] /* Load *target */ - cmp w3, w1 /* Does *targe == cmp? */ - b.ne 2f /* If not exit */ - stxr w4, w2, [x0] /* Store newval to *target */ - cbnz w4, 1b /* Check if the store succeeded */ -2: mov w0, w3 /* Return the old value */ - ret -END(atomic_cas_32) - -/* - * uint64_t - * atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval) - */ -ENTRY(atomic_cas_64) -1: ldxr x3, [x0] /* Load *target */ - cmp x3, x1 /* Does *targe == cmp? */ - b.ne 2f /* If not exit */ - stxr w4, x2, [x0] /* Store newval to *target */ - cbnz w4, 1b /* Check if the store succeeded */ -2: mov x0, x3 /* Return the old value */ - ret -END(atomic_cas_64) - -/* - * uint8_t atomic_or_8_nv(volatile uint8_t *target, uint8_t value) - */ -ENTRY(atomic_or_8_nv) -1: ldxrb w2, [x0] /* Load *target */ - orr w2, w2, w1 /* x2 = x2 | delta */ - stxrb w3, w2, [x0] /* Store *target */ - cbnz w3, 1b /* Check if the store succeeded */ - mov w0, w2 /* Return the new value */ - ret -END(atomic_or_8_nv) - ENTRY(membar_producer) dmb ish ret Modified: head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S Wed Oct 9 11:26:36 2019 (r353340) @@ -28,40 +28,6 @@ #define _ASM #include - ENTRY(atomic_add_64_nv) - mov %rsi, %rax // %rax = delta addend - lock - xaddq %rsi, (%rdi) // %rsi = old value, (%rdi) = sum - addq %rsi, %rax // new value = original value + delta - ret - SET_SIZE(atomic_add_64_nv) - - ENTRY(atomic_or_8_nv) - movb (%rdi), %al // %al = old value -1: - movb %sil, %cl - orb %al, %cl // %cl = new value - lock - cmpxchgb %cl, (%rdi) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_or_8_nv) - - ENTRY(atomic_cas_32) - movl %esi, %eax - lock - cmpxchgl %edx, (%rdi) - ret - SET_SIZE(atomic_cas_32) - - ENTRY(atomic_cas_64) - movq %rsi, %rax - lock - cmpxchgq %rdx, (%rdi) - ret - SET_SIZE(atomic_cas_64) - ENTRY(membar_producer) sfence ret Modified: head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Wed Oct 9 11:26:36 2019 (r353340) @@ -89,28 +89,6 @@ SET_SIZE(atomic_add_64_nv) SET_SIZE(atomic_add_64) - ENTRY(atomic_or_8_nv) - movl 4(%esp), %edx // %edx = target address - movb (%edx), %al // %al = old value -1: - movl 8(%esp), %ecx // %ecx = delta - orb %al, %cl // %cl = new value - lock - cmpxchgb %cl, (%edx) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_or_8_nv) - - ENTRY(atomic_cas_32) - movl 4(%esp), %edx - movl 8(%esp), %eax - movl 12(%esp), %ecx - lock - cmpxchgl %ecx, (%edx) - ret - SET_SIZE(atomic_cas_32) - ENTRY(atomic_cas_64) pushl %ebx pushl %esi Modified: head/sys/cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S Wed Oct 9 11:26:36 2019 (r353340) @@ -27,61 +27,6 @@ #include -ENTRY(atomic_add_64_nv) - 1: ldarx %r5,0,%r3 - add %r5,%r4,%r5 - stdcx. %r5,0,%r3 - bne- 1b - - mr %r3,%r5 - blr - -ENTRY(atomic_cas_32) - 1: lwarx %r6,0,%r3 - cmplw %r6,%r4 - bne 2f - stwcx. %r5,0,%r3 - bne- 1b - b 3f - - 2: stwcx. %r6,0,%r3 /* clear reservation */ - - 3: mr %r3,%r6 - blr - -ENTRY(atomic_cas_64) - 1: ldarx %r6,0,%r3 - cmpld %r6,%r4 - bne 2f - stdcx. %r5,0,%r3 - bne- 1b - b 3f - - 2: stdcx. %r6,0,%r3 /* clear reservation */ - - 3: mr %r3,%r6 - blr - -ENTRY(atomic_or_8_nv) - li %r6,3 - andc. %r6,%r3,%r6 /* r6 = r3 & ~4 */ - addi %r7,%r6,3 - sub %r7,%r7,%r3 /* offset in r7 */ - sldi %r7,%r7,3 /* bits to shift in r7 */ - - rlwinm %r4,%r4,0,24,31 /* mask and rotate the argument */ - slw %r4,%r4,%r7 - - 1: lwarx %r5,0,%r6 - or %r5,%r4,%r5 - stwcx. %r5,0,%r6 - bne- 1b - - srw %r3,%r5,%r7 - rlwinm %r3,%r3,0,24,31 /* mask return value */ - - blr - ENTRY(membar_producer) eieio blr Modified: head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S Wed Oct 9 09:50:22 2019 (r353339) +++ head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S Wed Oct 9 11:26:36 2019 (r353340) @@ -40,67 +40,6 @@ #endif /* - * NOTE: If atomic_add_64 and atomic_add_64_nv are ever - * separated, you need to also edit the libc sparcv9 platform - * specific mapfile and remove the NODYNSORT attribute - * from atomic_add_64_nv. - */ - ENTRY(atomic_add_64) - ALTENTRY(atomic_add_64_nv) - ALTENTRY(atomic_add_ptr) - ALTENTRY(atomic_add_ptr_nv) - ALTENTRY(atomic_add_long) - ALTENTRY(atomic_add_long_nv) -add_64: - ldx [%o0], %o2 -1: - add %o2, %o1, %o3 - casxa [%o0] __ASI_ATOMIC, %o2, %o3 - cmp %o2, %o3 - bne,a,pn %xcc, 1b - mov %o3, %o2 - retl - add %o2, %o1, %o0 ! return new value - SET_SIZE(atomic_add_long_nv) - SET_SIZE(atomic_add_long) - SET_SIZE(atomic_add_ptr_nv) - SET_SIZE(atomic_add_ptr) - SET_SIZE(atomic_add_64_nv) - SET_SIZE(atomic_add_64) - - /* - * NOTE: If atomic_or_8 and atomic_or_8_nv are ever - * separated, you need to also edit the libc sparcv9 platform - * specific mapfile and remove the NODYNSORT attribute - * from atomic_or_8_nv. - */ - ENTRY(atomic_or_8) - ALTENTRY(atomic_or_8_nv) - ALTENTRY(atomic_or_uchar) - and %o0, 0x3, %o4 ! %o4 = byte offset, left-to-right - xor %o4, 0x3, %g1 ! %g1 = byte offset, right-to-left - sll %g1, 3, %g1 ! %g1 = bit offset, right-to-left - set 0xff, %o3 ! %o3 = mask - sll %o3, %g1, %o3 ! %o3 = shifted to bit offset - sll %o1, %g1, %o1 ! %o1 = shifted to bit offset - and %o1, %o3, %o1 ! %o1 = single byte value - andn %o0, 0x3, %o0 ! %o0 = word address - ld [%o0], %o2 ! read old value -1: - or %o2, %o1, %o5 ! or in the new value - casa [%o0] __ASI_ATOMIC, %o2, %o5 - cmp %o2, %o5 - bne,a,pn %icc, 1b - mov %o5, %o2 ! %o2 = old value - or %o2, %o1, %o5 - and %o5, %o3, %o5 - retl - srl %o5, %g1, %o0 ! %o0 = new value - SET_SIZE(atomic_or_uchar) - SET_SIZE(atomic_or_8_nv) - SET_SIZE(atomic_or_8) - - /* * Spitfires and Blackbirds have a problem with membars in the * delay slot (SF_ERRATA_51). For safety's sake, we assume * that the whole world needs the workaround. From owner-svn-src-head@freebsd.org Wed Oct 9 11:34:16 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCC3C14933A; Wed, 9 Oct 2019 11:34: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 46pBvD4Ydkz4Htn; Wed, 9 Oct 2019 11:34: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 80EEEFE2B; Wed, 9 Oct 2019 11:34: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 x99BYGJ0088253; Wed, 9 Oct 2019 11:34:16 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99BYG5h088252; Wed, 9 Oct 2019 11:34:16 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910091134.x99BYG5h088252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 9 Oct 2019 11:34:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353341 - head/cddl/contrib/opensolaris/cmd/zpool X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/cmd/zpool X-SVN-Commit-Revision: 353341 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:34:16 -0000 Author: avg Date: Wed Oct 9 11:34:16 2019 New Revision: 353341 URL: https://svnweb.freebsd.org/changeset/base/353341 Log: zfs: document large_dnode feature The text is copied from illumos. The conversion to mdoc is mine. The FreeBSD boot warning is copied from large_block description. MFC after: 4 days Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct 9 11:26:36 2019 (r353340) +++ head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct 9 11:34:16 2019 (r353341) @@ -527,6 +527,36 @@ Please note that booting from datasets that have recor supported by the .Fx boot loader. +.It Sy large_dnode +.Bl -column "READ\-ONLY COMPATIBLE" "org.zfsonlinux:large_dnode" +.It GUID Ta org.zfsonlinux:large_dnode +.It READ\-ONLY COMPATIBLE Ta no +.It DEPENDENCIES Ta extensible_dataset +.El +.Pp +The +.Sy large_dnode +feature allows the size of dnodes in a dataset to be set larger than 512B. +.Pp +This feature becomes +.Sy active +once a dataset contains an object with a dnode larger than 512B, +which occurs as a result of setting the +.Sy dnodesize +dataset property to a value other than +.Sy legacy . +The feature will return to being +.Sy enabled +once all filesystems that have ever contained a dnode larger than 512B are +destroyed. +Large dnodes allow more data to be stored in the bonus buffer, thus potentially +improving performance by avoiding the use of spill blocks. +.Pp +Please note that booting from datasets that have dnodes larger than 512B is +.Em NOT +supported by the +.Fx +boot loader. .It Sy sha512 .Bl -column "READ\-ONLY COMPATIBLE" "org.illumos:sha512" .It GUID Ta org.illumos:sha512 From owner-svn-src-head@freebsd.org Wed Oct 9 11:40:45 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 48B39149494 for ; Wed, 9 Oct 2019 11:40:45 +0000 (UTC) (envelope-from tsoome@me.com) Received: from pv50p00im-tydg10011801.me.com (pv50p00im-tydg10011801.me.com [17.58.6.52]) (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 46pC2h0q3Sz4JFd for ; Wed, 9 Oct 2019 11:40:43 +0000 (UTC) (envelope-from tsoome@me.com) Received: from [192.168.150.41] (148-52-235-80.sta.estpak.ee [80.235.52.148]) by pv50p00im-tydg10011801.me.com (Postfix) with ESMTPSA id BA38A6612A0; Wed, 9 Oct 2019 11:40:40 +0000 (UTC) From: Toomas Soome Message-Id: <06A5D76F-DC1F-4895-A60A-0199468183DD@me.com> Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3594.4.19\)) Subject: Re: svn commit: r353341 - head/cddl/contrib/opensolaris/cmd/zpool Date: Wed, 9 Oct 2019 14:40:37 +0300 In-Reply-To: <201910091134.x99BYG5h088252@repo.freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Andriy Gapon References: <201910091134.x99BYG5h088252@repo.freebsd.org> X-Mailer: Apple Mail (2.3594.4.19) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-10-09_05:, , 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=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1906280000 definitions=main-1910090110 X-Rspamd-Queue-Id: 46pC2h0q3Sz4JFd X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.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)[]; URI_COUNT_ODD(1.00)[3]; 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)[52.6.58.17.list.dnswl.org : 127.0.5.1]; MIME_TRACE(0.00)[0:+,1:+,2:~]; 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)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-5.18), ipnet: 17.58.0.0/20(-3.08), asn: 714(-2.79), 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)[] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:40:45 -0000 > On 9. Oct 2019, at 14:34, Andriy Gapon wrote: >=20 > Author: avg > Date: Wed Oct 9 11:34:16 2019 > New Revision: 353341 > URL: https://svnweb.freebsd.org/changeset/base/353341 >=20 > Log: > zfs: document large_dnode feature >=20 > The text is copied from illumos. > The conversion to mdoc is mine. > The FreeBSD boot warning is copied from large_block description. We do support booting with large_dnode enabled:) r323494 | tsoome | 2017-09-12 16:45:04 +0300 (Tue, 12 Sep 2017) | 7 = lines loader should support large_dnode rgds, toomas >=20 > MFC after: 4 days >=20 > Modified: > head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 >=20 > Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 > = =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/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct = 9 11:26:36 2019 (r353340) > +++ head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct = 9 11:34:16 2019 (r353341) > @@ -527,6 +527,36 @@ Please note that booting from datasets that have = recor > supported by the > .Fx > boot loader. > +.It Sy large_dnode > +.Bl -column "READ\-ONLY COMPATIBLE" "org.zfsonlinux:large_dnode" > +.It GUID Ta org.zfsonlinux:large_dnode > +.It READ\-ONLY COMPATIBLE Ta no > +.It DEPENDENCIES Ta extensible_dataset > +.El > +.Pp > +The > +.Sy large_dnode > +feature allows the size of dnodes in a dataset to be set larger than = 512B. > +.Pp > +This feature becomes > +.Sy active > +once a dataset contains an object with a dnode larger than 512B, > +which occurs as a result of setting the > +.Sy dnodesize > +dataset property to a value other than > +.Sy legacy . > +The feature will return to being > +.Sy enabled > +once all filesystems that have ever contained a dnode larger than = 512B are > +destroyed. > +Large dnodes allow more data to be stored in the bonus buffer, thus = potentially > +improving performance by avoiding the use of spill blocks. > +.Pp > +Please note that booting from datasets that have dnodes larger than = 512B is > +.Em NOT > +supported by the > +.Fx > +boot loader. > .It Sy sha512 > .Bl -column "READ\-ONLY COMPATIBLE" "org.illumos:sha512" > .It GUID Ta org.illumos:sha512 From owner-svn-src-head@freebsd.org Wed Oct 9 11:44:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3C1B14969C; Wed, 9 Oct 2019 11:44:35 +0000 (UTC) (envelope-from agapon@gmail.com) Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) (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 46pC766l4Dz4Jgl; Wed, 9 Oct 2019 11:44:34 +0000 (UTC) (envelope-from agapon@gmail.com) Received: by mail-lj1-f174.google.com with SMTP id a22so2182595ljd.0; Wed, 09 Oct 2019 04:44:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=jC4rVabDECA0w+jl3abgZ5RJKzmYhrA/U1LMXzqN4TQ=; b=Q/uX9s6t0QBLwpPs+kYD+NIPRyiUTDkL9+hPARZi8BwqPhG1T7UvLIRjOB6FzKzXGE zp6LGliWSuRZvPx3vcTdYc7XAhucw5yt4AzKnRvFiYPGr7LZStWeCjKniI8jH1bWullg JhoBUuiTBmdJhXT2MHZE9vRjPgmjI6QgzMupX10C3IhraHq03uB4m4Mc2mOjq1ts60UP LTe2Kup4fS2BIrFRGT3Ec8uPmj0CgOtJaWR45mQNoJuGVeWdyKemjg9PebZwnR7T1+kn Wsjb/llCX5qLEGU946p9+8e0JoxwNqROQIOipF3eMXaYRONoEsZU4HXR4T7mj6OXoyZJ 6OHg== X-Gm-Message-State: APjAAAXS71QBUJ5BxYocnB6YFMBzxUMPzJR/Mu7FF/BEY1Htp5w7Po3e i0t1/KmSfvzxxOm4e8cFDYhgXwQnvmU= X-Google-Smtp-Source: APXvYqwF9OYOsmkFV3g+eMafpUSMuLYROzFFXJsTtJFRUYolxKxDKL1X3+KQcqu3WmeS+Mxi24FKhg== X-Received: by 2002:a05:651c:209:: with SMTP id y9mr1994547ljn.134.1570621472660; Wed, 09 Oct 2019 04:44:32 -0700 (PDT) Received: from [192.168.0.88] (east.meadow.volia.net. [93.72.151.96]) by smtp.googlemail.com with ESMTPSA id d25sm415009lfj.15.2019.10.09.04.44.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Oct 2019 04:44:32 -0700 (PDT) Subject: Re: svn commit: r353341 - head/cddl/contrib/opensolaris/cmd/zpool To: Toomas Soome Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910091134.x99BYG5h088252@repo.freebsd.org> <06A5D76F-DC1F-4895-A60A-0199468183DD@me.com> From: Andriy Gapon Openpgp: preference=signencrypt Autocrypt: addr=avg@FreeBSD.org; prefer-encrypt=mutual; keydata= mQINBFm4LIgBEADNB/3lT7f15UKeQ52xCFQx/GqHkSxEdVyLFZTmY3KyNPQGBtyvVyBfprJ7 mAeXZWfhat6cKNRAGZcL5EmewdQuUfQfBdYmKjbw3a9GFDsDNuhDA2QwFt8BmkiVMRYyvI7l N0eVzszWCUgdc3qqM6qqcgBaqsVmJluwpvwp4ZBXmch5BgDDDb1MPO8AZ2QZfIQmplkj8Y6Z AiNMknkmgaekIINSJX8IzRzKD5WwMsin70psE8dpL/iBsA2cpJGzWMObVTtCxeDKlBCNqM1i gTXta1ukdUT7JgLEFZk9ceYQQMJJtUwzWu1UHfZn0Fs29HTqawfWPSZVbulbrnu5q55R4PlQ /xURkWQUTyDpqUvb4JK371zhepXiXDwrrpnyyZABm3SFLkk2bHlheeKU6Yql4pcmSVym1AS4 dV8y0oHAfdlSCF6tpOPf2+K9nW1CFA8b/tw4oJBTtfZ1kxXOMdyZU5fiG7xb1qDgpQKgHUX8 7Rd2T1UVLVeuhYlXNw2F+a2ucY+cMoqz3LtpksUiBppJhw099gEXehcN2JbUZ2TueJdt1FdS ztnZmsHUXLxrRBtGwqnFL7GSd6snpGIKuuL305iaOGODbb9c7ne1JqBbkw1wh8ci6vvwGlzx rexzimRaBzJxlkjNfMx8WpCvYebGMydNoeEtkWldtjTNVsUAtQARAQABtB5BbmRyaXkgR2Fw b24gPGF2Z0BGcmVlQlNELm9yZz6JAlQEEwEIAD4WIQS+LEO7ngQnXA4Bjr538m7TUc1yjwUC WbgsiAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRB38m7TUc1yj+JAEACV l9AK/nOWAt/9cufV2fRj0hdOqB1aCshtSrwHk/exXsDa4/FkmegxXQGY+3GWX3deIyesbVRL rYdtdK0dqJyT1SBqXK1h3/at9rxr9GQA6KWOxTjUFURsU7ok/6SIlm8uLRPNKO+yq0GDjgaO LzN+xykuBA0FlhQAXJnpZLcVfPJdWv7sSHGedL5ln8P8rxR+XnmsA5TUaaPcbhTB+mG+iKFj GghASDSfGqLWFPBlX/fpXikBDZ1gvOr8nyMY9nXhgfXpq3B6QCRYKPy58ChrZ5weeJZ29b7/ QdEO8NFNWHjSD9meiLdWQaqo9Y7uUxN3wySc/YUZxtS0bhAd8zJdNPsJYG8sXgKjeBQMVGuT eCAJFEYJqbwWvIXMfVWop4+O4xB+z2YE3jAbG/9tB/GSnQdVSj3G8MS80iLS58frnt+RSEw/ psahrfh0dh6SFHttE049xYiC+cM8J27Aaf0i9RflyITq57NuJm+AHJoU9SQUkIF0nc6lfA+o JRiyRlHZHKoRQkIg4aiKaZSWjQYRl5Txl0IZUP1dSWMX4s3XTMurC/pnja45dge/4ESOtJ9R 8XuIWg45Oq6MeIWdjKddGhRj3OohsltKgkEU3eLKYtB6qRTQypHHUawCXz88uYt5e3w4V16H lCpSTZV/EVHnNe45FVBlvK7k7HFfDDkryLkCDQRZuCyIARAAlq0slcsVboY/+IUJdcbEiJRW be9HKVz4SUchq0z9MZPX/0dcnvz/gkyYA+OuM78dNS7Mbby5dTvOqfpLJfCuhaNYOhlE0wY+ 1T6Tf1f4c/uA3U/YiadukQ3+6TJuYGAdRZD5EqYFIkreARTVWg87N9g0fT9BEqLw9lJtEGDY EWUE7L++B8o4uu3LQFEYxcrb4K/WKmgtmFcm77s0IKDrfcX4doV92QTIpLiRxcOmCC/OCYuO jB1oaaqXQzZrCutXRK0L5XN1Y1PYjIrEzHMIXmCDlLYnpFkK+itlXwlE2ZQxkfMruCWdQXye syl2fynAe8hvp7Mms9qU2r2K9EcJiR5N1t1C2/kTKNUhcRv7Yd/vwusK7BqJbhlng5ZgRx0m WxdntU/JLEntz3QBsBsWM9Y9wf2V4tLv6/DuDBta781RsCB/UrU2zNuOEkSixlUiHxw1dccI 6CVlaWkkJBxmHX22GdDFrcjvwMNIbbyfQLuBq6IOh8nvu9vuItup7qemDG3Ms6TVwA7BD3j+ 3fGprtyW8Fd/RR2bW2+LWkMrqHffAr6Y6V3h5kd2G9Q8ZWpEJk+LG6Mk3fhZhmCnHhDu6CwN MeUvxXDVO+fqc3JjFm5OxhmfVeJKrbCEUJyM8ESWLoNHLqjywdZga4Q7P12g8DUQ1mRxYg/L HgZY3zfKOqcAEQEAAYkCPAQYAQgAJhYhBL4sQ7ueBCdcDgGOvnfybtNRzXKPBQJZuCyIAhsM BQkFo5qAAAoJEHfybtNRzXKPBVwQAKfFy9P7N3OsLDMB56A4Kf+ZT+d5cIx0Yiaf4n6w7m3i ImHHHk9FIetI4Xe54a2IXh4Bq5UkAGY0667eIs+Z1Ea6I2i27Sdo7DxGwq09Qnm/Y65ADvXs 3aBvokCcm7FsM1wky395m8xUos1681oV5oxgqeRI8/76qy0hD9WR65UW+HQgZRIcIjSel9vR XDaD2HLGPTTGr7u4v00UeTMs6qvPsa2PJagogrKY8RXdFtXvweQFz78NbXhluwix2Tb9ETPk LIpDrtzV73CaE2aqBG/KrboXT2C67BgFtnk7T7Y7iKq4/XvEdDWscz2wws91BOXuMMd4c/c4 OmGW9m3RBLufFrOag1q5yUS9QbFfyqL6dftJP3Zq/xe+mr7sbWbhPVCQFrH3r26mpmy841ym dwQnNcsbIGiBASBSKksOvIDYKa2Wy8htPmWFTEOPRpFXdGQ27awcjjnB42nngyCK5ukZDHi6 w0qK5DNQQCkiweevCIC6wc3p67jl1EMFY5+z+zdTPb3h7LeVnGqW0qBQl99vVFgzLxchKcl0 R/paSFgwqXCZhAKMuUHncJuynDOP7z5LirUeFI8qsBAJi1rXpQoLJTVcW72swZ42IdPiboqx NbTMiNOiE36GqMcTPfKylCbF45JNX4nF9ElM0E+Y8gi4cizJYBRr2FBJgay0b9Cp Message-ID: <90aebd87-38ca-45b0-6ce1-f401d3590dbd@FreeBSD.org> Date: Wed, 9 Oct 2019 14:44:30 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <06A5D76F-DC1F-4895-A60A-0199468183DD@me.com> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46pC766l4Dz4Jgl X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of agapon@gmail.com designates 209.85.208.174 as permitted sender) smtp.mailfrom=agapon@gmail.com X-Spamd-Result: default: False [-3.18 / 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]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[174.208.85.209.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-1.18)[ip: (-0.46), ipnet: 209.85.128.0/17(-3.26), asn: 15169(-2.14), country: US(-0.05)]; FORGED_SENDER(0.30)[avg@FreeBSD.org,agapon@gmail.com]; FREEMAIL_TO(0.00)[me.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[174.208.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)[avg@FreeBSD.org,agapon@gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[96.151.72.93.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:44:35 -0000 On 09/10/2019 14:40, Toomas Soome wrote: > > >> On 9. Oct 2019, at 14:34, Andriy Gapon > > wrote: >> >> Author: avg >> Date: Wed Oct  9 11:34:16 2019 >> New Revision: 353341 >> URL: https://svnweb.freebsd.org/changeset/base/353341 >> >> Log: >>  zfs: document large_dnode feature >> >>  The text is copied from illumos. >>  The conversion to mdoc is mine. >>  The FreeBSD boot warning is copied from large_block description. > > > We do support booting with large_dnode enabled:) > > r323494 | tsoome | 2017-09-12 16:45:04 +0300 (Tue, 12 Sep 2017) | 7 lines > > loader should support large_dnode Oh, I totally forgot about that and neglected to check the boot code history beyond the move from sys/boot to stand. Thank you! -- Andriy Gapon From owner-svn-src-head@freebsd.org Wed Oct 9 11:46:37 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2520314972D; Wed, 9 Oct 2019 11:46:37 +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 46pC9T09dfz4Jpf; Wed, 9 Oct 2019 11:46:37 +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 D952EFFEB; Wed, 9 Oct 2019 11:46:36 +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 x99Bka1x094199; Wed, 9 Oct 2019 11:46:36 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99BkaSF094198; Wed, 9 Oct 2019 11:46:36 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910091146.x99BkaSF094198@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 9 Oct 2019 11:46:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353342 - head/cddl/contrib/opensolaris/cmd/zpool X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/cmd/zpool X-SVN-Commit-Revision: 353342 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:46:37 -0000 Author: avg Date: Wed Oct 9 11:46:36 2019 New Revision: 353342 URL: https://svnweb.freebsd.org/changeset/base/353342 Log: zfs: remove incorrect warning about boot support for large_dnode Fixes r353341 Reported by: tsoome MFC after: 4 days X-MFC with: r353341 Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct 9 11:34:16 2019 (r353341) +++ head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Wed Oct 9 11:46:36 2019 (r353342) @@ -551,12 +551,6 @@ once all filesystems that have ever contained a dnode destroyed. Large dnodes allow more data to be stored in the bonus buffer, thus potentially improving performance by avoiding the use of spill blocks. -.Pp -Please note that booting from datasets that have dnodes larger than 512B is -.Em NOT -supported by the -.Fx -boot loader. .It Sy sha512 .Bl -column "READ\-ONLY COMPATIBLE" "org.illumos:sha512" .It GUID Ta org.illumos:sha512 From owner-svn-src-head@freebsd.org Wed Oct 9 11:57:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B1699149AB0; Wed, 9 Oct 2019 11:57:46 +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 46pCQL4GGwz4KZr; Wed, 9 Oct 2019 11:57:46 +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 71391181BD; Wed, 9 Oct 2019 11:57:46 +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 x99BvkXu001481; Wed, 9 Oct 2019 11:57:46 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99BvkA7001480; Wed, 9 Oct 2019 11:57:46 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910091157.x99BvkA7001480@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 9 Oct 2019 11:57:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353343 - head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Commit-Revision: 353343 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 11:57:46 -0000 Author: avg Date: Wed Oct 9 11:57:45 2019 New Revision: 353343 URL: https://svnweb.freebsd.org/changeset/base/353343 Log: zfs: remove gratuitous divergence from other openzfs flavours The divergence is a result of a local change in r344601 and a followup fix in r352580 that reverted portions of the earlier change. MFC after: 1 week Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 11:46:36 2019 (r353342) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 11:57:45 2019 (r353343) @@ -1206,7 +1206,6 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) boolean_t isfromsnap, istosnap, fromorigin; boolean_t exclude = B_FALSE; FILE *fout = sdd->std_out ? stdout : stderr; - uint64_t size = 0; err = 0; thissnap = strchr(zhp->zfs_name, '@') + 1; @@ -1282,6 +1281,7 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) (sdd->fromorigin || sdd->replicate); if (sdd->verbose || sdd->progress) { + uint64_t size = 0; char fromds[ZFS_MAX_DATASET_NAME_LEN]; if (sdd->prevsnap[0] != '\0') { From owner-svn-src-head@freebsd.org Wed Oct 9 12:14:11 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B70E14AB08; Wed, 9 Oct 2019 12:14:11 +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 46pCnH1lcwz4M5j; Wed, 9 Oct 2019 12:14:11 +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 1F7B41853E; Wed, 9 Oct 2019 12:14:11 +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 x99CEBHC014169; Wed, 9 Oct 2019 12:14:11 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99CEA5D014168; Wed, 9 Oct 2019 12:14:10 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201910091214.x99CEA5D014168@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Wed, 9 Oct 2019 12:14:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353344 - head/sys/dev/ioat X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/sys/dev/ioat X-SVN-Commit-Revision: 353344 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 12:14:11 -0000 Author: vangyzen Date: Wed Oct 9 12:14:10 2019 New Revision: 353344 URL: https://svnweb.freebsd.org/changeset/base/353344 Log: Add CTLFLAG_STATS to the dev.ioat.N.stats sysctl OIDs Refer to r353111. MFC after: 2 weeks Sponsored by: Dell EMC Isilon Modified: head/sys/dev/ioat/ioat.c Modified: head/sys/dev/ioat/ioat.c ============================================================================== --- head/sys/dev/ioat/ioat.c Wed Oct 9 11:57:45 2019 (r353343) +++ head/sys/dev/ioat/ioat.c Wed Oct 9 12:14:10 2019 (r353344) @@ -1997,23 +1997,23 @@ ioat_setup_sysctl(device_t device) "IOAT channel statistics"); statpar = SYSCTL_CHILDREN(tmp); - SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "interrupts", CTLFLAG_RW, - &ioat->stats.interrupts, + SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "interrupts", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.interrupts, "Number of interrupts processed on this channel"); - SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "descriptors", CTLFLAG_RW, - &ioat->stats.descriptors_processed, + SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "descriptors", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.descriptors_processed, "Number of descriptors processed on this channel"); - SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "submitted", CTLFLAG_RW, - &ioat->stats.descriptors_submitted, + SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "submitted", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.descriptors_submitted, "Number of descriptors submitted to this channel"); - SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "errored", CTLFLAG_RW, - &ioat->stats.descriptors_error, + SYSCTL_ADD_UQUAD(ctx, statpar, OID_AUTO, "errored", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.descriptors_error, "Number of descriptors failed by channel errors"); - SYSCTL_ADD_U32(ctx, statpar, OID_AUTO, "halts", CTLFLAG_RW, - &ioat->stats.channel_halts, 0, + SYSCTL_ADD_U32(ctx, statpar, OID_AUTO, "halts", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.channel_halts, 0, "Number of times the channel has halted"); - SYSCTL_ADD_U32(ctx, statpar, OID_AUTO, "last_halt_chanerr", CTLFLAG_RW, - &ioat->stats.last_halt_chanerr, 0, + SYSCTL_ADD_U32(ctx, statpar, OID_AUTO, "last_halt_chanerr", + CTLFLAG_RW | CTLFLAG_STATS, &ioat->stats.last_halt_chanerr, 0, "The raw CHANERR when the channel was last halted"); SYSCTL_ADD_PROC(ctx, statpar, OID_AUTO, "desc_per_interrupt", From owner-svn-src-head@freebsd.org Wed Oct 9 15:35:22 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF2FC14ED04; Wed, 9 Oct 2019 15:35:22 +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 46pJFQ4yxSz4ZH1; Wed, 9 Oct 2019 15:35:22 +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 8DCFF1A902; Wed, 9 Oct 2019 15:35:22 +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 x99FZMHX038159; Wed, 9 Oct 2019 15:35:22 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99FZMnF038158; Wed, 9 Oct 2019 15:35:22 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910091535.x99FZMnF038158@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 9 Oct 2019 15:35:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353348 - head/lib/libucl X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/lib/libucl X-SVN-Commit-Revision: 353348 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 15:35:22 -0000 Author: gjb Date: Wed Oct 9 15:35:22 2019 New Revision: 353348 URL: https://svnweb.freebsd.org/changeset/base/353348 Log: Connect the libucl(3) manual page to the build. MFC after: 3 days Sponsored by: Rubicon Communications, LLC (Netgate) Modified: head/lib/libucl/Makefile Modified: head/lib/libucl/Makefile ============================================================================== --- head/lib/libucl/Makefile Wed Oct 9 14:35:09 2019 (r353347) +++ head/lib/libucl/Makefile Wed Oct 9 15:35:22 2019 (r353348) @@ -17,7 +17,8 @@ SRCS= ucl_emitter_streamline.c \ ucl_util.c .PATH: ${LIBUCL}/src \ - ${LIBUCL}/include + ${LIBUCL}/include \ + ${LIBUCL}/doc INCS= ucl.h LIBADD= m @@ -27,5 +28,7 @@ CFLAGS+= -I${LIBUCL}/include \ -I${LIBUCL}/src \ -I${LIBUCL}/uthash \ -I${LIBUCL}/klib + +MAN+= libucl.3 .include From owner-svn-src-head@freebsd.org Wed Oct 9 16:21:06 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 10E7414F9BC; Wed, 9 Oct 2019 16:21:06 +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 46pKG96bYcz4ccy; Wed, 9 Oct 2019 16:21:05 +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 C595F1B131; Wed, 9 Oct 2019 16:21:05 +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 x99GL56I063082; Wed, 9 Oct 2019 16:21:05 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99GL5Ul063081; Wed, 9 Oct 2019 16:21:05 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091621.x99GL5Ul063081@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 16:21:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353349 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353349 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 16:21:06 -0000 Author: glebius Date: Wed Oct 9 16:21:05 2019 New Revision: 353349 URL: https://svnweb.freebsd.org/changeset/base/353349 Log: Enter network epoch in domain callouts. Modified: head/sys/kern/uipc_domain.c Modified: head/sys/kern/uipc_domain.c ============================================================================== --- head/sys/kern/uipc_domain.c Wed Oct 9 15:35:22 2019 (r353348) +++ head/sys/kern/uipc_domain.c Wed Oct 9 16:21:05 2019 (r353349) @@ -47,6 +47,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include /* XXXGL: net_epoch should move out there */ +#include /* XXXGL: net_epoch should move out there */ /* * System initialization @@ -499,25 +501,31 @@ pfctlinput2(int cmd, struct sockaddr *sa, void *ctlpar static void pfslowtimo(void *arg) { + struct epoch_tracker et; struct domain *dp; struct protosw *pr; + NET_EPOCH_ENTER(et); for (dp = domains; dp; dp = dp->dom_next) for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) if (pr->pr_slowtimo) (*pr->pr_slowtimo)(); + NET_EPOCH_EXIT(et); callout_reset(&pfslow_callout, hz/2, pfslowtimo, NULL); } static void pffasttimo(void *arg) { + struct epoch_tracker et; struct domain *dp; struct protosw *pr; + NET_EPOCH_ENTER(et); for (dp = domains; dp; dp = dp->dom_next) for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) if (pr->pr_fasttimo) (*pr->pr_fasttimo)(); + NET_EPOCH_EXIT(et); callout_reset(&pffast_callout, hz/5, pffasttimo, NULL); } From owner-svn-src-head@freebsd.org Wed Oct 9 16:21:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13F4114FB48; Wed, 9 Oct 2019 16:21:51 +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 46pKH26qJTz4cnb; Wed, 9 Oct 2019 16:21:50 +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 CE5221B273; Wed, 9 Oct 2019 16:21:50 +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 x99GLomY063856; Wed, 9 Oct 2019 16:21:50 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99GLo5i063855; Wed, 9 Oct 2019 16:21:50 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091621.x99GLo5i063855@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 16:21:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353350 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353350 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 16:21:51 -0000 Author: glebius Date: Wed Oct 9 16:21:50 2019 New Revision: 353350 URL: https://svnweb.freebsd.org/changeset/base/353350 Log: ifnet_byindex_ref() requires network epoch. Modified: head/sys/net/if_mib.c Modified: head/sys/net/if_mib.c ============================================================================== --- head/sys/net/if_mib.c Wed Oct 9 16:21:05 2019 (r353349) +++ head/sys/net/if_mib.c Wed Oct 9 16:21:50 2019 (r353350) @@ -80,6 +80,7 @@ sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XXX bad syntax! u_int namelen = arg2; struct ifnet *ifp; struct ifmibdata ifmd; + struct epoch_tracker et; size_t dlen; char *dbuf; @@ -87,7 +88,9 @@ sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XXX bad syntax! return EINVAL; if (name[0] <= 0) return (ENOENT); + NET_EPOCH_ENTER(et); ifp = ifnet_byindex_ref(name[0]); + NET_EPOCH_EXIT(et); if (ifp == NULL) return (ENOENT); From owner-svn-src-head@freebsd.org Wed Oct 9 16:48:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E487F128001; Wed, 9 Oct 2019 16:48:48 +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 46pKt85hqQz4dwx; Wed, 9 Oct 2019 16:48:48 +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 8E9551B64D; Wed, 9 Oct 2019 16:48:48 +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 x99GmmBk080501; Wed, 9 Oct 2019 16:48:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99GmmWp080500; Wed, 9 Oct 2019 16:48:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910091648.x99GmmWp080500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 9 Oct 2019 16:48:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353353 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353353 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 16:48:49 -0000 Author: hselasky Date: Wed Oct 9 16:48:48 2019 New Revision: 353353 URL: https://svnweb.freebsd.org/changeset/base/353353 Log: Fix locking order reversal in the TCP ratelimit code by moving destructors outside the rsmtx mutex. Witness message: lock order reversal: (sleepable after non-sleepable) 1st tcp_rs_mtx (rsmtx) @ sys/netinet/tcp_ratelimit.c:242 2nd sysctl lock (sysctl lock) @ sys/kern/kern_sysctl.c:607 Backtrace: witness_debugger witness_checkorder _rm_wlock_debug sysctl_ctx_free rs_destroy epoch_call_task gtaskqueue_run_locked gtaskqueue_thread_loop Discussed with: rrs@ Sponsored by: Mellanox Technologies Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Oct 9 16:42:51 2019 (r353352) +++ head/sys/netinet/tcp_ratelimit.c Wed Oct 9 16:48:48 2019 (r353353) @@ -237,34 +237,37 @@ static void rs_destroy(epoch_context_t ctx) { struct tcp_rate_set *rs; + bool do_free_rs; rs = __containerof(ctx, struct tcp_rate_set, rs_epoch_ctx); + mtx_lock(&rs_mtx); rs->rs_flags &= ~RS_FUNERAL_SCHD; - if (rs->rs_flows_using == 0) { - /* - * In theory its possible (but unlikely) - * that while the delete was occuring - * and we were applying the DEAD flag - * someone slipped in and found the - * interface in a lookup. While we - * decided rs_flows_using were 0 and - * scheduling the epoch_call, the other - * thread incremented rs_flow_using. This - * is because users have a pointer and - * we only use the rs_flows_using in an - * atomic fashion, i.e. the other entities - * are not protected. To assure this did - * not occur, we check rs_flows_using here - * before deleteing. - */ + /* + * In theory its possible (but unlikely) + * that while the delete was occuring + * and we were applying the DEAD flag + * someone slipped in and found the + * interface in a lookup. While we + * decided rs_flows_using were 0 and + * scheduling the epoch_call, the other + * thread incremented rs_flow_using. This + * is because users have a pointer and + * we only use the rs_flows_using in an + * atomic fashion, i.e. the other entities + * are not protected. To assure this did + * not occur, we check rs_flows_using here + * before deleting. + */ + do_free_rs = (rs->rs_flows_using == 0); + rs_number_dead--; + mtx_unlock(&rs_mtx); + + if (do_free_rs) { sysctl_ctx_free(&rs->sysctl_ctx); free(rs->rs_rlt, M_TCPPACE); free(rs, M_TCPPACE); - rs_number_dead--; } - mtx_unlock(&rs_mtx); - } #ifdef INET From owner-svn-src-head@freebsd.org Wed Oct 9 16:57:14 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DD8CA1282E1; Wed, 9 Oct 2019 16:57: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 46pL3t5VvDz4fLH; Wed, 9 Oct 2019 16:57: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 9C0601B819; Wed, 9 Oct 2019 16:57: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 x99GvEXl086126; Wed, 9 Oct 2019 16:57:14 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99GvEe2086125; Wed, 9 Oct 2019 16:57:14 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201910091657.x99GvEe2086125@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 9 Oct 2019 16:57:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353354 - 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: 353354 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 16:57:14 -0000 Author: manu Date: Wed Oct 9 16:57:14 2019 New Revision: 353354 URL: https://svnweb.freebsd.org/changeset/base/353354 Log: dwmmc: Reset the dma controller at attach If the bootloader enabled DMA we need to fully reset the DMA controller otherwise we might have some stale data in it that provoke weird behavior. MFC after: 1 week Modified: head/sys/dev/mmc/host/dwmmc.c Modified: head/sys/dev/mmc/host/dwmmc.c ============================================================================== --- head/sys/dev/mmc/host/dwmmc.c Wed Oct 9 16:48:48 2019 (r353353) +++ head/sys/dev/mmc/host/dwmmc.c Wed Oct 9 16:57:14 2019 (r353354) @@ -611,6 +611,7 @@ dwmmc_attach(device_t dev) } if (!sc->use_pio) { + dma_stop(sc); if (dma_setup(sc)) return (ENXIO); From owner-svn-src-head@freebsd.org Wed Oct 9 16:59:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE9BF128434; Wed, 9 Oct 2019 16:59:42 +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 46pL6k5867z4fZ6; Wed, 9 Oct 2019 16:59:42 +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 94FEA1B827; Wed, 9 Oct 2019 16:59:42 +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 x99Gxghh086294; Wed, 9 Oct 2019 16:59:42 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99GxgQ5086293; Wed, 9 Oct 2019 16:59:42 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091659.x99GxgQ5086293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 16:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353355 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353355 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 16:59:42 -0000 Author: glebius Date: Wed Oct 9 16:59:42 2019 New Revision: 353355 URL: https://svnweb.freebsd.org/changeset/base/353355 Log: Cleanup unneeded includes that crept in with r353292. Modified: head/sys/kern/uipc_socket.c Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Wed Oct 9 16:57:14 2019 (r353354) +++ head/sys/kern/uipc_socket.c Wed Oct 9 16:59:42 2019 (r353355) @@ -146,8 +146,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include /* XXXGL: net_epoch should move out there */ -#include /* XXXGL: net_epoch should move out there */ #include From owner-svn-src-head@freebsd.org Wed Oct 9 17:02:28 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF52612883C; Wed, 9 Oct 2019 17:02:28 +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 46pL9w4Z3Zz4g1Y; Wed, 9 Oct 2019 17:02:28 +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 800D01B9D9; Wed, 9 Oct 2019 17:02:28 +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 x99H2Sqd091964; Wed, 9 Oct 2019 17:02:28 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99H2SwW091963; Wed, 9 Oct 2019 17:02:28 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091702.x99H2SwW091963@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 17:02:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353356 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 353356 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:02:28 -0000 Author: glebius Date: Wed Oct 9 17:02:28 2019 New Revision: 353356 URL: https://svnweb.freebsd.org/changeset/base/353356 Log: ip6_output() has a complex set of gotos, and some can jump out of the epoch section towards return statement. Since entering epoch is cheap, it is easier to cover the whole function with epoch, rather than try to properly maintain its state. Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Wed Oct 9 16:59:42 2019 (r353355) +++ head/sys/netinet6/ip6_output.c Wed Oct 9 17:02:28 2019 (r353356) @@ -405,6 +405,8 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, struct m_tag *fwd_tag = NULL; uint32_t id; + NET_EPOCH_ENTER(et); + if (inp != NULL) { INP_LOCK_ASSERT(inp); M_SETFIB(m, inp->inp_inc.inc_fibnum); @@ -587,7 +589,6 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, ro = &opt->ip6po_route; dst = (struct sockaddr_in6 *)&ro->ro_dst; fibnum = (inp != NULL) ? inp->inp_inc.inc_fibnum : M_GETFIB(m); - NET_EPOCH_ENTER(et); again: /* * if specified, try to fill in the traffic class field. From owner-svn-src-head@freebsd.org Wed Oct 9 17:03:21 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 973AE1288ED; Wed, 9 Oct 2019 17:03:21 +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 46pLBx3V1Fz4g8w; Wed, 9 Oct 2019 17:03:21 +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 5B0A61B9E0; Wed, 9 Oct 2019 17:03:21 +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 x99H3Lif092057; Wed, 9 Oct 2019 17:03:21 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99H3KEe092055; Wed, 9 Oct 2019 17:03:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091703.x99H3KEe092055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 17:03:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353357 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353357 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:03:21 -0000 Author: glebius Date: Wed Oct 9 17:03:20 2019 New Revision: 353357 URL: https://svnweb.freebsd.org/changeset/base/353357 Log: Revert most of the multicast changes from r353292. This needs a more accurate approach. Modified: head/sys/netinet/in_mcast.c head/sys/netinet/ip_output.c Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Wed Oct 9 17:02:28 2019 (r353356) +++ head/sys/netinet/in_mcast.c Wed Oct 9 17:03:20 2019 (r353357) @@ -388,12 +388,14 @@ inm_lookup_locked(struct ifnet *ifp, const struct in_a struct in_multi * inm_lookup(struct ifnet *ifp, const struct in_addr ina) { + struct epoch_tracker et; struct in_multi *inm; IN_MULTI_LIST_LOCK_ASSERT(); - NET_EPOCH_ASSERT(); + NET_EPOCH_ENTER(et); inm = inm_lookup_locked(ifp, ina); + NET_EPOCH_EXIT(et); return (inm); } @@ -1198,13 +1200,10 @@ int in_joingroup(struct ifnet *ifp, const struct in_addr *gina, /*const*/ struct in_mfilter *imf, struct in_multi **pinm) { - struct epoch_tracker et; int error; IN_MULTI_LOCK(); - NET_EPOCH_ENTER(et); error = in_joingroup_locked(ifp, gina, imf, pinm); - NET_EPOCH_EXIT(et); IN_MULTI_UNLOCK(); return (error); @@ -1227,7 +1226,6 @@ in_joingroup_locked(struct ifnet *ifp, const struct in struct in_multi *inm; int error; - NET_EPOCH_ASSERT(); IN_MULTI_LOCK_ASSERT(); IN_MULTI_LIST_UNLOCK_ASSERT(); @@ -1285,14 +1283,11 @@ in_joingroup_locked(struct ifnet *ifp, const struct in int in_leavegroup(struct in_multi *inm, /*const*/ struct in_mfilter *imf) { - struct epoch_tracker et; int error; - NET_EPOCH_ENTER(et); IN_MULTI_LOCK(); error = in_leavegroup_locked(inm, imf); IN_MULTI_UNLOCK(); - NET_EPOCH_EXIT(et); return (error); } @@ -1316,7 +1311,6 @@ in_leavegroup_locked(struct in_multi *inm, /*const*/ s struct in_mfilter timf; int error; - NET_EPOCH_ASSERT(); IN_MULTI_LOCK_ASSERT(); IN_MULTI_LIST_UNLOCK_ASSERT(); @@ -1818,11 +1812,15 @@ inp_getmoptions(struct inpcb *inp, struct sockopt *sop if (!in_nullhost(imo->imo_multicast_addr)) { mreqn.imr_address = imo->imo_multicast_addr; } else if (ifp != NULL) { + struct epoch_tracker et; + mreqn.imr_ifindex = ifp->if_index; + NET_EPOCH_ENTER(et); IFP_TO_IA(ifp, ia, &in_ifa_tracker); if (ia != NULL) mreqn.imr_address = IA_SIN(ia)->sin_addr; + NET_EPOCH_EXIT(et); } } INP_WUNLOCK(inp); Modified: head/sys/netinet/ip_output.c ============================================================================== --- head/sys/netinet/ip_output.c Wed Oct 9 17:02:28 2019 (r353356) +++ head/sys/netinet/ip_output.c Wed Oct 9 17:03:20 2019 (r353357) @@ -1079,7 +1079,6 @@ int ip_ctloutput(struct socket *so, struct sockopt *sopt) { struct inpcb *inp = sotoinpcb(so); - struct epoch_tracker et; int error, optval; #ifdef RSS uint32_t rss_bucket; @@ -1518,9 +1517,7 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_MULTICAST_TTL: case IP_MULTICAST_LOOP: case IP_MSFILTER: - NET_EPOCH_ENTER(et); error = inp_getmoptions(inp, sopt); - NET_EPOCH_EXIT(et); break; #if defined(IPSEC) || defined(IPSEC_SUPPORT) From owner-svn-src-head@freebsd.org Wed Oct 9 17:07:04 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F1321128A92; Wed, 9 Oct 2019 17:07:04 +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 46pLHD6VFSz4gKC; Wed, 9 Oct 2019 17:07:04 +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 BBB6A1B9E1; Wed, 9 Oct 2019 17:07:04 +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 x99H74u5092371; Wed, 9 Oct 2019 17:07:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99H72Qi092361; Wed, 9 Oct 2019 17:07:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201910091707.x99H72Qi092361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 9 Oct 2019 17:07:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353358 - in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/com... X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtins/aar... X-SVN-Commit-Revision: 353358 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:07:05 -0000 Author: dim Date: Wed Oct 9 17:06:56 2019 New Revision: 353358 URL: https://svnweb.freebsd.org/changeset/base/353358 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316. Release notes for llvm, clang, lld and libc++ 9.0.0 are available here: https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html PR: 240629 MFC after: 1 month Added: head/contrib/compiler-rt/FREEBSD-Xlist - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/FREEBSD-Xlist head/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S head/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h head/contrib/compiler-rt/lib/cfi/cfi.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/cfi/cfi.cpp head/contrib/compiler-rt/lib/crt/ - copied from r353352, projects/clang900-import/contrib/compiler-rt/lib/crt/ head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h head/contrib/compiler-rt/lib/fuzzer/utils/ - copied from r353352, projects/clang900-import/contrib/compiler-rt/lib/fuzzer/utils/ head/contrib/compiler-rt/lib/gwp_asan/ - copied from r353352, projects/clang900-import/contrib/compiler-rt/lib/gwp_asan/ head/contrib/compiler-rt/lib/hwasan/hwasan.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c head/contrib/compiler-rt/lib/safestack/safestack_platform.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/safestack/safestack_platform.h head/contrib/compiler-rt/lib/safestack/safestack_util.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/safestack/safestack_util.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc head/contrib/compiler-rt/lib/scudo/standalone/ - copied from r353352, projects/clang900-import/contrib/compiler-rt/lib/scudo/standalone/ head/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc head/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc - copied unchanged from r353352, projects/clang900-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc head/contrib/libc++/FREEBSD-Xlist - copied unchanged from r353352, projects/clang900-import/contrib/libc++/FREEBSD-Xlist head/contrib/libc++/include/fenv.h - copied unchanged from r353352, projects/clang900-import/contrib/libc++/include/fenv.h head/contrib/libc++/src/CMakeLists.txt - copied unchanged from r353352, projects/clang900-import/contrib/libc++/src/CMakeLists.txt head/contrib/libc++/src/condition_variable_destructor.cpp - copied unchanged from r353352, projects/clang900-import/contrib/libc++/src/condition_variable_destructor.cpp head/contrib/libc++/src/mutex_destructor.cpp - copied unchanged from r353352, projects/clang900-import/contrib/libc++/src/mutex_destructor.cpp head/contrib/libc++/src/support/runtime/stdexcept_default.ipp - copied unchanged from r353352, projects/clang900-import/contrib/libc++/src/support/runtime/stdexcept_default.ipp head/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp - copied unchanged from r353352, projects/clang900-import/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp head/contrib/libunwind/FREEBSD-Xlist - copied unchanged from r353352, projects/clang900-import/contrib/libunwind/FREEBSD-Xlist head/contrib/llvm/include/llvm-c/Remarks.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm-c/Remarks.h head/contrib/llvm/include/llvm/ADT/fallible_iterator.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/ADT/fallible_iterator.h head/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h head/contrib/llvm/include/llvm/Analysis/VecFuncs.def - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Analysis/VecFuncs.def head/contrib/llvm/include/llvm/BinaryFormat/Minidump.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/BinaryFormat/Minidump.h head/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def head/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h head/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h head/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h head/contrib/llvm/include/llvm/Bitstream/ - copied from r353352, projects/clang900-import/contrib/llvm/include/llvm/Bitstream/ head/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h head/contrib/llvm/include/llvm/CodeGen/Register.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/CodeGen/Register.h head/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h head/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h head/contrib/llvm/include/llvm/DebugInfo/GSYM/ - copied from r353352, projects/clang900-import/contrib/llvm/include/llvm/DebugInfo/GSYM/ head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h head/contrib/llvm/include/llvm/Demangle/DemangleConfig.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Demangle/DemangleConfig.h head/contrib/llvm/include/llvm/Demangle/README.txt - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Demangle/README.txt head/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ - copied from r353352, projects/clang900-import/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h head/contrib/llvm/include/llvm/IR/RemarkStreamer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/IR/RemarkStreamer.h head/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h head/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h head/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h head/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h head/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h head/contrib/llvm/include/llvm/Object/Minidump.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Object/Minidump.h head/contrib/llvm/include/llvm/Object/RelocationResolver.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Object/RelocationResolver.h head/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h head/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h head/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h head/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h head/contrib/llvm/include/llvm/Remarks/ - copied from r353352, projects/clang900-import/contrib/llvm/include/llvm/Remarks/ head/contrib/llvm/include/llvm/Support/CRC.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/CRC.h head/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h head/contrib/llvm/include/llvm/Support/SMTAPI.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/SMTAPI.h head/contrib/llvm/include/llvm/Support/ScalableSize.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/ScalableSize.h head/contrib/llvm/include/llvm/Support/Signposts.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/Signposts.h head/contrib/llvm/include/llvm/Support/TimeProfiler.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Support/TimeProfiler.h head/contrib/llvm/include/llvm/Testing/Support/Annotations.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Testing/Support/Annotations.h head/contrib/llvm/include/llvm/TextAPI/MachO/ - copied from r353352, projects/clang900-import/contrib/llvm/include/llvm/TextAPI/MachO/ head/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h head/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h head/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h head/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h head/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp head/contrib/llvm/lib/BinaryFormat/Minidump.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/BinaryFormat/Minidump.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp head/contrib/llvm/lib/Bitstream/ - copied from r353352, projects/clang900-import/contrib/llvm/lib/Bitstream/ head/contrib/llvm/lib/CodeGen/FinalizeISel.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/CodeGen/FinalizeISel.cpp head/contrib/llvm/lib/CodeGen/HardwareLoops.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/CodeGen/HardwareLoops.cpp head/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp head/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp head/contrib/llvm/lib/DebugInfo/GSYM/ - copied from r353352, projects/clang900-import/contrib/llvm/lib/DebugInfo/GSYM/ head/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp head/contrib/llvm/lib/Demangle/Demangle.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Demangle/Demangle.cpp head/contrib/llvm/lib/ExecutionEngine/JITLink/ - copied from r353352, projects/clang900-import/contrib/llvm/lib/ExecutionEngine/JITLink/ head/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp head/contrib/llvm/lib/IR/AbstractCallSite.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/IR/AbstractCallSite.cpp head/contrib/llvm/lib/IR/RemarkStreamer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/IR/RemarkStreamer.cpp head/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp head/contrib/llvm/lib/MC/MCSectionXCOFF.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MC/MCSectionXCOFF.cpp head/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp head/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp head/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp head/contrib/llvm/lib/Object/Minidump.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Object/Minidump.cpp head/contrib/llvm/lib/Object/RelocationResolver.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Object/RelocationResolver.cpp head/contrib/llvm/lib/Object/WindowsMachineFlag.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Object/WindowsMachineFlag.cpp head/contrib/llvm/lib/Object/XCOFFObjectFile.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Object/XCOFFObjectFile.cpp head/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp head/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp head/contrib/llvm/lib/Remarks/ - copied from r353352, projects/clang900-import/contrib/llvm/lib/Remarks/ head/contrib/llvm/lib/Support/CRC.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Support/CRC.cpp head/contrib/llvm/lib/Support/Optional.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Support/Optional.cpp head/contrib/llvm/lib/Support/Signposts.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Support/Signposts.cpp head/contrib/llvm/lib/Support/TimeProfiler.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Support/TimeProfiler.cpp head/contrib/llvm/lib/Support/Z3Solver.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Support/Z3Solver.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h head/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h head/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h head/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp head/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp head/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h head/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h head/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h head/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td head/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp head/contrib/llvm/lib/Target/ARM/ARMPredicates.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMPredicates.td head/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h head/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h head/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp head/contrib/llvm/lib/Target/BPF/BPFCORE.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/BPFCORE.h head/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h head/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc head/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h head/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h head/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h head/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h head/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h head/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h head/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h head/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td head/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h head/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h head/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h head/contrib/llvm/lib/Testing/Support/Annotations.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Testing/Support/Annotations.cpp head/contrib/llvm/lib/TextAPI/MachO/ - copied from r353352, projects/clang900-import/contrib/llvm/lib/TextAPI/MachO/ head/contrib/llvm/lib/Transforms/IPO/Attributor.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/IPO/Attributor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp head/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp head/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h head/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h head/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h head/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h head/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h head/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h head/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ head/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h head/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h head/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h head/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h head/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ head/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp head/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp head/contrib/llvm/tools/clang/lib/Analysis/plugins/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Analysis/plugins/ head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h head/contrib/llvm/tools/clang/lib/DirectoryWatcher/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/DirectoryWatcher/ head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h head/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp head/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h head/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h head/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h head/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ head/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h head/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp head/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td head/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp head/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp head/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ head/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp head/contrib/llvm/tools/clang/lib/Tooling/Syntax/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/clang/lib/Tooling/Syntax/ head/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp head/contrib/llvm/tools/lld/COFF/DebugTypes.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/COFF/DebugTypes.cpp head/contrib/llvm/tools/lld/COFF/DebugTypes.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/COFF/DebugTypes.h head/contrib/llvm/tools/lld/COFF/TypeMerger.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/COFF/TypeMerger.h head/contrib/llvm/tools/lld/Common/Filesystem.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/Common/Filesystem.cpp head/contrib/llvm/tools/lld/docs/Partitions.rst - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/docs/Partitions.rst head/contrib/llvm/tools/lld/docs/partitions.dot - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/docs/partitions.dot head/contrib/llvm/tools/lld/docs/partitions.svg - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/docs/partitions.svg head/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h head/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h head/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h head/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h head/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h head/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp head/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h head/contrib/llvm/tools/lldb/source/API/Utils.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/API/Utils.h head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp head/contrib/llvm/tools/lldb/source/Commands/Options.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Commands/Options.td head/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td head/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp head/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h head/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp head/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp head/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp head/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp head/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp head/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp head/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp head/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp head/contrib/llvm/tools/lldb/tools/lldb-instr/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/lldb/tools/lldb-instr/ head/contrib/llvm/tools/lldb/utils/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/lldb/utils/ head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h head/contrib/llvm/tools/llvm-objcopy/MachO/ - copied from r353352, projects/clang900-import/contrib/llvm/tools/llvm-objcopy/MachO/ head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h head/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp - copied unchanged from r353352, projects/clang900-import/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp head/contrib/openmp/FREEBSD-Xlist - copied unchanged from r353352, projects/clang900-import/contrib/openmp/FREEBSD-Xlist head/contrib/openmp/runtime/src/include/omp-tools.h.var - copied unchanged from r353352, projects/clang900-import/contrib/openmp/runtime/src/include/omp-tools.h.var head/contrib/openmp/runtime/src/include/omp.h.var - copied unchanged from r353352, projects/clang900-import/contrib/openmp/runtime/src/include/omp.h.var head/contrib/openmp/runtime/src/include/omp_lib.f.var - copied unchanged from r353352, projects/clang900-import/contrib/openmp/runtime/src/include/omp_lib.f.var head/contrib/openmp/runtime/src/include/omp_lib.f90.var - copied unchanged from r353352, projects/clang900-import/contrib/openmp/runtime/src/include/omp_lib.f90.var head/contrib/openmp/runtime/src/include/omp_lib.h.var - copied unchanged from r353352, projects/clang900-import/contrib/openmp/runtime/src/include/omp_lib.h.var head/lib/clang/include/VCSVersion.inc - copied unchanged from r353352, projects/clang900-import/lib/clang/include/VCSVersion.inc head/lib/libclang_rt/cfi/ - copied from r353352, projects/clang900-import/lib/libclang_rt/cfi/ head/lib/libclang_rt/cfi_diag/ - copied from r353352, projects/clang900-import/lib/libclang_rt/cfi_diag/ head/lib/libclang_rt/dd/ - copied from r353352, projects/clang900-import/lib/libclang_rt/dd/ head/lib/libclang_rt/xray/ - copied from r353352, projects/clang900-import/lib/libclang_rt/xray/ head/lib/libclang_rt/xray-basic/ - copied from r353352, projects/clang900-import/lib/libclang_rt/xray-basic/ head/lib/libclang_rt/xray-fdr/ - copied from r353352, projects/clang900-import/lib/libclang_rt/xray-fdr/ head/lib/libclang_rt/xray-profiling/ - copied from r353352, projects/clang900-import/lib/libclang_rt/xray-profiling/ head/usr.bin/clang/lldb-tblgen/ - copied from r353352, projects/clang900-import/usr.bin/clang/lldb-tblgen/ Deleted: head/contrib/compiler-rt/include/sanitizer/esan_interface.h head/contrib/compiler-rt/lib/cfi/cfi.cc head/contrib/compiler-rt/lib/esan/ head/contrib/compiler-rt/lib/fuzzer/FuzzerShmem.h head/contrib/compiler-rt/lib/fuzzer/FuzzerShmemFuchsia.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerShmemPosix.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerShmemWindows.cpp head/contrib/compiler-rt/lib/hwasan/hwasan.cc head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc head/contrib/compiler-rt/lib/hwasan/hwasan_report.cc head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc head/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S head/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_mips64.S head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_x86_64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc head/contrib/libc++/include/experimental/any head/contrib/libc++/include/experimental/chrono head/contrib/libc++/include/experimental/numeric head/contrib/libc++/include/experimental/optional head/contrib/libc++/include/experimental/ratio head/contrib/libc++/include/experimental/string_view head/contrib/libc++/include/experimental/system_error head/contrib/libc++/include/experimental/tuple head/contrib/llvm/include/llvm-c/OptRemarks.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h head/contrib/llvm/include/llvm/Bitcode/BitCodes.h head/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h head/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h head/contrib/llvm/include/llvm/Demangle/Compiler.h head/contrib/llvm/include/llvm/IR/DomTreeUpdater.h head/contrib/llvm/include/llvm/Object/RelocVisitor.h head/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp head/contrib/llvm/lib/Bitcode/Reader/BitstreamReader.cpp head/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.h head/contrib/llvm/lib/IR/DomTreeUpdater.cpp head/contrib/llvm/lib/OptRemarks/ head/contrib/llvm/lib/Target/AArch64/InstPrinter/ head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/ head/contrib/llvm/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp head/contrib/llvm/lib/Target/AMDGPU/SIIntrinsics.td head/contrib/llvm/lib/Target/ARC/InstPrinter/ head/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp head/contrib/llvm/lib/Target/ARM/ARMScheduleM3.td head/contrib/llvm/lib/Target/ARM/InstPrinter/ head/contrib/llvm/lib/Target/ARM/LICENSE.TXT head/contrib/llvm/lib/Target/AVR/InstPrinter/ head/contrib/llvm/lib/Target/BPF/InstPrinter/ head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h head/contrib/llvm/lib/Target/Lanai/InstPrinter/ head/contrib/llvm/lib/Target/MSP430/InstPrinter/ head/contrib/llvm/lib/Target/Mips/InstPrinter/ head/contrib/llvm/lib/Target/NVPTX/InstPrinter/ head/contrib/llvm/lib/Target/PowerPC/InstPrinter/ head/contrib/llvm/lib/Target/RISCV/InstPrinter/ head/contrib/llvm/lib/Target/Sparc/InstPrinter/ head/contrib/llvm/lib/Target/SystemZ/InstPrinter/ head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h head/contrib/llvm/lib/Target/X86/InstPrinter/ head/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp head/contrib/llvm/lib/Target/XCore/InstPrinter/ head/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp head/contrib/llvm/tools/clang/include/clang/Basic/MemoryBufferCache.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h head/contrib/llvm/tools/clang/lib/Basic/MemoryBufferCache.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp head/contrib/llvm/tools/lld/ELF/Bits.h head/contrib/llvm/tools/lld/ELF/Filesystem.cpp head/contrib/llvm/tools/lld/ELF/Filesystem.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h head/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRDynamicChecks.h head/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h head/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h head/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.h head/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/FileAction.cpp head/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp head/contrib/openmp/runtime/src/include/30/ head/contrib/openmp/runtime/src/include/40/ head/contrib/openmp/runtime/src/include/45/ head/contrib/openmp/runtime/src/include/50/ head/lib/libc++fs/ Modified: head/Makefile.inc1 head/ObsoleteFiles.inc head/UPDATING head/contrib/compiler-rt/LICENSE.TXT head/contrib/compiler-rt/include/sanitizer/allocator_interface.h head/contrib/compiler-rt/include/sanitizer/asan_interface.h head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h head/contrib/compiler-rt/include/sanitizer/coverage_interface.h head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h head/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h head/contrib/compiler-rt/include/sanitizer/lsan_interface.h head/contrib/compiler-rt/include/sanitizer/msan_interface.h head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h head/contrib/compiler-rt/include/sanitizer/scudo_interface.h head/contrib/compiler-rt/include/sanitizer/tsan_interface.h head/contrib/compiler-rt/include/sanitizer/tsan_interface_atomic.h head/contrib/compiler-rt/include/xray/xray_interface.h head/contrib/compiler-rt/include/xray/xray_log_interface.h head/contrib/compiler-rt/include/xray/xray_records.h head/contrib/compiler-rt/lib/asan/asan_activation.cc head/contrib/compiler-rt/lib/asan/asan_activation.h head/contrib/compiler-rt/lib/asan/asan_activation_flags.inc head/contrib/compiler-rt/lib/asan/asan_allocator.cc head/contrib/compiler-rt/lib/asan/asan_allocator.h head/contrib/compiler-rt/lib/asan/asan_debugging.cc head/contrib/compiler-rt/lib/asan/asan_descriptions.cc head/contrib/compiler-rt/lib/asan/asan_descriptions.h head/contrib/compiler-rt/lib/asan/asan_errors.cc head/contrib/compiler-rt/lib/asan/asan_errors.h head/contrib/compiler-rt/lib/asan/asan_fake_stack.cc head/contrib/compiler-rt/lib/asan/asan_fake_stack.h head/contrib/compiler-rt/lib/asan/asan_flags.cc head/contrib/compiler-rt/lib/asan/asan_flags.h head/contrib/compiler-rt/lib/asan/asan_flags.inc head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc head/contrib/compiler-rt/lib/asan/asan_globals.cc head/contrib/compiler-rt/lib/asan/asan_globals_win.cc head/contrib/compiler-rt/lib/asan/asan_init_version.h head/contrib/compiler-rt/lib/asan/asan_interceptors.cc head/contrib/compiler-rt/lib/asan/asan_interceptors.h head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h head/contrib/compiler-rt/lib/asan/asan_interface.inc head/contrib/compiler-rt/lib/asan/asan_interface_internal.h head/contrib/compiler-rt/lib/asan/asan_internal.h head/contrib/compiler-rt/lib/asan/asan_linux.cc head/contrib/compiler-rt/lib/asan/asan_mac.cc head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc head/contrib/compiler-rt/lib/asan/asan_malloc_local.h head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc head/contrib/compiler-rt/lib/asan/asan_malloc_win.cc head/contrib/compiler-rt/lib/asan/asan_mapping.h head/contrib/compiler-rt/lib/asan/asan_mapping_myriad.h head/contrib/compiler-rt/lib/asan/asan_memory_profile.cc head/contrib/compiler-rt/lib/asan/asan_new_delete.cc head/contrib/compiler-rt/lib/asan/asan_poisoning.cc head/contrib/compiler-rt/lib/asan/asan_poisoning.h head/contrib/compiler-rt/lib/asan/asan_posix.cc head/contrib/compiler-rt/lib/asan/asan_preinit.cc head/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc head/contrib/compiler-rt/lib/asan/asan_premap_shadow.h head/contrib/compiler-rt/lib/asan/asan_report.cc head/contrib/compiler-rt/lib/asan/asan_report.h head/contrib/compiler-rt/lib/asan/asan_rtems.cc head/contrib/compiler-rt/lib/asan/asan_rtl.cc head/contrib/compiler-rt/lib/asan/asan_scariness_score.h head/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc head/contrib/compiler-rt/lib/asan/asan_stack.cc head/contrib/compiler-rt/lib/asan/asan_stack.h head/contrib/compiler-rt/lib/asan/asan_stats.cc head/contrib/compiler-rt/lib/asan/asan_stats.h head/contrib/compiler-rt/lib/asan/asan_suppressions.cc head/contrib/compiler-rt/lib/asan/asan_suppressions.h head/contrib/compiler-rt/lib/asan/asan_thread.cc head/contrib/compiler-rt/lib/asan/asan_thread.h head/contrib/compiler-rt/lib/asan/asan_win.cc head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc head/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc head/contrib/compiler-rt/lib/asan/asan_win_weak_interception.cc head/contrib/compiler-rt/lib/builtins/aarch64/chkstk.S head/contrib/compiler-rt/lib/builtins/absvdi2.c head/contrib/compiler-rt/lib/builtins/absvsi2.c head/contrib/compiler-rt/lib/builtins/absvti2.c head/contrib/compiler-rt/lib/builtins/adddf3.c head/contrib/compiler-rt/lib/builtins/addsf3.c head/contrib/compiler-rt/lib/builtins/addtf3.c head/contrib/compiler-rt/lib/builtins/addvdi3.c head/contrib/compiler-rt/lib/builtins/addvsi3.c head/contrib/compiler-rt/lib/builtins/addvti3.c head/contrib/compiler-rt/lib/builtins/apple_versioning.c head/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/addsf3.S head/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_dcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_div0.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S head/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S head/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S head/contrib/compiler-rt/lib/builtins/arm/chkstk.S head/contrib/compiler-rt/lib/builtins/arm/clzdi2.S head/contrib/compiler-rt/lib/builtins/arm/clzsi2.S head/contrib/compiler-rt/lib/builtins/arm/comparesf2.S head/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S head/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/divsi3.S head/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S head/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S head/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S head/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S head/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S head/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S head/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S head/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S head/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/modsi3.S head/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S head/contrib/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S head/contrib/compiler-rt/lib/builtins/arm/softfloat-alias.list head/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S head/contrib/compiler-rt/lib/builtins/arm/switch16.S head/contrib/compiler-rt/lib/builtins/arm/switch32.S head/contrib/compiler-rt/lib/builtins/arm/switch8.S head/contrib/compiler-rt/lib/builtins/arm/switchu8.S head/contrib/compiler-rt/lib/builtins/arm/sync-ops.h head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S head/contrib/compiler-rt/lib/builtins/arm/sync_synchronize.S head/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S head/contrib/compiler-rt/lib/builtins/arm/udivsi3.S head/contrib/compiler-rt/lib/builtins/arm/umodsi3.S head/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S head/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S head/contrib/compiler-rt/lib/builtins/ashldi3.c head/contrib/compiler-rt/lib/builtins/ashlti3.c head/contrib/compiler-rt/lib/builtins/ashrdi3.c head/contrib/compiler-rt/lib/builtins/ashrti3.c head/contrib/compiler-rt/lib/builtins/assembly.h head/contrib/compiler-rt/lib/builtins/atomic.c head/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c head/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c head/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c head/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c head/contrib/compiler-rt/lib/builtins/bswapdi2.c head/contrib/compiler-rt/lib/builtins/bswapsi2.c head/contrib/compiler-rt/lib/builtins/clear_cache.c head/contrib/compiler-rt/lib/builtins/clzdi2.c head/contrib/compiler-rt/lib/builtins/clzsi2.c head/contrib/compiler-rt/lib/builtins/clzti2.c head/contrib/compiler-rt/lib/builtins/cmpdi2.c head/contrib/compiler-rt/lib/builtins/cmpti2.c head/contrib/compiler-rt/lib/builtins/comparedf2.c head/contrib/compiler-rt/lib/builtins/comparesf2.c head/contrib/compiler-rt/lib/builtins/comparetf2.c head/contrib/compiler-rt/lib/builtins/cpu_model.c head/contrib/compiler-rt/lib/builtins/ctzdi2.c head/contrib/compiler-rt/lib/builtins/ctzsi2.c head/contrib/compiler-rt/lib/builtins/ctzti2.c head/contrib/compiler-rt/lib/builtins/divdc3.c head/contrib/compiler-rt/lib/builtins/divdf3.c head/contrib/compiler-rt/lib/builtins/divdi3.c head/contrib/compiler-rt/lib/builtins/divmoddi4.c head/contrib/compiler-rt/lib/builtins/divmodsi4.c head/contrib/compiler-rt/lib/builtins/divsc3.c head/contrib/compiler-rt/lib/builtins/divsf3.c head/contrib/compiler-rt/lib/builtins/divsi3.c head/contrib/compiler-rt/lib/builtins/divtc3.c head/contrib/compiler-rt/lib/builtins/divtf3.c head/contrib/compiler-rt/lib/builtins/divti3.c head/contrib/compiler-rt/lib/builtins/divxc3.c head/contrib/compiler-rt/lib/builtins/emutls.c head/contrib/compiler-rt/lib/builtins/enable_execute_stack.c head/contrib/compiler-rt/lib/builtins/eprintf.c head/contrib/compiler-rt/lib/builtins/extenddftf2.c head/contrib/compiler-rt/lib/builtins/extendhfsf2.c head/contrib/compiler-rt/lib/builtins/extendsfdf2.c head/contrib/compiler-rt/lib/builtins/extendsftf2.c head/contrib/compiler-rt/lib/builtins/ffsdi2.c head/contrib/compiler-rt/lib/builtins/ffssi2.c head/contrib/compiler-rt/lib/builtins/ffsti2.c head/contrib/compiler-rt/lib/builtins/fixdfdi.c head/contrib/compiler-rt/lib/builtins/fixdfsi.c head/contrib/compiler-rt/lib/builtins/fixdfti.c head/contrib/compiler-rt/lib/builtins/fixsfdi.c head/contrib/compiler-rt/lib/builtins/fixsfsi.c head/contrib/compiler-rt/lib/builtins/fixsfti.c head/contrib/compiler-rt/lib/builtins/fixtfdi.c head/contrib/compiler-rt/lib/builtins/fixtfsi.c head/contrib/compiler-rt/lib/builtins/fixtfti.c head/contrib/compiler-rt/lib/builtins/fixunsdfdi.c head/contrib/compiler-rt/lib/builtins/fixunsdfsi.c head/contrib/compiler-rt/lib/builtins/fixunsdfti.c head/contrib/compiler-rt/lib/builtins/fixunssfdi.c head/contrib/compiler-rt/lib/builtins/fixunssfsi.c head/contrib/compiler-rt/lib/builtins/fixunssfti.c head/contrib/compiler-rt/lib/builtins/fixunstfdi.c head/contrib/compiler-rt/lib/builtins/fixunstfsi.c head/contrib/compiler-rt/lib/builtins/fixunstfti.c head/contrib/compiler-rt/lib/builtins/fixunsxfdi.c head/contrib/compiler-rt/lib/builtins/fixunsxfsi.c head/contrib/compiler-rt/lib/builtins/fixunsxfti.c head/contrib/compiler-rt/lib/builtins/fixxfdi.c head/contrib/compiler-rt/lib/builtins/fixxfti.c head/contrib/compiler-rt/lib/builtins/floatdidf.c head/contrib/compiler-rt/lib/builtins/floatdisf.c head/contrib/compiler-rt/lib/builtins/floatditf.c head/contrib/compiler-rt/lib/builtins/floatdixf.c head/contrib/compiler-rt/lib/builtins/floatsidf.c head/contrib/compiler-rt/lib/builtins/floatsisf.c head/contrib/compiler-rt/lib/builtins/floatsitf.c head/contrib/compiler-rt/lib/builtins/floattidf.c head/contrib/compiler-rt/lib/builtins/floattisf.c head/contrib/compiler-rt/lib/builtins/floattitf.c head/contrib/compiler-rt/lib/builtins/floattixf.c head/contrib/compiler-rt/lib/builtins/floatundidf.c head/contrib/compiler-rt/lib/builtins/floatundisf.c head/contrib/compiler-rt/lib/builtins/floatunditf.c head/contrib/compiler-rt/lib/builtins/floatundixf.c head/contrib/compiler-rt/lib/builtins/floatunsidf.c head/contrib/compiler-rt/lib/builtins/floatunsisf.c head/contrib/compiler-rt/lib/builtins/floatunsitf.c head/contrib/compiler-rt/lib/builtins/floatuntidf.c head/contrib/compiler-rt/lib/builtins/floatuntisf.c head/contrib/compiler-rt/lib/builtins/floatuntitf.c head/contrib/compiler-rt/lib/builtins/floatuntixf.c head/contrib/compiler-rt/lib/builtins/fp_add_impl.inc head/contrib/compiler-rt/lib/builtins/fp_extend.h head/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc head/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc head/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc head/contrib/compiler-rt/lib/builtins/fp_lib.h head/contrib/compiler-rt/lib/builtins/fp_mul_impl.inc head/contrib/compiler-rt/lib/builtins/fp_trunc.h head/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc head/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c head/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi1.S head/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi2.S head/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_legacy.S head/contrib/compiler-rt/lib/builtins/hexagon/dfaddsub.S head/contrib/compiler-rt/lib/builtins/hexagon/dfdiv.S head/contrib/compiler-rt/lib/builtins/hexagon/dffma.S head/contrib/compiler-rt/lib/builtins/hexagon/dfminmax.S head/contrib/compiler-rt/lib/builtins/hexagon/dfmul.S head/contrib/compiler-rt/lib/builtins/hexagon/dfsqrt.S head/contrib/compiler-rt/lib/builtins/hexagon/divdi3.S head/contrib/compiler-rt/lib/builtins/hexagon/divsi3.S head/contrib/compiler-rt/lib/builtins/hexagon/fabs_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_dlib_asm.S head/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_ldlib_asm.S head/contrib/compiler-rt/lib/builtins/hexagon/fastmath_dlib_asm.S head/contrib/compiler-rt/lib/builtins/hexagon/fma_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/fmax_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/fmin_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/memcpy_forward_vp4cp4n2.S head/contrib/compiler-rt/lib/builtins/hexagon/memcpy_likely_aligned.S head/contrib/compiler-rt/lib/builtins/hexagon/moddi3.S head/contrib/compiler-rt/lib/builtins/hexagon/modsi3.S head/contrib/compiler-rt/lib/builtins/hexagon/sfdiv_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/sfsqrt_opt.S head/contrib/compiler-rt/lib/builtins/hexagon/udivdi3.S head/contrib/compiler-rt/lib/builtins/hexagon/udivmoddi4.S head/contrib/compiler-rt/lib/builtins/hexagon/udivmodsi4.S head/contrib/compiler-rt/lib/builtins/hexagon/udivsi3.S head/contrib/compiler-rt/lib/builtins/hexagon/umoddi3.S head/contrib/compiler-rt/lib/builtins/hexagon/umodsi3.S head/contrib/compiler-rt/lib/builtins/i386/ashldi3.S head/contrib/compiler-rt/lib/builtins/i386/ashrdi3.S head/contrib/compiler-rt/lib/builtins/i386/chkstk.S head/contrib/compiler-rt/lib/builtins/i386/chkstk2.S head/contrib/compiler-rt/lib/builtins/i386/divdi3.S head/contrib/compiler-rt/lib/builtins/i386/floatdidf.S head/contrib/compiler-rt/lib/builtins/i386/floatdisf.S head/contrib/compiler-rt/lib/builtins/i386/floatdixf.S head/contrib/compiler-rt/lib/builtins/i386/floatundidf.S head/contrib/compiler-rt/lib/builtins/i386/floatundisf.S head/contrib/compiler-rt/lib/builtins/i386/floatundixf.S head/contrib/compiler-rt/lib/builtins/i386/lshrdi3.S head/contrib/compiler-rt/lib/builtins/i386/moddi3.S head/contrib/compiler-rt/lib/builtins/i386/muldi3.S head/contrib/compiler-rt/lib/builtins/i386/udivdi3.S head/contrib/compiler-rt/lib/builtins/i386/umoddi3.S head/contrib/compiler-rt/lib/builtins/int_endianness.h head/contrib/compiler-rt/lib/builtins/int_lib.h head/contrib/compiler-rt/lib/builtins/int_math.h head/contrib/compiler-rt/lib/builtins/int_types.h head/contrib/compiler-rt/lib/builtins/int_util.c head/contrib/compiler-rt/lib/builtins/int_util.h head/contrib/compiler-rt/lib/builtins/lshrdi3.c head/contrib/compiler-rt/lib/builtins/lshrti3.c head/contrib/compiler-rt/lib/builtins/mingw_fixfloat.c head/contrib/compiler-rt/lib/builtins/moddi3.c head/contrib/compiler-rt/lib/builtins/modsi3.c head/contrib/compiler-rt/lib/builtins/modti3.c head/contrib/compiler-rt/lib/builtins/muldc3.c head/contrib/compiler-rt/lib/builtins/muldf3.c head/contrib/compiler-rt/lib/builtins/muldi3.c head/contrib/compiler-rt/lib/builtins/mulodi4.c head/contrib/compiler-rt/lib/builtins/mulosi4.c head/contrib/compiler-rt/lib/builtins/muloti4.c head/contrib/compiler-rt/lib/builtins/mulsc3.c head/contrib/compiler-rt/lib/builtins/mulsf3.c head/contrib/compiler-rt/lib/builtins/multc3.c head/contrib/compiler-rt/lib/builtins/multf3.c head/contrib/compiler-rt/lib/builtins/multi3.c head/contrib/compiler-rt/lib/builtins/mulvdi3.c head/contrib/compiler-rt/lib/builtins/mulvsi3.c head/contrib/compiler-rt/lib/builtins/mulvti3.c head/contrib/compiler-rt/lib/builtins/mulxc3.c head/contrib/compiler-rt/lib/builtins/negdf2.c head/contrib/compiler-rt/lib/builtins/negdi2.c head/contrib/compiler-rt/lib/builtins/negsf2.c head/contrib/compiler-rt/lib/builtins/negti2.c head/contrib/compiler-rt/lib/builtins/negvdi2.c head/contrib/compiler-rt/lib/builtins/negvsi2.c head/contrib/compiler-rt/lib/builtins/negvti2.c head/contrib/compiler-rt/lib/builtins/os_version_check.c head/contrib/compiler-rt/lib/builtins/paritydi2.c head/contrib/compiler-rt/lib/builtins/paritysi2.c head/contrib/compiler-rt/lib/builtins/parityti2.c head/contrib/compiler-rt/lib/builtins/popcountdi2.c head/contrib/compiler-rt/lib/builtins/popcountsi2.c head/contrib/compiler-rt/lib/builtins/popcountti2.c head/contrib/compiler-rt/lib/builtins/powidf2.c head/contrib/compiler-rt/lib/builtins/powisf2.c head/contrib/compiler-rt/lib/builtins/powitf2.c head/contrib/compiler-rt/lib/builtins/powixf2.c head/contrib/compiler-rt/lib/builtins/ppc/DD.h head/contrib/compiler-rt/lib/builtins/ppc/divtc3.c head/contrib/compiler-rt/lib/builtins/ppc/fixtfdi.c head/contrib/compiler-rt/lib/builtins/ppc/fixunstfdi.c head/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c head/contrib/compiler-rt/lib/builtins/ppc/floatditf.c head/contrib/compiler-rt/lib/builtins/ppc/floattitf.c head/contrib/compiler-rt/lib/builtins/ppc/floatunditf.c head/contrib/compiler-rt/lib/builtins/ppc/gcc_qadd.c head/contrib/compiler-rt/lib/builtins/ppc/gcc_qdiv.c head/contrib/compiler-rt/lib/builtins/ppc/gcc_qmul.c head/contrib/compiler-rt/lib/builtins/ppc/gcc_qsub.c head/contrib/compiler-rt/lib/builtins/ppc/multc3.c head/contrib/compiler-rt/lib/builtins/ppc/restFP.S head/contrib/compiler-rt/lib/builtins/ppc/saveFP.S head/contrib/compiler-rt/lib/builtins/riscv/mulsi3.S head/contrib/compiler-rt/lib/builtins/subdf3.c head/contrib/compiler-rt/lib/builtins/subsf3.c head/contrib/compiler-rt/lib/builtins/subtf3.c head/contrib/compiler-rt/lib/builtins/subvdi3.c head/contrib/compiler-rt/lib/builtins/subvsi3.c head/contrib/compiler-rt/lib/builtins/subvti3.c head/contrib/compiler-rt/lib/builtins/trampoline_setup.c head/contrib/compiler-rt/lib/builtins/truncdfhf2.c head/contrib/compiler-rt/lib/builtins/truncdfsf2.c head/contrib/compiler-rt/lib/builtins/truncsfhf2.c head/contrib/compiler-rt/lib/builtins/trunctfdf2.c head/contrib/compiler-rt/lib/builtins/trunctfsf2.c head/contrib/compiler-rt/lib/builtins/ucmpdi2.c head/contrib/compiler-rt/lib/builtins/ucmpti2.c head/contrib/compiler-rt/lib/builtins/udivdi3.c head/contrib/compiler-rt/lib/builtins/udivmoddi4.c head/contrib/compiler-rt/lib/builtins/udivmodsi4.c head/contrib/compiler-rt/lib/builtins/udivmodti4.c head/contrib/compiler-rt/lib/builtins/udivsi3.c head/contrib/compiler-rt/lib/builtins/udivti3.c head/contrib/compiler-rt/lib/builtins/umoddi3.c head/contrib/compiler-rt/lib/builtins/umodsi3.c head/contrib/compiler-rt/lib/builtins/umodti3.c head/contrib/compiler-rt/lib/builtins/unwind-ehabi-helpers.h head/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S head/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S head/contrib/compiler-rt/lib/builtins/x86_64/floatdidf.c head/contrib/compiler-rt/lib/builtins/x86_64/floatdisf.c head/contrib/compiler-rt/lib/builtins/x86_64/floatdixf.c head/contrib/compiler-rt/lib/builtins/x86_64/floatundidf.S head/contrib/compiler-rt/lib/builtins/x86_64/floatundisf.S head/contrib/compiler-rt/lib/builtins/x86_64/floatundixf.S head/contrib/compiler-rt/lib/dfsan/dfsan.cc head/contrib/compiler-rt/lib/dfsan/dfsan.h head/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc head/contrib/compiler-rt/lib/dfsan/dfsan_flags.inc head/contrib/compiler-rt/lib/dfsan/dfsan_interceptors.cc head/contrib/compiler-rt/lib/dfsan/dfsan_platform.h head/contrib/compiler-rt/lib/dfsan/done_abilist.txt head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h head/contrib/compiler-rt/lib/fuzzer/FuzzerCommand.h head/contrib/compiler-rt/lib/fuzzer/FuzzerCorpus.h head/contrib/compiler-rt/lib/fuzzer/FuzzerCrossOver.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.h head/contrib/compiler-rt/lib/fuzzer/FuzzerDefs.h head/contrib/compiler-rt/lib/fuzzer/FuzzerDictionary.h head/contrib/compiler-rt/lib/fuzzer/FuzzerDriver.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.def head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.h head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsDlsym.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerFlags.def head/contrib/compiler-rt/lib/fuzzer/FuzzerIO.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerIO.h head/contrib/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerInterface.h head/contrib/compiler-rt/lib/fuzzer/FuzzerInternal.h head/contrib/compiler-rt/lib/fuzzer/FuzzerLoop.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMain.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.h head/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.h head/contrib/compiler-rt/lib/fuzzer/FuzzerOptions.h head/contrib/compiler-rt/lib/fuzzer/FuzzerRandom.h head/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.h head/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.h head/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.h head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerValueBitMap.h head/contrib/compiler-rt/lib/hwasan/hwasan.h head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h head/contrib/compiler-rt/lib/hwasan/hwasan_checks.h head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.h head/contrib/compiler-rt/lib/hwasan/hwasan_flags.h head/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc head/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h head/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h head/contrib/compiler-rt/lib/hwasan/hwasan_report.h head/contrib/compiler-rt/lib/hwasan/hwasan_thread.h head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h head/contrib/compiler-rt/lib/interception/interception.h head/contrib/compiler-rt/lib/interception/interception_linux.cc head/contrib/compiler-rt/lib/interception/interception_linux.h head/contrib/compiler-rt/lib/interception/interception_mac.cc head/contrib/compiler-rt/lib/interception/interception_mac.h head/contrib/compiler-rt/lib/interception/interception_type_test.cc head/contrib/compiler-rt/lib/interception/interception_win.cc head/contrib/compiler-rt/lib/interception/interception_win.h head/contrib/compiler-rt/lib/lsan/lsan.cc head/contrib/compiler-rt/lib/lsan/lsan.h head/contrib/compiler-rt/lib/lsan/lsan_allocator.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.h head/contrib/compiler-rt/lib/lsan/lsan_common.cc head/contrib/compiler-rt/lib/lsan/lsan_common.h head/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc head/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc head/contrib/compiler-rt/lib/lsan/lsan_flags.inc head/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc head/contrib/compiler-rt/lib/lsan/lsan_linux.cc head/contrib/compiler-rt/lib/lsan/lsan_mac.cc head/contrib/compiler-rt/lib/lsan/lsan_malloc_mac.cc head/contrib/compiler-rt/lib/lsan/lsan_preinit.cc head/contrib/compiler-rt/lib/lsan/lsan_thread.cc head/contrib/compiler-rt/lib/lsan/lsan_thread.h head/contrib/compiler-rt/lib/msan/msan.cc head/contrib/compiler-rt/lib/msan/msan.h head/contrib/compiler-rt/lib/msan/msan_allocator.cc head/contrib/compiler-rt/lib/msan/msan_allocator.h head/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.cc head/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.h head/contrib/compiler-rt/lib/msan/msan_flags.h head/contrib/compiler-rt/lib/msan/msan_flags.inc head/contrib/compiler-rt/lib/msan/msan_interceptors.cc head/contrib/compiler-rt/lib/msan/msan_interface_internal.h head/contrib/compiler-rt/lib/msan/msan_linux.cc head/contrib/compiler-rt/lib/msan/msan_new_delete.cc head/contrib/compiler-rt/lib/msan/msan_origin.h head/contrib/compiler-rt/lib/msan/msan_poisoning.cc head/contrib/compiler-rt/lib/msan/msan_poisoning.h head/contrib/compiler-rt/lib/msan/msan_report.cc head/contrib/compiler-rt/lib/msan/msan_report.h head/contrib/compiler-rt/lib/msan/msan_thread.h head/contrib/compiler-rt/lib/profile/GCDAProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfData.inc head/contrib/compiler-rt/lib/profile/InstrProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfiling.h head/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c head/contrib/compiler-rt/lib/profile/InstrProfilingFile.c head/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h head/contrib/compiler-rt/lib/profile/InstrProfilingMerge.c head/contrib/compiler-rt/lib/profile/InstrProfilingMergeFile.c head/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c head/contrib/compiler-rt/lib/profile/InstrProfilingPort.h head/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc head/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c head/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h head/contrib/compiler-rt/lib/profile/InstrProfilingValue.c head/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c head/contrib/compiler-rt/lib/profile/WindowsMMap.h head/contrib/compiler-rt/lib/safestack/safestack.cc head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.cc head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.h head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface_posix.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_dbghelp.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_lfstack.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_list.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_placement_new.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_rtems.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.h head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt head/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp head/contrib/compiler-rt/lib/scudo/scudo_allocator.h head/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h head/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h head/contrib/compiler-rt/lib/scudo/scudo_crc32.cpp head/contrib/compiler-rt/lib/scudo/scudo_crc32.h head/contrib/compiler-rt/lib/scudo/scudo_errors.cpp head/contrib/compiler-rt/lib/scudo/scudo_errors.h head/contrib/compiler-rt/lib/scudo/scudo_flags.cpp head/contrib/compiler-rt/lib/scudo/scudo_flags.h head/contrib/compiler-rt/lib/scudo/scudo_flags.inc head/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h head/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp head/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp head/contrib/compiler-rt/lib/scudo/scudo_platform.h head/contrib/compiler-rt/lib/scudo/scudo_termination.cpp head/contrib/compiler-rt/lib/scudo/scudo_tsd.h head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc head/contrib/compiler-rt/lib/scudo/scudo_utils.cpp head/contrib/compiler-rt/lib/scudo/scudo_utils.h head/contrib/compiler-rt/lib/stats/stats.cc head/contrib/compiler-rt/lib/stats/stats.h head/contrib/compiler-rt/lib/stats/stats_client.cc head/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc head/contrib/compiler-rt/lib/tsan/dd/dd_rtl.cc head/contrib/compiler-rt/lib/tsan/dd/dd_rtl.h head/contrib/compiler-rt/lib/tsan/go/test.c head/contrib/compiler-rt/lib/tsan/go/tsan_go.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_external.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc head/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_md5.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_preinit.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_update_shadow_word_inl.h head/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc head/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc head/contrib/compiler-rt/lib/ubsan/ubsan_diag.h head/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc head/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc head/contrib/compiler-rt/lib/ubsan/ubsan_flags.h head/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h head/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h head/contrib/compiler-rt/lib/ubsan/ubsan_init.cc head/contrib/compiler-rt/lib/ubsan/ubsan_init.h head/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc head/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc head/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc head/contrib/compiler-rt/lib/ubsan/ubsan_monitor.cc head/contrib/compiler-rt/lib/ubsan/ubsan_monitor.h head/contrib/compiler-rt/lib/ubsan/ubsan_platform.h head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.cc head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.h head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc head/contrib/compiler-rt/lib/ubsan/ubsan_value.cc head/contrib/compiler-rt/lib/ubsan/ubsan_value.h head/contrib/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cc head/contrib/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc head/contrib/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cc head/contrib/compiler-rt/lib/xray/xray_AArch64.cc head/contrib/compiler-rt/lib/xray/xray_allocator.h head/contrib/compiler-rt/lib/xray/xray_arm.cc head/contrib/compiler-rt/lib/xray/xray_basic_flags.cc head/contrib/compiler-rt/lib/xray/xray_basic_flags.h head/contrib/compiler-rt/lib/xray/xray_basic_flags.inc head/contrib/compiler-rt/lib/xray/xray_basic_logging.cc head/contrib/compiler-rt/lib/xray/xray_basic_logging.h head/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc head/contrib/compiler-rt/lib/xray/xray_buffer_queue.h head/contrib/compiler-rt/lib/xray/xray_defs.h head/contrib/compiler-rt/lib/xray/xray_fdr_controller.h head/contrib/compiler-rt/lib/xray/xray_fdr_flags.cc head/contrib/compiler-rt/lib/xray/xray_fdr_flags.h head/contrib/compiler-rt/lib/xray/xray_fdr_flags.inc head/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h head/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h head/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc head/contrib/compiler-rt/lib/xray/xray_fdr_logging.h head/contrib/compiler-rt/lib/xray/xray_flags.cc head/contrib/compiler-rt/lib/xray/xray_flags.h head/contrib/compiler-rt/lib/xray/xray_flags.inc head/contrib/compiler-rt/lib/xray/xray_function_call_trie.h head/contrib/compiler-rt/lib/xray/xray_init.cc head/contrib/compiler-rt/lib/xray/xray_interface.cc head/contrib/compiler-rt/lib/xray/xray_interface_internal.h head/contrib/compiler-rt/lib/xray/xray_log_interface.cc head/contrib/compiler-rt/lib/xray/xray_mips.cc head/contrib/compiler-rt/lib/xray/xray_mips64.cc head/contrib/compiler-rt/lib/xray/xray_powerpc64.cc head/contrib/compiler-rt/lib/xray/xray_powerpc64.inc head/contrib/compiler-rt/lib/xray/xray_profile_collector.cc head/contrib/compiler-rt/lib/xray/xray_profile_collector.h head/contrib/compiler-rt/lib/xray/xray_profiling.cc head/contrib/compiler-rt/lib/xray/xray_profiling_flags.cc head/contrib/compiler-rt/lib/xray/xray_profiling_flags.h head/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc head/contrib/compiler-rt/lib/xray/xray_recursion_guard.h head/contrib/compiler-rt/lib/xray/xray_segmented_array.h head/contrib/compiler-rt/lib/xray/xray_trampoline_mips.S head/contrib/compiler-rt/lib/xray/xray_trampoline_mips64.S head/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S head/contrib/compiler-rt/lib/xray/xray_tsc.h head/contrib/compiler-rt/lib/xray/xray_utils.cc head/contrib/compiler-rt/lib/xray/xray_utils.h head/contrib/compiler-rt/lib/xray/xray_x86_64.inc head/contrib/googletest/googlemock/test/gmock-spec-builders_test.cc head/contrib/libc++/LICENSE.TXT head/contrib/libc++/include/__bit_reference head/contrib/libc++/include/__bsd_locale_defaults.h head/contrib/libc++/include/__bsd_locale_fallbacks.h head/contrib/libc++/include/__config head/contrib/libc++/include/__debug head/contrib/libc++/include/__errc head/contrib/libc++/include/__functional_03 head/contrib/libc++/include/__functional_base head/contrib/libc++/include/__functional_base_03 head/contrib/libc++/include/__hash_table head/contrib/libc++/include/__libcpp_version head/contrib/libc++/include/__locale head/contrib/libc++/include/__mutex_base head/contrib/libc++/include/__node_handle head/contrib/libc++/include/__nullptr head/contrib/libc++/include/__sso_allocator head/contrib/libc++/include/__std_stream head/contrib/libc++/include/__string head/contrib/libc++/include/__threading_support head/contrib/libc++/include/__tree head/contrib/libc++/include/__tuple head/contrib/libc++/include/__undef_macros head/contrib/libc++/include/algorithm head/contrib/libc++/include/any head/contrib/libc++/include/array head/contrib/libc++/include/atomic head/contrib/libc++/include/bit head/contrib/libc++/include/bitset head/contrib/libc++/include/cassert head/contrib/libc++/include/ccomplex head/contrib/libc++/include/cctype head/contrib/libc++/include/cerrno head/contrib/libc++/include/cfenv head/contrib/libc++/include/cfloat head/contrib/libc++/include/charconv head/contrib/libc++/include/chrono head/contrib/libc++/include/cinttypes head/contrib/libc++/include/ciso646 head/contrib/libc++/include/climits head/contrib/libc++/include/clocale head/contrib/libc++/include/cmath head/contrib/libc++/include/codecvt head/contrib/libc++/include/compare head/contrib/libc++/include/complex head/contrib/libc++/include/complex.h head/contrib/libc++/include/condition_variable head/contrib/libc++/include/csetjmp head/contrib/libc++/include/csignal head/contrib/libc++/include/cstdarg head/contrib/libc++/include/cstdbool head/contrib/libc++/include/cstddef head/contrib/libc++/include/cstdint head/contrib/libc++/include/cstdio head/contrib/libc++/include/cstdlib head/contrib/libc++/include/cstring head/contrib/libc++/include/ctgmath head/contrib/libc++/include/ctime head/contrib/libc++/include/ctype.h head/contrib/libc++/include/cwchar head/contrib/libc++/include/cwctype head/contrib/libc++/include/deque head/contrib/libc++/include/errno.h head/contrib/libc++/include/exception head/contrib/libc++/include/experimental/__config head/contrib/libc++/include/experimental/__memory head/contrib/libc++/include/experimental/algorithm head/contrib/libc++/include/experimental/coroutine head/contrib/libc++/include/experimental/deque head/contrib/libc++/include/experimental/filesystem head/contrib/libc++/include/experimental/forward_list head/contrib/libc++/include/experimental/functional head/contrib/libc++/include/experimental/iterator head/contrib/libc++/include/experimental/list head/contrib/libc++/include/experimental/map head/contrib/libc++/include/experimental/memory_resource head/contrib/libc++/include/experimental/propagate_const head/contrib/libc++/include/experimental/regex head/contrib/libc++/include/experimental/set head/contrib/libc++/include/experimental/simd head/contrib/libc++/include/experimental/string head/contrib/libc++/include/experimental/type_traits head/contrib/libc++/include/experimental/unordered_map head/contrib/libc++/include/experimental/unordered_set head/contrib/libc++/include/experimental/utility head/contrib/libc++/include/experimental/vector head/contrib/libc++/include/ext/__hash head/contrib/libc++/include/ext/hash_map head/contrib/libc++/include/ext/hash_set head/contrib/libc++/include/filesystem head/contrib/libc++/include/float.h head/contrib/libc++/include/forward_list head/contrib/libc++/include/fstream head/contrib/libc++/include/functional head/contrib/libc++/include/future head/contrib/libc++/include/initializer_list head/contrib/libc++/include/inttypes.h head/contrib/libc++/include/iomanip head/contrib/libc++/include/ios head/contrib/libc++/include/iosfwd head/contrib/libc++/include/iostream head/contrib/libc++/include/istream head/contrib/libc++/include/iterator head/contrib/libc++/include/limits head/contrib/libc++/include/limits.h head/contrib/libc++/include/list head/contrib/libc++/include/locale head/contrib/libc++/include/locale.h head/contrib/libc++/include/map head/contrib/libc++/include/math.h head/contrib/libc++/include/memory head/contrib/libc++/include/module.modulemap head/contrib/libc++/include/mutex head/contrib/libc++/include/new head/contrib/libc++/include/numeric head/contrib/libc++/include/optional head/contrib/libc++/include/ostream head/contrib/libc++/include/queue head/contrib/libc++/include/random head/contrib/libc++/include/ratio head/contrib/libc++/include/regex head/contrib/libc++/include/scoped_allocator head/contrib/libc++/include/set head/contrib/libc++/include/setjmp.h head/contrib/libc++/include/shared_mutex head/contrib/libc++/include/span head/contrib/libc++/include/sstream head/contrib/libc++/include/stack head/contrib/libc++/include/stdbool.h head/contrib/libc++/include/stddef.h head/contrib/libc++/include/stdexcept head/contrib/libc++/include/stdint.h head/contrib/libc++/include/stdio.h head/contrib/libc++/include/stdlib.h head/contrib/libc++/include/streambuf head/contrib/libc++/include/string head/contrib/libc++/include/string.h head/contrib/libc++/include/string_view head/contrib/libc++/include/strstream head/contrib/libc++/include/system_error head/contrib/libc++/include/tgmath.h head/contrib/libc++/include/thread head/contrib/libc++/include/tuple head/contrib/libc++/include/type_traits head/contrib/libc++/include/typeindex head/contrib/libc++/include/typeinfo head/contrib/libc++/include/unordered_map head/contrib/libc++/include/unordered_set head/contrib/libc++/include/utility head/contrib/libc++/include/valarray head/contrib/libc++/include/variant head/contrib/libc++/include/vector head/contrib/libc++/include/version head/contrib/libc++/include/wchar.h head/contrib/libc++/include/wctype.h head/contrib/libc++/src/algorithm.cpp head/contrib/libc++/src/any.cpp head/contrib/libc++/src/bind.cpp head/contrib/libc++/src/charconv.cpp head/contrib/libc++/src/chrono.cpp head/contrib/libc++/src/condition_variable.cpp head/contrib/libc++/src/debug.cpp head/contrib/libc++/src/exception.cpp head/contrib/libc++/src/experimental/memory_resource.cpp head/contrib/libc++/src/filesystem/directory_iterator.cpp head/contrib/libc++/src/filesystem/filesystem_common.h head/contrib/libc++/src/filesystem/int128_builtins.cpp head/contrib/libc++/src/filesystem/operations.cpp head/contrib/libc++/src/functional.cpp head/contrib/libc++/src/future.cpp head/contrib/libc++/src/hash.cpp head/contrib/libc++/src/include/apple_availability.h head/contrib/libc++/src/include/atomic_support.h head/contrib/libc++/src/include/config_elast.h head/contrib/libc++/src/include/refstring.h head/contrib/libc++/src/ios.cpp head/contrib/libc++/src/iostream.cpp head/contrib/libc++/src/locale.cpp head/contrib/libc++/src/memory.cpp head/contrib/libc++/src/mutex.cpp head/contrib/libc++/src/new.cpp head/contrib/libc++/src/optional.cpp head/contrib/libc++/src/random.cpp head/contrib/libc++/src/regex.cpp head/contrib/libc++/src/shared_mutex.cpp head/contrib/libc++/src/stdexcept.cpp head/contrib/libc++/src/string.cpp head/contrib/libc++/src/strstream.cpp head/contrib/libc++/src/support/runtime/exception_fallback.ipp head/contrib/libc++/src/support/runtime/exception_glibcxx.ipp head/contrib/libc++/src/support/runtime/exception_libcxxabi.ipp head/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp head/contrib/libc++/src/support/runtime/exception_msvc.ipp head/contrib/libc++/src/support/runtime/exception_pointer_cxxabi.ipp head/contrib/libc++/src/support/runtime/exception_pointer_glibcxx.ipp head/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp head/contrib/libc++/src/support/runtime/exception_pointer_unimplemented.ipp head/contrib/libc++/src/support/runtime/new_handler_fallback.ipp head/contrib/libc++/src/system_error.cpp head/contrib/libc++/src/thread.cpp head/contrib/libc++/src/typeinfo.cpp head/contrib/libc++/src/utility.cpp head/contrib/libc++/src/valarray.cpp head/contrib/libc++/src/variant.cpp head/contrib/libc++/src/vector.cpp head/contrib/libunwind/LICENSE.TXT head/contrib/libunwind/include/__libunwind_config.h head/contrib/libunwind/include/libunwind.h head/contrib/libunwind/include/mach-o/compact_unwind_encoding.h head/contrib/libunwind/include/unwind.h head/contrib/libunwind/src/AddressSpace.hpp head/contrib/libunwind/src/CompactUnwinder.hpp head/contrib/libunwind/src/DwarfInstructions.hpp head/contrib/libunwind/src/DwarfParser.hpp head/contrib/libunwind/src/EHHeaderParser.hpp head/contrib/libunwind/src/RWMutex.hpp head/contrib/libunwind/src/Registers.hpp head/contrib/libunwind/src/Unwind-EHABI.cpp head/contrib/libunwind/src/Unwind-EHABI.h head/contrib/libunwind/src/Unwind-seh.cpp head/contrib/libunwind/src/Unwind-sjlj.c head/contrib/libunwind/src/UnwindCursor.hpp head/contrib/libunwind/src/UnwindLevel1-gcc-ext.c head/contrib/libunwind/src/UnwindLevel1.c head/contrib/libunwind/src/UnwindRegistersRestore.S head/contrib/libunwind/src/UnwindRegistersSave.S head/contrib/libunwind/src/Unwind_AppleExtras.cpp head/contrib/libunwind/src/assembly.h head/contrib/libunwind/src/config.h head/contrib/libunwind/src/dwarf2.h head/contrib/libunwind/src/libunwind.cpp head/contrib/libunwind/src/libunwind_ext.h head/contrib/llvm/FREEBSD-Xlist head/contrib/llvm/LICENSE.TXT head/contrib/llvm/include/llvm-c/Analysis.h head/contrib/llvm/include/llvm-c/BitReader.h head/contrib/llvm/include/llvm-c/BitWriter.h head/contrib/llvm/include/llvm-c/Comdat.h head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/DataTypes.h head/contrib/llvm/include/llvm-c/DebugInfo.h head/contrib/llvm/include/llvm-c/Disassembler.h head/contrib/llvm/include/llvm-c/DisassemblerTypes.h head/contrib/llvm/include/llvm-c/Error.h head/contrib/llvm/include/llvm-c/ErrorHandling.h head/contrib/llvm/include/llvm-c/ExecutionEngine.h head/contrib/llvm/include/llvm-c/IRReader.h head/contrib/llvm/include/llvm-c/Initialization.h head/contrib/llvm/include/llvm-c/LinkTimeOptimizer.h head/contrib/llvm/include/llvm-c/Linker.h head/contrib/llvm/include/llvm-c/Object.h head/contrib/llvm/include/llvm-c/OrcBindings.h head/contrib/llvm/include/llvm-c/Support.h head/contrib/llvm/include/llvm-c/Target.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h head/contrib/llvm/include/llvm-c/Transforms/Coroutines.h head/contrib/llvm/include/llvm-c/Transforms/IPO.h head/contrib/llvm/include/llvm-c/Transforms/InstCombine.h head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/Transforms/Utils.h head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h head/contrib/llvm/include/llvm-c/Types.h head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/APSInt.h head/contrib/llvm/include/llvm/ADT/AllocatorList.h head/contrib/llvm/include/llvm/ADT/Any.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/BitmaskEnum.h head/contrib/llvm/include/llvm/ADT/BreadthFirstIterator.h head/contrib/llvm/include/llvm/ADT/CachedHashString.h head/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h head/contrib/llvm/include/llvm/ADT/DenseSet.h head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h head/contrib/llvm/include/llvm/ADT/EpochTracker.h head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h head/contrib/llvm/include/llvm/ADT/FoldingSet.h head/contrib/llvm/include/llvm/ADT/FunctionExtras.h head/contrib/llvm/include/llvm/ADT/GraphTraits.h head/contrib/llvm/include/llvm/ADT/Hashing.h head/contrib/llvm/include/llvm/ADT/ImmutableList.h head/contrib/llvm/include/llvm/ADT/ImmutableMap.h head/contrib/llvm/include/llvm/ADT/ImmutableSet.h head/contrib/llvm/include/llvm/ADT/IndexedMap.h head/contrib/llvm/include/llvm/ADT/IntEqClasses.h head/contrib/llvm/include/llvm/ADT/IntervalMap.h head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h head/contrib/llvm/include/llvm/ADT/MapVector.h head/contrib/llvm/include/llvm/ADT/None.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/PackedVector.h head/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h head/contrib/llvm/include/llvm/ADT/PointerIntPair.h head/contrib/llvm/include/llvm/ADT/PointerSumType.h head/contrib/llvm/include/llvm/ADT/PointerUnion.h head/contrib/llvm/include/llvm/ADT/PostOrderIterator.h head/contrib/llvm/include/llvm/ADT/PriorityQueue.h head/contrib/llvm/include/llvm/ADT/PriorityWorklist.h head/contrib/llvm/include/llvm/ADT/SCCIterator.h head/contrib/llvm/include/llvm/ADT/STLExtras.h head/contrib/llvm/include/llvm/ADT/ScopeExit.h head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h head/contrib/llvm/include/llvm/ADT/Sequence.h head/contrib/llvm/include/llvm/ADT/SetOperations.h head/contrib/llvm/include/llvm/ADT/SetVector.h head/contrib/llvm/include/llvm/ADT/SmallBitVector.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/SmallSet.h head/contrib/llvm/include/llvm/ADT/SmallString.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseBitVector.h head/contrib/llvm/include/llvm/ADT/SparseMultiSet.h head/contrib/llvm/include/llvm/ADT/SparseSet.h head/contrib/llvm/include/llvm/ADT/Statistic.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/StringMap.h head/contrib/llvm/include/llvm/ADT/StringRef.h head/contrib/llvm/include/llvm/ADT/StringSet.h head/contrib/llvm/include/llvm/ADT/StringSwitch.h head/contrib/llvm/include/llvm/ADT/TinyPtrVector.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/Twine.h head/contrib/llvm/include/llvm/ADT/UniqueVector.h head/contrib/llvm/include/llvm/ADT/VariadicFunction.h head/contrib/llvm/include/llvm/ADT/bit.h head/contrib/llvm/include/llvm/ADT/edit_distance.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/ADT/ilist_base.h head/contrib/llvm/include/llvm/ADT/ilist_iterator.h head/contrib/llvm/include/llvm/ADT/ilist_node.h head/contrib/llvm/include/llvm/ADT/ilist_node_base.h head/contrib/llvm/include/llvm/ADT/ilist_node_options.h head/contrib/llvm/include/llvm/ADT/iterator.h head/contrib/llvm/include/llvm/ADT/iterator_range.h head/contrib/llvm/include/llvm/ADT/simple_ilist.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/AssumptionCache.h head/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/CFG.h head/contrib/llvm/include/llvm/Analysis/CFGPrinter.h head/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h head/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h head/contrib/llvm/include/llvm/Analysis/CallGraph.h head/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h head/contrib/llvm/include/llvm/Analysis/CallPrinter.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h head/contrib/llvm/include/llvm/Analysis/CodeMetrics.h head/contrib/llvm/include/llvm/Analysis/ConstantFolding.h head/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h head/contrib/llvm/include/llvm/Analysis/DemandedBits.h head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/DomPrinter.h head/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h head/contrib/llvm/include/llvm/Analysis/EHPersonalities.h head/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h head/contrib/llvm/include/llvm/Analysis/GuardUtils.h head/contrib/llvm/include/llvm/Analysis/IVDescriptors.h head/contrib/llvm/include/llvm/Analysis/IVUsers.h head/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h head/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/Interval.h head/contrib/llvm/include/llvm/Analysis/IntervalIterator.h head/contrib/llvm/include/llvm/Analysis/IntervalPartition.h head/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h head/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h head/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/Lint.h head/contrib/llvm/include/llvm/Analysis/Loads.h head/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h head/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/LoopIterator.h head/contrib/llvm/include/llvm/Analysis/LoopPass.h head/contrib/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h head/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/MemoryLocation.h head/contrib/llvm/include/llvm/Analysis/MemorySSA.h head/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h head/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h head/contrib/llvm/include/llvm/Analysis/MustExecute.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h head/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h head/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h head/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h head/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h head/contrib/llvm/include/llvm/Analysis/PHITransAddr.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/PhiValues.h head/contrib/llvm/include/llvm/Analysis/PostDominators.h head/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h head/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h head/contrib/llvm/include/llvm/Analysis/RegionIterator.h head/contrib/llvm/include/llvm/Analysis/RegionPass.h head/contrib/llvm/include/llvm/Analysis/RegionPrinter.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h head/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h head/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h head/contrib/llvm/include/llvm/Analysis/TargetFolder.h head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h head/contrib/llvm/include/llvm/Analysis/Trace.h head/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h head/contrib/llvm/include/llvm/Analysis/Utils/Local.h head/contrib/llvm/include/llvm/Analysis/ValueLattice.h head/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Analysis/VectorUtils.h head/contrib/llvm/include/llvm/AsmParser/Parser.h head/contrib/llvm/include/llvm/AsmParser/SlotMapping.h head/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h head/contrib/llvm/include/llvm/BinaryFormat/COFF.h head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h head/contrib/llvm/include/llvm/BinaryFormat/DynamicTags.def head/contrib/llvm/include/llvm/BinaryFormat/ELF.h head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARM.def head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def head/contrib/llvm/include/llvm/BinaryFormat/MachO.def head/contrib/llvm/include/llvm/BinaryFormat/MachO.h head/contrib/llvm/include/llvm/BinaryFormat/Magic.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h head/contrib/llvm/include/llvm/BinaryFormat/Wasm.h head/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def head/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h head/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h head/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/CodeGen/AccelTable.h head/contrib/llvm/include/llvm/CodeGen/Analysis.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h head/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h head/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h head/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h head/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc head/contrib/llvm/include/llvm/CodeGen/CostTable.h head/contrib/llvm/include/llvm/CodeGen/DAGCombine.h head/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h head/contrib/llvm/include/llvm/CodeGen/DIE.h head/contrib/llvm/include/llvm/CodeGen/DIEValue.def head/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h head/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h head/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h head/contrib/llvm/include/llvm/CodeGen/EdgeBundles.h head/contrib/llvm/include/llvm/CodeGen/ExecutionDomainFix.h head/contrib/llvm/include/llvm/CodeGen/ExpandReductions.h head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/FaultMaps.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/GCMetadata.h head/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h head/contrib/llvm/include/llvm/CodeGen/GCStrategy.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h head/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h head/contrib/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h head/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h head/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h head/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h head/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h head/contrib/llvm/include/llvm/CodeGen/LiveStacks.h head/contrib/llvm/include/llvm/CodeGen/LiveVariables.h head/contrib/llvm/include/llvm/CodeGen/LoopTraversal.h head/contrib/llvm/include/llvm/CodeGen/LowLevelType.h head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h head/contrib/llvm/include/llvm/CodeGen/MIRPrinter.h head/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h head/contrib/llvm/include/llvm/CodeGen/MachORelocation.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h head/contrib/llvm/include/llvm/CodeGen/MachineDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h head/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h head/contrib/llvm/include/llvm/CodeGen/MachineOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h head/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h head/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h head/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h head/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h head/contrib/llvm/include/llvm/CodeGen/MacroFusion.h head/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Math.h head/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h head/contrib/llvm/include/llvm/CodeGen/PBQPRAConstraint.h head/contrib/llvm/include/llvm/CodeGen/ParallelCG.h head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h head/contrib/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h head/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h head/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h head/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h head/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h head/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDFS.h head/contrib/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h head/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/StackMaps.h head/contrib/llvm/include/llvm/CodeGen/StackProtector.h head/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h head/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h head/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h head/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h head/contrib/llvm/include/llvm/CodeGen/TargetLowering.h head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h head/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h head/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h head/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h head/contrib/llvm/include/llvm/CodeGen/UnreachableBlockElim.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.td head/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h head/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h head/contrib/llvm/include/llvm/CodeGen/WinEHFuncInfo.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/FunctionId.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/Line.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h head/contrib/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h head/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASupport.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h head/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDB.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h head/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h head/contrib/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h head/contrib/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h head/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h head/contrib/llvm/include/llvm/Demangle/Demangle.h head/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h head/contrib/llvm/include/llvm/Demangle/StringView.h head/contrib/llvm/include/llvm/Demangle/Utility.h head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/GenericValue.h head/contrib/llvm/include/llvm/ExecutionEngine/Interpreter.h head/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h head/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h head/contrib/llvm/include/llvm/ExecutionEngine/MCJIT.h head/contrib/llvm/include/llvm/ExecutionEngine/OProfileWrapper.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectCache.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h head/contrib/llvm/include/llvm/ExecutionEngine/OrcMCJITReplacement.h head/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h head/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h head/contrib/llvm/include/llvm/FuzzMutate/FuzzerCLI.h head/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h head/contrib/llvm/include/llvm/FuzzMutate/OpDescriptor.h head/contrib/llvm/include/llvm/FuzzMutate/Operations.h head/contrib/llvm/include/llvm/FuzzMutate/Random.h head/contrib/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h head/contrib/llvm/include/llvm/IR/Argument.h head/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h head/contrib/llvm/include/llvm/IR/Attributes.h head/contrib/llvm/include/llvm/IR/Attributes.td head/contrib/llvm/include/llvm/IR/AutoUpgrade.h head/contrib/llvm/include/llvm/IR/BasicBlock.h head/contrib/llvm/include/llvm/IR/CFG.h head/contrib/llvm/include/llvm/IR/CFGDiff.h head/contrib/llvm/include/llvm/IR/CallSite.h head/contrib/llvm/include/llvm/IR/CallingConv.h head/contrib/llvm/include/llvm/IR/Comdat.h head/contrib/llvm/include/llvm/IR/Constant.h head/contrib/llvm/include/llvm/IR/ConstantFolder.h head/contrib/llvm/include/llvm/IR/ConstantRange.h head/contrib/llvm/include/llvm/IR/Constants.h head/contrib/llvm/include/llvm/IR/DIBuilder.h head/contrib/llvm/include/llvm/IR/DataLayout.h head/contrib/llvm/include/llvm/IR/DebugInfo.h head/contrib/llvm/include/llvm/IR/DebugInfoFlags.def head/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h head/contrib/llvm/include/llvm/IR/DebugLoc.h head/contrib/llvm/include/llvm/IR/DerivedTypes.h head/contrib/llvm/include/llvm/IR/DerivedUser.h head/contrib/llvm/include/llvm/IR/DiagnosticHandler.h head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h head/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h head/contrib/llvm/include/llvm/IR/Dominators.h head/contrib/llvm/include/llvm/IR/Function.h head/contrib/llvm/include/llvm/IR/GVMaterializer.h head/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h head/contrib/llvm/include/llvm/IR/GlobalAlias.h head/contrib/llvm/include/llvm/IR/GlobalIFunc.h head/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h head/contrib/llvm/include/llvm/IR/GlobalObject.h head/contrib/llvm/include/llvm/IR/GlobalValue.h head/contrib/llvm/include/llvm/IR/GlobalVariable.h head/contrib/llvm/include/llvm/IR/IRBuilder.h head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h head/contrib/llvm/include/llvm/IR/InlineAsm.h head/contrib/llvm/include/llvm/IR/InstIterator.h head/contrib/llvm/include/llvm/IR/InstVisitor.h head/contrib/llvm/include/llvm/IR/InstrTypes.h head/contrib/llvm/include/llvm/IR/Instruction.def head/contrib/llvm/include/llvm/IR/Instruction.h head/contrib/llvm/include/llvm/IR/Instructions.h head/contrib/llvm/include/llvm/IR/IntrinsicInst.h head/contrib/llvm/include/llvm/IR/Intrinsics.h head/contrib/llvm/include/llvm/IR/Intrinsics.td head/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td head/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td head/contrib/llvm/include/llvm/IR/IntrinsicsARM.td head/contrib/llvm/include/llvm/IR/IntrinsicsBPF.td head/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td head/contrib/llvm/include/llvm/IR/IntrinsicsMips.td head/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td head/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td head/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td head/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td head/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td head/contrib/llvm/include/llvm/IR/IntrinsicsX86.td head/contrib/llvm/include/llvm/IR/IntrinsicsXCore.td head/contrib/llvm/include/llvm/IR/LLVMContext.h head/contrib/llvm/include/llvm/IR/LegacyPassManager.h head/contrib/llvm/include/llvm/IR/LegacyPassManagers.h head/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h head/contrib/llvm/include/llvm/IR/MDBuilder.h head/contrib/llvm/include/llvm/IR/Mangler.h head/contrib/llvm/include/llvm/IR/Metadata.def head/contrib/llvm/include/llvm/IR/Metadata.h head/contrib/llvm/include/llvm/IR/Module.h head/contrib/llvm/include/llvm/IR/ModuleSlotTracker.h head/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h head/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h head/contrib/llvm/include/llvm/IR/NoFolder.h head/contrib/llvm/include/llvm/IR/OperandTraits.h head/contrib/llvm/include/llvm/IR/Operator.h head/contrib/llvm/include/llvm/IR/OptBisect.h head/contrib/llvm/include/llvm/IR/PassInstrumentation.h head/contrib/llvm/include/llvm/IR/PassManager.h head/contrib/llvm/include/llvm/IR/PassManagerInternal.h head/contrib/llvm/include/llvm/IR/PassTimingInfo.h head/contrib/llvm/include/llvm/IR/PatternMatch.h head/contrib/llvm/include/llvm/IR/PredIteratorCache.h head/contrib/llvm/include/llvm/IR/ProfileSummary.h head/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def head/contrib/llvm/include/llvm/IR/SafepointIRVerifier.h head/contrib/llvm/include/llvm/IR/Statepoint.h head/contrib/llvm/include/llvm/IR/SymbolTableListTraits.h head/contrib/llvm/include/llvm/IR/TrackingMDRef.h head/contrib/llvm/include/llvm/IR/Type.h head/contrib/llvm/include/llvm/IR/TypeFinder.h head/contrib/llvm/include/llvm/IR/Use.h head/contrib/llvm/include/llvm/IR/UseListOrder.h head/contrib/llvm/include/llvm/IR/User.h head/contrib/llvm/include/llvm/IR/Value.def head/contrib/llvm/include/llvm/IR/Value.h head/contrib/llvm/include/llvm/IR/ValueHandle.h head/contrib/llvm/include/llvm/IR/ValueMap.h head/contrib/llvm/include/llvm/IR/ValueSymbolTable.h head/contrib/llvm/include/llvm/IR/Verifier.h head/contrib/llvm/include/llvm/IRReader/IRReader.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/LTO/Caching.h head/contrib/llvm/include/llvm/LTO/Config.h head/contrib/llvm/include/llvm/LTO/LTO.h head/contrib/llvm/include/llvm/LTO/LTOBackend.h head/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h head/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h head/contrib/llvm/include/llvm/LTO/legacy/LTOModule.h head/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h head/contrib/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h head/contrib/llvm/include/llvm/LineEditor/LineEditor.h head/contrib/llvm/include/llvm/LinkAllIR.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/Linker/IRMover.h head/contrib/llvm/include/llvm/Linker/Linker.h head/contrib/llvm/include/llvm/MC/ConstantPools.h head/contrib/llvm/include/llvm/MC/LaneBitmask.h head/contrib/llvm/include/llvm/MC/MCAsmBackend.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAsmInfoCOFF.h head/contrib/llvm/include/llvm/MC/MCAsmInfoDarwin.h head/contrib/llvm/include/llvm/MC/MCAsmInfoELF.h head/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h head/contrib/llvm/include/llvm/MC/MCAsmLayout.h head/contrib/llvm/include/llvm/MC/MCAsmMacro.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCCodeEmitter.h head/contrib/llvm/include/llvm/MC/MCCodePadder.h head/contrib/llvm/include/llvm/MC/MCCodeView.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDirectives.h head/contrib/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h head/contrib/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h head/contrib/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h head/contrib/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCELFStreamer.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCFixedLenDisassembler.h head/contrib/llvm/include/llvm/MC/MCFixup.h head/contrib/llvm/include/llvm/MC/MCFixupKindInfo.h head/contrib/llvm/include/llvm/MC/MCFragment.h head/contrib/llvm/include/llvm/MC/MCInst.h head/contrib/llvm/include/llvm/MC/MCInstBuilder.h head/contrib/llvm/include/llvm/MC/MCInstPrinter.h head/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCInstrInfo.h head/contrib/llvm/include/llvm/MC/MCInstrItineraries.h head/contrib/llvm/include/llvm/MC/MCLabel.h head/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h head/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCObjectWriter.h head/contrib/llvm/include/llvm/MC/MCParser/AsmCond.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h head/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h head/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCSectionCOFF.h head/contrib/llvm/include/llvm/MC/MCSectionELF.h head/contrib/llvm/include/llvm/MC/MCSectionMachO.h head/contrib/llvm/include/llvm/MC/MCSectionWasm.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/MC/MCSymbolCOFF.h head/contrib/llvm/include/llvm/MC/MCSymbolELF.h head/contrib/llvm/include/llvm/MC/MCSymbolMachO.h head/contrib/llvm/include/llvm/MC/MCSymbolWasm.h head/contrib/llvm/include/llvm/MC/MCTargetOptions.h head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc head/contrib/llvm/include/llvm/MC/MCValue.h head/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h head/contrib/llvm/include/llvm/MC/MCWasmStreamer.h head/contrib/llvm/include/llvm/MC/MCWin64EH.h head/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h head/contrib/llvm/include/llvm/MC/MCWinEH.h head/contrib/llvm/include/llvm/MC/MachineLocation.h head/contrib/llvm/include/llvm/MC/SectionKind.h head/contrib/llvm/include/llvm/MC/StringTableBuilder.h head/contrib/llvm/include/llvm/MC/SubtargetFeature.h head/contrib/llvm/include/llvm/MCA/Context.h head/contrib/llvm/include/llvm/MCA/HWEventListener.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h head/contrib/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h head/contrib/llvm/include/llvm/MCA/InstrBuilder.h head/contrib/llvm/include/llvm/MCA/Instruction.h head/contrib/llvm/include/llvm/MCA/Pipeline.h head/contrib/llvm/include/llvm/MCA/SourceMgr.h head/contrib/llvm/include/llvm/MCA/Stages/DispatchStage.h head/contrib/llvm/include/llvm/MCA/Stages/EntryStage.h head/contrib/llvm/include/llvm/MCA/Stages/ExecuteStage.h head/contrib/llvm/include/llvm/MCA/Stages/InstructionTables.h head/contrib/llvm/include/llvm/MCA/Stages/RetireStage.h head/contrib/llvm/include/llvm/MCA/Stages/Stage.h head/contrib/llvm/include/llvm/MCA/Support.h head/contrib/llvm/include/llvm/Object/Archive.h head/contrib/llvm/include/llvm/Object/ArchiveWriter.h head/contrib/llvm/include/llvm/Object/Binary.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/COFFImportFile.h head/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h head/contrib/llvm/include/llvm/Object/CVDebugRecord.h head/contrib/llvm/include/llvm/Object/Decompressor.h head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/ELFObjectFile.h head/contrib/llvm/include/llvm/Object/ELFTypes.h head/contrib/llvm/include/llvm/Object/Error.h head/contrib/llvm/include/llvm/Object/IRObjectFile.h head/contrib/llvm/include/llvm/Object/IRSymtab.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/MachOUniversal.h head/contrib/llvm/include/llvm/Object/ModuleSymbolTable.h head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Object/StackMapParser.h head/contrib/llvm/include/llvm/Object/SymbolSize.h head/contrib/llvm/include/llvm/Object/SymbolicFile.h head/contrib/llvm/include/llvm/Object/Wasm.h head/contrib/llvm/include/llvm/Object/WasmTraits.h head/contrib/llvm/include/llvm/Object/WindowsResource.h head/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h head/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h head/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h head/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h head/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h head/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h head/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h head/contrib/llvm/include/llvm/ObjectYAML/YAML.h head/contrib/llvm/include/llvm/Option/Arg.h head/contrib/llvm/include/llvm/Option/ArgList.h head/contrib/llvm/include/llvm/Option/OptParser.td head/contrib/llvm/include/llvm/Option/OptSpecifier.h head/contrib/llvm/include/llvm/Option/OptTable.h head/contrib/llvm/include/llvm/Option/Option.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/PassInfo.h head/contrib/llvm/include/llvm/PassRegistry.h head/contrib/llvm/include/llvm/PassSupport.h head/contrib/llvm/include/llvm/Passes/PassBuilder.h head/contrib/llvm/include/llvm/Passes/PassPlugin.h head/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h head/contrib/llvm/include/llvm/ProfileData/GCOV.h head/contrib/llvm/include/llvm/ProfileData/InstrProf.h head/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc head/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h head/contrib/llvm/include/llvm/ProfileData/InstrProfWriter.h head/contrib/llvm/include/llvm/ProfileData/ProfileCommon.h head/contrib/llvm/include/llvm/ProfileData/SampleProf.h head/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h head/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h head/contrib/llvm/include/llvm/Support/AArch64TargetParser.def head/contrib/llvm/include/llvm/Support/AArch64TargetParser.h head/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h head/contrib/llvm/include/llvm/Support/AMDHSAKernelDescriptor.h head/contrib/llvm/include/llvm/Support/ARMAttributeParser.h head/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h head/contrib/llvm/include/llvm/Support/ARMEHABI.h head/contrib/llvm/include/llvm/Support/ARMTargetParser.def head/contrib/llvm/include/llvm/Support/ARMTargetParser.h head/contrib/llvm/include/llvm/Support/ARMWinEH.h head/contrib/llvm/include/llvm/Support/AlignOf.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/ArrayRecycler.h head/contrib/llvm/include/llvm/Support/Atomic.h head/contrib/llvm/include/llvm/Support/AtomicOrdering.h head/contrib/llvm/include/llvm/Support/BinaryByteStream.h head/contrib/llvm/include/llvm/Support/BinaryItemStream.h head/contrib/llvm/include/llvm/Support/BinaryStream.h head/contrib/llvm/include/llvm/Support/BinaryStreamArray.h head/contrib/llvm/include/llvm/Support/BinaryStreamError.h head/contrib/llvm/include/llvm/Support/BinaryStreamReader.h head/contrib/llvm/include/llvm/Support/BinaryStreamRef.h head/contrib/llvm/include/llvm/Support/BinaryStreamWriter.h head/contrib/llvm/include/llvm/Support/BlockFrequency.h head/contrib/llvm/include/llvm/Support/BranchProbability.h head/contrib/llvm/include/llvm/Support/BuryPointer.h head/contrib/llvm/include/llvm/Support/CBindingWrapping.h head/contrib/llvm/include/llvm/Support/CFGUpdate.h head/contrib/llvm/include/llvm/Support/COM.h head/contrib/llvm/include/llvm/Support/CachePruning.h head/contrib/llvm/include/llvm/Support/Capacity.h head/contrib/llvm/include/llvm/Support/Casting.h head/contrib/llvm/include/llvm/Support/CheckedArithmetic.h head/contrib/llvm/include/llvm/Support/Chrono.h head/contrib/llvm/include/llvm/Support/CodeGen.h head/contrib/llvm/include/llvm/Support/CodeGenCoverage.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/Compression.h head/contrib/llvm/include/llvm/Support/ConvertUTF.h head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h head/contrib/llvm/include/llvm/Support/DJB.h head/contrib/llvm/include/llvm/Support/DOTGraphTraits.h head/contrib/llvm/include/llvm/Support/DataExtractor.h head/contrib/llvm/include/llvm/Support/DataTypes.h head/contrib/llvm/include/llvm/Support/Debug.h head/contrib/llvm/include/llvm/Support/DebugCounter.h head/contrib/llvm/include/llvm/Support/DynamicLibrary.h head/contrib/llvm/include/llvm/Support/Endian.h head/contrib/llvm/include/llvm/Support/EndianStream.h head/contrib/llvm/include/llvm/Support/Errc.h head/contrib/llvm/include/llvm/Support/Errno.h head/contrib/llvm/include/llvm/Support/Error.h head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/ErrorOr.h head/contrib/llvm/include/llvm/Support/FileCheck.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/FileUtilities.h head/contrib/llvm/include/llvm/Support/Format.h head/contrib/llvm/include/llvm/Support/FormatAdapters.h head/contrib/llvm/include/llvm/Support/FormatCommon.h head/contrib/llvm/include/llvm/Support/FormatProviders.h head/contrib/llvm/include/llvm/Support/FormatVariadic.h head/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h head/contrib/llvm/include/llvm/Support/FormattedStream.h head/contrib/llvm/include/llvm/Support/GenericDomTree.h head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h head/contrib/llvm/include/llvm/Support/GlobPattern.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/Host.h head/contrib/llvm/include/llvm/Support/InitLLVM.h head/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h head/contrib/llvm/include/llvm/Support/JSON.h head/contrib/llvm/include/llvm/Support/JamCRC.h head/contrib/llvm/include/llvm/Support/KnownBits.h head/contrib/llvm/include/llvm/Support/LEB128.h head/contrib/llvm/include/llvm/Support/LineIterator.h head/contrib/llvm/include/llvm/Support/LockFileManager.h head/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h head/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h head/contrib/llvm/include/llvm/Support/MachineValueType.h head/contrib/llvm/include/llvm/Support/ManagedStatic.h head/contrib/llvm/include/llvm/Support/MathExtras.h head/contrib/llvm/include/llvm/Support/MemAlloc.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/MipsABIFlags.h head/contrib/llvm/include/llvm/Support/Mutex.h head/contrib/llvm/include/llvm/Support/MutexGuard.h head/contrib/llvm/include/llvm/Support/NativeFormatting.h head/contrib/llvm/include/llvm/Support/OnDiskHashTable.h head/contrib/llvm/include/llvm/Support/Options.h head/contrib/llvm/include/llvm/Support/Parallel.h head/contrib/llvm/include/llvm/Support/Path.h head/contrib/llvm/include/llvm/Support/PluginLoader.h head/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h head/contrib/llvm/include/llvm/Support/PrettyStackTrace.h head/contrib/llvm/include/llvm/Support/Printable.h head/contrib/llvm/include/llvm/Support/Process.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/RWMutex.h head/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h head/contrib/llvm/include/llvm/Support/Recycler.h head/contrib/llvm/include/llvm/Support/RecyclingAllocator.h head/contrib/llvm/include/llvm/Support/Regex.h head/contrib/llvm/include/llvm/Support/Registry.h head/contrib/llvm/include/llvm/Support/SHA1.h head/contrib/llvm/include/llvm/Support/SMLoc.h head/contrib/llvm/include/llvm/Support/SaveAndRestore.h head/contrib/llvm/include/llvm/Support/ScaledNumber.h head/contrib/llvm/include/llvm/Support/ScopedPrinter.h head/contrib/llvm/include/llvm/Support/Signals.h head/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h head/contrib/llvm/include/llvm/Support/Solaris/sys/regset.h head/contrib/llvm/include/llvm/Support/SourceMgr.h head/contrib/llvm/include/llvm/Support/SpecialCaseList.h head/contrib/llvm/include/llvm/Support/StringPool.h head/contrib/llvm/include/llvm/Support/StringSaver.h head/contrib/llvm/include/llvm/Support/SwapByteOrder.h head/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h head/contrib/llvm/include/llvm/Support/SystemUtils.h head/contrib/llvm/include/llvm/Support/TarWriter.h head/contrib/llvm/include/llvm/Support/TargetOpcodes.def head/contrib/llvm/include/llvm/Support/TargetParser.h head/contrib/llvm/include/llvm/Support/TargetRegistry.h head/contrib/llvm/include/llvm/Support/TargetSelect.h head/contrib/llvm/include/llvm/Support/TaskQueue.h head/contrib/llvm/include/llvm/Support/ThreadLocal.h head/contrib/llvm/include/llvm/Support/ThreadPool.h head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/ToolOutputFile.h head/contrib/llvm/include/llvm/Support/TrailingObjects.h head/contrib/llvm/include/llvm/Support/TrigramIndex.h head/contrib/llvm/include/llvm/Support/TypeName.h head/contrib/llvm/include/llvm/Support/Unicode.h head/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h head/contrib/llvm/include/llvm/Support/UniqueLock.h head/contrib/llvm/include/llvm/Support/Valgrind.h head/contrib/llvm/include/llvm/Support/VersionTuple.h head/contrib/llvm/include/llvm/Support/VirtualFileSystem.h head/contrib/llvm/include/llvm/Support/Watchdog.h head/contrib/llvm/include/llvm/Support/Win64EH.h head/contrib/llvm/include/llvm/Support/WindowsError.h head/contrib/llvm/include/llvm/Support/WithColor.h head/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h head/contrib/llvm/include/llvm/Support/X86TargetParser.def head/contrib/llvm/include/llvm/Support/YAMLParser.h head/contrib/llvm/include/llvm/Support/YAMLTraits.h head/contrib/llvm/include/llvm/Support/circular_raw_ostream.h head/contrib/llvm/include/llvm/Support/raw_os_ostream.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/raw_sha1_ostream.h head/contrib/llvm/include/llvm/Support/thread.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/TableGen/Error.h head/contrib/llvm/include/llvm/TableGen/Main.h head/contrib/llvm/include/llvm/TableGen/Record.h head/contrib/llvm/include/llvm/TableGen/SearchableTable.td head/contrib/llvm/include/llvm/TableGen/SetTheory.h head/contrib/llvm/include/llvm/TableGen/StringMatcher.h head/contrib/llvm/include/llvm/TableGen/StringToOffsetTable.h head/contrib/llvm/include/llvm/TableGen/TableGenBackend.h head/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h head/contrib/llvm/include/llvm/Target/GenericOpcodes.td head/contrib/llvm/include/llvm/Target/GlobalISel/RegisterBank.td head/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td head/contrib/llvm/include/llvm/Target/GlobalISel/Target.td head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetCallingConv.td head/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td head/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h head/contrib/llvm/include/llvm/Target/TargetItinerary.td head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetPfmCounters.td head/contrib/llvm/include/llvm/Target/TargetSchedule.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Testing/Support/Error.h head/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h head/contrib/llvm/include/llvm/TextAPI/ELF/ELFStub.h head/contrib/llvm/include/llvm/TextAPI/ELF/TBEHandler.h head/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h head/contrib/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h head/contrib/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h head/contrib/llvm/include/llvm/Transforms/Coroutines.h head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h head/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h head/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h head/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h head/contrib/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h head/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h head/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h head/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h head/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h head/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h head/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h head/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h head/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h head/contrib/llvm/include/llvm/Transforms/IPO/Internalize.h head/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h head/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h head/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h head/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h head/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h head/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h head/contrib/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h head/contrib/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h head/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombine.h head/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h head/contrib/llvm/include/llvm/Transforms/ObjCARC.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h head/contrib/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h head/contrib/llvm/include/llvm/Transforms/Scalar/BDCE.h head/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h head/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h head/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h head/contrib/llvm/include/llvm/Transforms/Scalar/DCE.h head/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h head/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h head/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h head/contrib/llvm/include/llvm/Transforms/Scalar/Float2Int.h head/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h head/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h head/contrib/llvm/include/llvm/Transforms/Scalar/GuardWidening.h head/contrib/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h head/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h head/contrib/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h head/contrib/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h head/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h head/contrib/llvm/include/llvm/Transforms/Scalar/LICM.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopPredication.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopRotation.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopSink.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h head/contrib/llvm/include/llvm/Transforms/Scalar/LowerAtomic.h head/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h head/contrib/llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h head/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h head/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h head/contrib/llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h head/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h head/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h head/contrib/llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h head/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h head/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h head/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h head/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h head/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h head/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h head/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h head/contrib/llvm/include/llvm/Transforms/Scalar/Sink.h head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h head/contrib/llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h head/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h head/contrib/llvm/include/llvm/Transforms/Utils.h head/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h head/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h head/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h head/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h head/contrib/llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h head/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h head/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h head/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/GlobalStatus.h head/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h head/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/LCSSA.h head/contrib/llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopSimplify.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopVersioning.h head/contrib/llvm/include/llvm/Transforms/Utils/LowerInvoke.h head/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h head/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h head/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h head/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h head/contrib/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h head/contrib/llvm/include/llvm/Transforms/Utils/SanitizerStats.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h head/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h head/contrib/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h head/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h head/contrib/llvm/include/llvm/Transforms/Utils/VNCoercion.h head/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h head/contrib/llvm/include/llvm/Transforms/Vectorize.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h head/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h head/contrib/llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h head/contrib/llvm/include/llvm/WindowsResource/ResourceProcessor.h head/contrib/llvm/include/llvm/WindowsResource/ResourceScriptToken.h head/contrib/llvm/include/llvm/WindowsResource/ResourceScriptTokenList.h head/contrib/llvm/include/llvm/XRay/BlockIndexer.h head/contrib/llvm/include/llvm/XRay/BlockPrinter.h head/contrib/llvm/include/llvm/XRay/BlockVerifier.h head/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h head/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h head/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h head/contrib/llvm/include/llvm/XRay/FDRRecords.h head/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h head/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h head/contrib/llvm/include/llvm/XRay/FileHeaderReader.h head/contrib/llvm/include/llvm/XRay/Graph.h head/contrib/llvm/include/llvm/XRay/InstrumentationMap.h head/contrib/llvm/include/llvm/XRay/Profile.h head/contrib/llvm/include/llvm/XRay/RecordPrinter.h head/contrib/llvm/include/llvm/XRay/Trace.h head/contrib/llvm/include/llvm/XRay/XRayRecord.h head/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h head/contrib/llvm/include/llvm/module.modulemap head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisSummary.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisSummary.h head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/AssumptionCache.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CFG.cpp head/contrib/llvm/lib/Analysis/CFGPrinter.cpp head/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/CFLGraph.h head/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp head/contrib/llvm/lib/Analysis/CallGraph.cpp head/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp head/contrib/llvm/lib/Analysis/CallPrinter.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp head/contrib/llvm/lib/Analysis/CodeMetrics.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/CostModel.cpp head/contrib/llvm/lib/Analysis/Delinearization.cpp head/contrib/llvm/lib/Analysis/DemandedBits.cpp head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DomPrinter.cpp head/contrib/llvm/lib/Analysis/DominanceFrontier.cpp head/contrib/llvm/lib/Analysis/EHPersonalities.cpp head/contrib/llvm/lib/Analysis/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/GuardUtils.cpp head/contrib/llvm/lib/Analysis/IVDescriptors.cpp head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp head/contrib/llvm/lib/Analysis/InlineCost.cpp head/contrib/llvm/lib/Analysis/InstCount.cpp head/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/Interval.cpp head/contrib/llvm/lib/Analysis/IntervalPartition.cpp head/contrib/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp head/contrib/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp head/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp head/contrib/llvm/lib/Analysis/MemDepPrinter.cpp head/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/MemoryLocation.cpp head/contrib/llvm/lib/Analysis/MemorySSA.cpp head/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp head/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp head/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp head/contrib/llvm/lib/Analysis/MustExecute.cpp head/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp head/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp head/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp head/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp head/contrib/llvm/lib/Analysis/OrderedInstructions.cpp head/contrib/llvm/lib/Analysis/PHITransAddr.cpp head/contrib/llvm/lib/Analysis/PhiValues.cpp head/contrib/llvm/lib/Analysis/PostDominators.cpp head/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp head/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPass.cpp head/contrib/llvm/lib/Analysis/RegionPrinter.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp head/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp head/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp head/contrib/llvm/lib/Analysis/StratifiedSets.h head/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp head/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp head/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp head/contrib/llvm/lib/Analysis/Trace.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp head/contrib/llvm/lib/Analysis/ValueLattice.cpp head/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Analysis/VectorUtils.cpp head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLLexer.h head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/AsmParser/Parser.cpp head/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp head/contrib/llvm/lib/BinaryFormat/Dwarf.cpp head/contrib/llvm/lib/BinaryFormat/Magic.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp head/contrib/llvm/lib/BinaryFormat/Wasm.cpp head/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h head/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp head/contrib/llvm/lib/Bitcode/Reader/ValueList.h head/contrib/llvm/lib/Bitcode/Writer/BitWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.h head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AntiDepBreaker.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h head/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp head/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.h head/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp head/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp head/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp head/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h head/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp head/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp head/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/EdgeBundles.cpp head/contrib/llvm/lib/CodeGen/ExecutionDomainFix.cpp head/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp head/contrib/llvm/lib/CodeGen/ExpandReductions.cpp head/contrib/llvm/lib/CodeGen/FEntryInserter.cpp head/contrib/llvm/lib/CodeGen/FaultMaps.cpp head/contrib/llvm/lib/CodeGen/FuncletLayout.cpp head/contrib/llvm/lib/CodeGen/GCMetadata.cpp head/contrib/llvm/lib/CodeGen/GCMetadataPrinter.cpp head/contrib/llvm/lib/CodeGen/GCRootLowering.cpp head/contrib/llvm/lib/CodeGen/GCStrategy.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp head/contrib/llvm/lib/CodeGen/IndirectBrExpandPass.cpp head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.h head/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp head/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp head/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp head/contrib/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp head/contrib/llvm/lib/CodeGen/LexicalScopes.cpp head/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.h head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp head/contrib/llvm/lib/CodeGen/LiveIntervals.cpp head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.h head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp head/contrib/llvm/lib/CodeGen/LiveRangeUtils.h head/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp head/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp head/contrib/llvm/lib/CodeGen/LiveStacks.cpp head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp head/contrib/llvm/lib/CodeGen/LoopTraversal.cpp head/contrib/llvm/lib/CodeGen/LowLevelType.cpp head/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp head/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp head/contrib/llvm/lib/CodeGen/MIRPrinter.cpp head/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCombiner.cpp head/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp head/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp head/contrib/llvm/lib/CodeGen/MachineDominators.cpp head/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp head/contrib/llvm/lib/CodeGen/MachineOperand.cpp head/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp head/contrib/llvm/lib/CodeGen/MachineOutliner.cpp head/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp head/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp head/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/MacroFusion.cpp head/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/PHIEliminationUtils.cpp head/contrib/llvm/lib/CodeGen/PHIEliminationUtils.h head/contrib/llvm/lib/CodeGen/ParallelCG.cpp head/contrib/llvm/lib/CodeGen/PatchableFunction.cpp head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp head/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.h head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp head/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp head/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.h head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp head/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp head/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/SafeStack.cpp head/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp head/contrib/llvm/lib/CodeGen/SafeStackColoring.h head/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp head/contrib/llvm/lib/CodeGen/SafeStackLayout.h head/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp head/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.h head/contrib/llvm/lib/CodeGen/Spiller.h head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/SplitKit.h head/contrib/llvm/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp head/contrib/llvm/lib/CodeGen/StackMaps.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/TailDuplication.cpp head/contrib/llvm/lib/CodeGen/TailDuplicator.cpp head/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp head/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp head/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/TargetSchedule.cpp head/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp head/contrib/llvm/lib/CodeGen/ValueTypes.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp head/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp head/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp head/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp head/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp head/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp head/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp head/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/Line.cpp head/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp head/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp head/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp head/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp head/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp head/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp head/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp head/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp head/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp head/contrib/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp head/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp head/contrib/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp head/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp head/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h head/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp head/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp head/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp head/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp head/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h head/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h head/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h head/contrib/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp head/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h head/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp head/contrib/llvm/lib/FuzzMutate/FuzzerCLI.cpp head/contrib/llvm/lib/FuzzMutate/IRMutator.cpp head/contrib/llvm/lib/FuzzMutate/OpDescriptor.cpp head/contrib/llvm/lib/FuzzMutate/Operations.cpp head/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp head/contrib/llvm/lib/IR/AsmWriter.cpp head/contrib/llvm/lib/IR/AttributeImpl.h head/contrib/llvm/lib/IR/Attributes.cpp head/contrib/llvm/lib/IR/AutoUpgrade.cpp head/contrib/llvm/lib/IR/BasicBlock.cpp head/contrib/llvm/lib/IR/Comdat.cpp head/contrib/llvm/lib/IR/ConstantFold.cpp head/contrib/llvm/lib/IR/ConstantFold.h head/contrib/llvm/lib/IR/ConstantRange.cpp head/contrib/llvm/lib/IR/Constants.cpp head/contrib/llvm/lib/IR/ConstantsContext.h head/contrib/llvm/lib/IR/Core.cpp head/contrib/llvm/lib/IR/DIBuilder.cpp head/contrib/llvm/lib/IR/DataLayout.cpp head/contrib/llvm/lib/IR/DebugInfo.cpp head/contrib/llvm/lib/IR/DebugInfoMetadata.cpp head/contrib/llvm/lib/IR/DebugLoc.cpp head/contrib/llvm/lib/IR/DiagnosticHandler.cpp head/contrib/llvm/lib/IR/DiagnosticInfo.cpp head/contrib/llvm/lib/IR/DiagnosticPrinter.cpp head/contrib/llvm/lib/IR/Dominators.cpp head/contrib/llvm/lib/IR/Function.cpp head/contrib/llvm/lib/IR/GVMaterializer.cpp head/contrib/llvm/lib/IR/Globals.cpp head/contrib/llvm/lib/IR/IRBuilder.cpp head/contrib/llvm/lib/IR/IRPrintingPasses.cpp head/contrib/llvm/lib/IR/InlineAsm.cpp head/contrib/llvm/lib/IR/Instruction.cpp head/contrib/llvm/lib/IR/Instructions.cpp head/contrib/llvm/lib/IR/IntrinsicInst.cpp head/contrib/llvm/lib/IR/LLVMContext.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.h head/contrib/llvm/lib/IR/LegacyPassManager.cpp head/contrib/llvm/lib/IR/MDBuilder.cpp head/contrib/llvm/lib/IR/Mangler.cpp head/contrib/llvm/lib/IR/Metadata.cpp head/contrib/llvm/lib/IR/MetadataImpl.h head/contrib/llvm/lib/IR/Module.cpp head/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp head/contrib/llvm/lib/IR/Operator.cpp head/contrib/llvm/lib/IR/OptBisect.cpp head/contrib/llvm/lib/IR/Pass.cpp head/contrib/llvm/lib/IR/PassInstrumentation.cpp head/contrib/llvm/lib/IR/PassManager.cpp head/contrib/llvm/lib/IR/PassRegistry.cpp head/contrib/llvm/lib/IR/PassTimingInfo.cpp head/contrib/llvm/lib/IR/ProfileSummary.cpp head/contrib/llvm/lib/IR/SafepointIRVerifier.cpp head/contrib/llvm/lib/IR/Statepoint.cpp head/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h head/contrib/llvm/lib/IR/Type.cpp head/contrib/llvm/lib/IR/TypeFinder.cpp head/contrib/llvm/lib/IR/Use.cpp head/contrib/llvm/lib/IR/User.cpp head/contrib/llvm/lib/IR/Value.cpp head/contrib/llvm/lib/IR/ValueSymbolTable.cpp head/contrib/llvm/lib/IR/Verifier.cpp head/contrib/llvm/lib/IRReader/IRReader.cpp head/contrib/llvm/lib/LTO/Caching.cpp head/contrib/llvm/lib/LTO/LTO.cpp head/contrib/llvm/lib/LTO/LTOBackend.cpp head/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/LTOModule.cpp head/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp head/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp head/contrib/llvm/lib/LineEditor/LineEditor.cpp head/contrib/llvm/lib/Linker/IRMover.cpp head/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h head/contrib/llvm/lib/Linker/LinkModules.cpp head/contrib/llvm/lib/MC/ConstantPools.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmBackend.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp head/contrib/llvm/lib/MC/MCAsmInfoELF.cpp head/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp head/contrib/llvm/lib/MC/MCAsmMacro.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCCodeEmitter.cpp head/contrib/llvm/lib/MC/MCCodePadder.cpp head/contrib/llvm/lib/MC/MCCodeView.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h head/contrib/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp head/contrib/llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp head/contrib/llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCFragment.cpp head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCInstPrinter.cpp head/contrib/llvm/lib/MC/MCInstrAnalysis.cpp head/contrib/llvm/lib/MC/MCInstrDesc.cpp head/contrib/llvm/lib/MC/MCLabel.cpp head/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCMachObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCNullStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCObjectWriter.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParserExtension.cpp head/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp head/contrib/llvm/lib/MC/MCRegisterInfo.cpp head/contrib/llvm/lib/MC/MCSchedule.cpp head/contrib/llvm/lib/MC/MCSection.cpp head/contrib/llvm/lib/MC/MCSectionCOFF.cpp head/contrib/llvm/lib/MC/MCSectionELF.cpp head/contrib/llvm/lib/MC/MCSectionMachO.cpp head/contrib/llvm/lib/MC/MCSectionWasm.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSubtargetInfo.cpp head/contrib/llvm/lib/MC/MCSymbol.cpp head/contrib/llvm/lib/MC/MCSymbolELF.cpp head/contrib/llvm/lib/MC/MCTargetOptions.cpp head/contrib/llvm/lib/MC/MCValue.cpp head/contrib/llvm/lib/MC/MCWasmObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCWasmStreamer.cpp head/contrib/llvm/lib/MC/MCWin64EH.cpp head/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp head/contrib/llvm/lib/MC/MCWinEH.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/StringTableBuilder.cpp head/contrib/llvm/lib/MC/SubtargetFeature.cpp head/contrib/llvm/lib/MC/WasmObjectWriter.cpp head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/MCA/Context.cpp head/contrib/llvm/lib/MCA/HWEventListener.cpp head/contrib/llvm/lib/MCA/HardwareUnits/HardwareUnit.cpp head/contrib/llvm/lib/MCA/HardwareUnits/LSUnit.cpp head/contrib/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp head/contrib/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp head/contrib/llvm/lib/MCA/HardwareUnits/RetireControlUnit.cpp head/contrib/llvm/lib/MCA/HardwareUnits/Scheduler.cpp head/contrib/llvm/lib/MCA/InstrBuilder.cpp head/contrib/llvm/lib/MCA/Instruction.cpp head/contrib/llvm/lib/MCA/Pipeline.cpp head/contrib/llvm/lib/MCA/Stages/DispatchStage.cpp head/contrib/llvm/lib/MCA/Stages/EntryStage.cpp head/contrib/llvm/lib/MCA/Stages/ExecuteStage.cpp head/contrib/llvm/lib/MCA/Stages/InstructionTables.cpp head/contrib/llvm/lib/MCA/Stages/RetireStage.cpp head/contrib/llvm/lib/MCA/Stages/Stage.cpp head/contrib/llvm/lib/MCA/Support.cpp head/contrib/llvm/lib/Object/Archive.cpp head/contrib/llvm/lib/Object/ArchiveWriter.cpp head/contrib/llvm/lib/Object/Binary.cpp head/contrib/llvm/lib/Object/COFFImportFile.cpp head/contrib/llvm/lib/Object/COFFModuleDefinition.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/Decompressor.cpp head/contrib/llvm/lib/Object/ELF.cpp head/contrib/llvm/lib/Object/ELFObjectFile.cpp head/contrib/llvm/lib/Object/Error.cpp head/contrib/llvm/lib/Object/IRObjectFile.cpp head/contrib/llvm/lib/Object/IRSymtab.cpp head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/MachOUniversal.cpp head/contrib/llvm/lib/Object/ModuleSymbolTable.cpp head/contrib/llvm/lib/Object/Object.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Object/RecordStreamer.cpp head/contrib/llvm/lib/Object/RecordStreamer.h head/contrib/llvm/lib/Object/SymbolSize.cpp head/contrib/llvm/lib/Object/SymbolicFile.cpp head/contrib/llvm/lib/Object/WasmObjectFile.cpp head/contrib/llvm/lib/Object/WindowsResource.cpp head/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp head/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp head/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp head/contrib/llvm/lib/ObjectYAML/DWARFVisitor.h head/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp head/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp head/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp head/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp head/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp head/contrib/llvm/lib/ObjectYAML/YAML.cpp head/contrib/llvm/lib/Option/Arg.cpp head/contrib/llvm/lib/Option/ArgList.cpp head/contrib/llvm/lib/Option/OptTable.cpp head/contrib/llvm/lib/Option/Option.cpp head/contrib/llvm/lib/Passes/PassBuilder.cpp head/contrib/llvm/lib/Passes/PassPlugin.cpp head/contrib/llvm/lib/Passes/PassRegistry.def head/contrib/llvm/lib/Passes/StandardInstrumentations.cpp head/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp head/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp head/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp head/contrib/llvm/lib/ProfileData/GCOV.cpp head/contrib/llvm/lib/ProfileData/InstrProf.cpp head/contrib/llvm/lib/ProfileData/InstrProfReader.cpp head/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp head/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp head/contrib/llvm/lib/ProfileData/SampleProf.cpp head/contrib/llvm/lib/ProfileData/SampleProfReader.cpp head/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp head/contrib/llvm/lib/Support/AArch64TargetParser.cpp head/contrib/llvm/lib/Support/AMDGPUMetadata.cpp head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/APInt.cpp head/contrib/llvm/lib/Support/APSInt.cpp head/contrib/llvm/lib/Support/ARMAttributeParser.cpp head/contrib/llvm/lib/Support/ARMBuildAttrs.cpp head/contrib/llvm/lib/Support/ARMTargetParser.cpp head/contrib/llvm/lib/Support/ARMWinEH.cpp head/contrib/llvm/lib/Support/Allocator.cpp head/contrib/llvm/lib/Support/Atomic.cpp head/contrib/llvm/lib/Support/BinaryStreamError.cpp head/contrib/llvm/lib/Support/BinaryStreamReader.cpp head/contrib/llvm/lib/Support/BinaryStreamRef.cpp head/contrib/llvm/lib/Support/BinaryStreamWriter.cpp head/contrib/llvm/lib/Support/BlockFrequency.cpp head/contrib/llvm/lib/Support/BranchProbability.cpp head/contrib/llvm/lib/Support/BuryPointer.cpp head/contrib/llvm/lib/Support/COM.cpp head/contrib/llvm/lib/Support/CachePruning.cpp head/contrib/llvm/lib/Support/Chrono.cpp head/contrib/llvm/lib/Support/CodeGenCoverage.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/Compression.cpp head/contrib/llvm/lib/Support/ConvertUTF.cpp head/contrib/llvm/lib/Support/ConvertUTFWrapper.cpp head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp head/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp head/contrib/llvm/lib/Support/DJB.cpp head/contrib/llvm/lib/Support/DataExtractor.cpp head/contrib/llvm/lib/Support/Debug.cpp head/contrib/llvm/lib/Support/DeltaAlgorithm.cpp head/contrib/llvm/lib/Support/DynamicLibrary.cpp head/contrib/llvm/lib/Support/Errno.cpp head/contrib/llvm/lib/Support/Error.cpp head/contrib/llvm/lib/Support/ErrorHandling.cpp head/contrib/llvm/lib/Support/FileCheck.cpp head/contrib/llvm/lib/Support/FileOutputBuffer.cpp head/contrib/llvm/lib/Support/FileUtilities.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/FormatVariadic.cpp head/contrib/llvm/lib/Support/FormattedStream.cpp head/contrib/llvm/lib/Support/GlobPattern.cpp head/contrib/llvm/lib/Support/GraphWriter.cpp head/contrib/llvm/lib/Support/Hashing.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/InitLLVM.cpp head/contrib/llvm/lib/Support/IntEqClasses.cpp head/contrib/llvm/lib/Support/IntervalMap.cpp head/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp head/contrib/llvm/lib/Support/JSON.cpp head/contrib/llvm/lib/Support/JamCRC.cpp head/contrib/llvm/lib/Support/KnownBits.cpp head/contrib/llvm/lib/Support/LEB128.cpp head/contrib/llvm/lib/Support/LineIterator.cpp head/contrib/llvm/lib/Support/LockFileManager.cpp head/contrib/llvm/lib/Support/LowLevelType.cpp head/contrib/llvm/lib/Support/ManagedStatic.cpp head/contrib/llvm/lib/Support/MathExtras.cpp head/contrib/llvm/lib/Support/Memory.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/Mutex.cpp head/contrib/llvm/lib/Support/NativeFormatting.cpp head/contrib/llvm/lib/Support/Options.cpp head/contrib/llvm/lib/Support/Parallel.cpp head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/PluginLoader.cpp head/contrib/llvm/lib/Support/PrettyStackTrace.cpp head/contrib/llvm/lib/Support/Process.cpp head/contrib/llvm/lib/Support/Program.cpp head/contrib/llvm/lib/Support/RWMutex.cpp head/contrib/llvm/lib/Support/RandomNumberGenerator.cpp head/contrib/llvm/lib/Support/Regex.cpp head/contrib/llvm/lib/Support/SHA1.cpp head/contrib/llvm/lib/Support/ScaledNumber.cpp head/contrib/llvm/lib/Support/Signals.cpp head/contrib/llvm/lib/Support/SmallPtrSet.cpp head/contrib/llvm/lib/Support/SmallVector.cpp head/contrib/llvm/lib/Support/SourceMgr.cpp head/contrib/llvm/lib/Support/SpecialCaseList.cpp head/contrib/llvm/lib/Support/Statistic.cpp head/contrib/llvm/lib/Support/StringExtras.cpp head/contrib/llvm/lib/Support/StringMap.cpp head/contrib/llvm/lib/Support/StringPool.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/StringSaver.cpp head/contrib/llvm/lib/Support/SymbolRemappingReader.cpp head/contrib/llvm/lib/Support/SystemUtils.cpp head/contrib/llvm/lib/Support/TarWriter.cpp head/contrib/llvm/lib/Support/TargetParser.cpp head/contrib/llvm/lib/Support/TargetRegistry.cpp head/contrib/llvm/lib/Support/ThreadLocal.cpp head/contrib/llvm/lib/Support/ThreadPool.cpp head/contrib/llvm/lib/Support/Threading.cpp head/contrib/llvm/lib/Support/Timer.cpp head/contrib/llvm/lib/Support/ToolOutputFile.cpp head/contrib/llvm/lib/Support/TrigramIndex.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Twine.cpp head/contrib/llvm/lib/Support/Unicode.cpp head/contrib/llvm/lib/Support/Unix/COM.inc head/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc head/contrib/llvm/lib/Support/Unix/Host.inc head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Mutex.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Process.inc head/contrib/llvm/lib/Support/Unix/Program.inc head/contrib/llvm/lib/Support/Unix/RWMutex.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Unix/ThreadLocal.inc head/contrib/llvm/lib/Support/Unix/Threading.inc head/contrib/llvm/lib/Support/Unix/Unix.h head/contrib/llvm/lib/Support/Unix/Watchdog.inc head/contrib/llvm/lib/Support/Valgrind.cpp head/contrib/llvm/lib/Support/VersionTuple.cpp head/contrib/llvm/lib/Support/VirtualFileSystem.cpp head/contrib/llvm/lib/Support/Watchdog.cpp head/contrib/llvm/lib/Support/Windows/COM.inc head/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc head/contrib/llvm/lib/Support/Windows/Host.inc head/contrib/llvm/lib/Support/Windows/Memory.inc head/contrib/llvm/lib/Support/Windows/Mutex.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/Process.inc head/contrib/llvm/lib/Support/Windows/Program.inc head/contrib/llvm/lib/Support/Windows/RWMutex.inc head/contrib/llvm/lib/Support/Windows/Signals.inc head/contrib/llvm/lib/Support/Windows/ThreadLocal.inc head/contrib/llvm/lib/Support/Windows/Threading.inc head/contrib/llvm/lib/Support/Windows/Watchdog.inc head/contrib/llvm/lib/Support/Windows/WindowsSupport.h head/contrib/llvm/lib/Support/WithColor.cpp head/contrib/llvm/lib/Support/YAMLParser.cpp head/contrib/llvm/lib/Support/YAMLTraits.cpp head/contrib/llvm/lib/Support/circular_raw_ostream.cpp head/contrib/llvm/lib/Support/raw_os_ostream.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/TableGen/Error.cpp head/contrib/llvm/lib/TableGen/JSONBackend.cpp head/contrib/llvm/lib/TableGen/Main.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/SetTheory.cpp head/contrib/llvm/lib/TableGen/StringMatcher.cpp head/contrib/llvm/lib/TableGen/TGLexer.cpp head/contrib/llvm/lib/TableGen/TGLexer.h head/contrib/llvm/lib/TableGen/TGParser.cpp head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/TableGen/TableGenBackend.cpp head/contrib/llvm/lib/Target/AArch64/AArch64.h head/contrib/llvm/lib/Target/AArch64/AArch64.td head/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp head/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp head/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td head/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp head/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def head/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.h head/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp head/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h head/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h head/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td head/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp head/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBanks.td head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedKryoDetails.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td head/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td head/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp head/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h head/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h head/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h head/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td head/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFeatures.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDKernelCodeT.h head/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp head/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td head/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td head/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td head/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp head/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h head/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td head/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td head/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h head/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h head/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td head/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h head/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp head/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td head/contrib/llvm/lib/Target/AMDGPU/R600.td head/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.h head/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp head/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp head/contrib/llvm/lib/Target/AMDGPU/R600Defines.h head/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp head/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp head/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td head/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h head/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.h head/contrib/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp head/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp head/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp head/contrib/llvm/lib/Target/AMDGPU/R600Processors.td head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/R600Schedule.td head/contrib/llvm/lib/Target/AMDGPU/R700Instructions.td head/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp head/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SIDefines.h head/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixVGPRCopies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h head/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp head/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp head/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp head/contrib/llvm/lib/Target/AMDGPU/SIProgramInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/SISchedule.td head/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp head/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp head/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td head/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h head/contrib/llvm/lib/Target/AMDGPU/VIInstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/VIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td head/contrib/llvm/lib/Target/ARC/ARC.h head/contrib/llvm/lib/Target/ARC/ARC.td head/contrib/llvm/lib/Target/ARC/ARCAsmPrinter.cpp head/contrib/llvm/lib/Target/ARC/ARCBranchFinalize.cpp head/contrib/llvm/lib/Target/ARC/ARCCallingConv.td head/contrib/llvm/lib/Target/ARC/ARCExpandPseudos.cpp head/contrib/llvm/lib/Target/ARC/ARCFrameLowering.cpp head/contrib/llvm/lib/Target/ARC/ARCFrameLowering.h head/contrib/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARC/ARCISelLowering.cpp head/contrib/llvm/lib/Target/ARC/ARCISelLowering.h head/contrib/llvm/lib/Target/ARC/ARCInstrFormats.td head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.cpp head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.h head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.td head/contrib/llvm/lib/Target/ARC/ARCMCInstLower.cpp head/contrib/llvm/lib/Target/ARC/ARCMCInstLower.h head/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.cpp head/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.h head/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.td head/contrib/llvm/lib/Target/ARC/ARCSubtarget.cpp head/contrib/llvm/lib/Target/ARC/ARCSubtarget.h head/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp head/contrib/llvm/lib/Target/ARC/ARCTargetMachine.h head/contrib/llvm/lib/Target/ARC/ARCTargetStreamer.h head/contrib/llvm/lib/Target/ARC/ARCTargetTransformInfo.h head/contrib/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInfo.h head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.h head/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp head/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARM.h head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMCallLowering.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFeatures.h head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.h head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h head/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp head/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp head/contrib/llvm/lib/Target/ARM/ARMPerfectShuffle.h head/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterBanks.td head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMSchedule.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA57WriteRes.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA8.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td head/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td head/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td head/contrib/llvm/lib/Target/ARM/ARMScheduleV6.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp head/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h head/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp head/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h head/contrib/llvm/lib/Target/AVR/AVR.h head/contrib/llvm/lib/Target/AVR/AVR.td head/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp head/contrib/llvm/lib/Target/AVR/AVRCallingConv.td head/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp head/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h head/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp head/contrib/llvm/lib/Target/AVR/AVRISelLowering.h head/contrib/llvm/lib/Target/AVR/AVRInstrFormats.td head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.cpp head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td head/contrib/llvm/lib/Target/AVR/AVRMCInstLower.cpp head/contrib/llvm/lib/Target/AVR/AVRMCInstLower.h head/contrib/llvm/lib/Target/AVR/AVRMachineFunctionInfo.h head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td head/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp head/contrib/llvm/lib/Target/AVR/AVRSelectionDAGInfo.h head/contrib/llvm/lib/Target/AVR/AVRSubtarget.cpp head/contrib/llvm/lib/Target/AVR/AVRSubtarget.h head/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp head/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h head/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp head/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.h head/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp head/contrib/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h head/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp head/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp head/contrib/llvm/lib/Target/BPF/BPF.h head/contrib/llvm/lib/Target/BPF/BPF.td head/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp head/contrib/llvm/lib/Target/BPF/BPFCallingConv.td head/contrib/llvm/lib/Target/BPF/BPFFrameLowering.cpp head/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h head/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp head/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp head/contrib/llvm/lib/Target/BPF/BPFISelLowering.h head/contrib/llvm/lib/Target/BPF/BPFInstrFormats.td head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.cpp head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td head/contrib/llvm/lib/Target/BPF/BPFMCInstLower.cpp head/contrib/llvm/lib/Target/BPF/BPFMCInstLower.h head/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp head/contrib/llvm/lib/Target/BPF/BPFMIPeephole.cpp head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.td head/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.h head/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp head/contrib/llvm/lib/Target/BPF/BPFSubtarget.h head/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp head/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h head/contrib/llvm/lib/Target/BPF/BTF.def head/contrib/llvm/lib/Target/BPF/BTF.h head/contrib/llvm/lib/Target/BPF/BTFDebug.cpp head/contrib/llvm/lib/Target/BPF/BTFDebug.h head/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h head/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp head/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp head/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp head/contrib/llvm/lib/Target/Hexagon/BitTracker.h head/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp head/contrib/llvm/lib/Target/Hexagon/Hexagon.h head/contrib/llvm/lib/Target/Hexagon/Hexagon.td head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h head/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h head/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h head/contrib/llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCallingConv.td head/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h head/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.h head/contrib/llvm/lib/Target/Hexagon/HexagonIICHVX.td head/contrib/llvm/lib/Target/Hexagon/HexagonIICScalar.td head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h head/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td head/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td head/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td head/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td head/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td head/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td head/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV55.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV62.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td head/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonVExtract.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h head/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h head/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp head/contrib/llvm/lib/Target/Hexagon/RDFCopy.h head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h head/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp head/contrib/llvm/lib/Target/Hexagon/RDFGraph.h head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h head/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp head/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h head/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp head/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp head/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp head/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h head/contrib/llvm/lib/Target/Lanai/Lanai.h head/contrib/llvm/lib/Target/Lanai/Lanai.td head/contrib/llvm/lib/Target/Lanai/LanaiAluCode.h head/contrib/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp head/contrib/llvm/lib/Target/Lanai/LanaiCallingConv.td head/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp head/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h head/contrib/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp head/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h head/contrib/llvm/lib/Target/Lanai/LanaiInstrFormats.td head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.td head/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.cpp head/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.h head/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.h head/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp head/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp head/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h head/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.td head/contrib/llvm/lib/Target/Lanai/LanaiSchedule.td head/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.h head/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.cpp head/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h head/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp head/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h head/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp head/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.h head/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h head/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp head/contrib/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp head/contrib/llvm/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h head/contrib/llvm/lib/Target/MSP430/MSP430.h head/contrib/llvm/lib/Target/MSP430/MSP430.td head/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp head/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp head/contrib/llvm/lib/Target/MSP430/MSP430CallingConv.td head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td head/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp head/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.h head/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td head/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp head/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h head/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp head/contrib/llvm/lib/Target/Mips/Mips.h head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.h head/contrib/llvm/lib/Target/Mips/Mips16InstrFormats.td head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.h head/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp head/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h head/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp head/contrib/llvm/lib/Target/Mips/MipsCCState.cpp head/contrib/llvm/lib/Target/Mips/MipsCCState.h head/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsCallLowering.h head/contrib/llvm/lib/Target/Mips/MipsCallingConv.td head/contrib/llvm/lib/Target/Mips/MipsCondMov.td head/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp head/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h head/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h head/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp head/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h head/contrib/llvm/lib/Target/Mips/MipsOs16.cpp head/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterBanks.td head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td head/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h head/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h head/contrib/llvm/lib/Target/NVPTX/ManagedStringPool.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.td head/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrFormats.td head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.h head/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.h head/contrib/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp head/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp head/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp head/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp head/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h head/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td head/contrib/llvm/lib/Target/PowerPC/PPC.h head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCCState.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCCState.h head/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.h head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td head/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp head/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.h head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrBuilder.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrHTM.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td head/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCPerfectShuffle.h head/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td head/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp head/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp head/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP8.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetStreamer.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp head/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp head/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp head/contrib/llvm/lib/Target/PowerPC/README_P9.txt head/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp head/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp head/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h head/contrib/llvm/lib/Target/RISCV/RISCV.h head/contrib/llvm/lib/Target/RISCV/RISCV.td head/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp head/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td head/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h head/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td head/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp head/contrib/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h head/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h head/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td head/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h head/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h head/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp head/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp head/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h head/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp head/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.h head/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp head/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp head/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp head/contrib/llvm/lib/Target/Sparc/LeonFeatures.td head/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp head/contrib/llvm/lib/Target/Sparc/LeonPasses.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h head/contrib/llvm/lib/Target/Sparc/Sparc.h head/contrib/llvm/lib/Target/Sparc/Sparc.td head/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp head/contrib/llvm/lib/Target/Sparc/SparcCallingConv.td head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h head/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h head/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td head/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td head/contrib/llvm/lib/Target/Sparc/SparcInstrFormats.td head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td head/contrib/llvm/lib/Target/Sparc/SparcMCInstLower.cpp head/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td head/contrib/llvm/lib/Target/Sparc/SparcSchedule.td head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h head/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.h head/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp head/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp head/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h head/contrib/llvm/lib/Target/SystemZ/SystemZ.h head/contrib/llvm/lib/Target/SystemZ/SystemZ.td head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.h head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h head/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h head/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrDFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrHFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td head/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.h head/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h head/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td head/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td head/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td head/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h head/contrib/llvm/lib/Target/SystemZ/SystemZTDC.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h head/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp head/contrib/llvm/lib/Target/Target.cpp head/contrib/llvm/lib/Target/TargetIntrinsicInfo.cpp head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp head/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp head/contrib/llvm/lib/Target/WebAssembly/README.txt head/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.h head/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h head/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp head/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h head/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp head/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp head/contrib/llvm/lib/Target/X86/X86CallLowering.cpp head/contrib/llvm/lib/Target/X86/X86CallLowering.h head/contrib/llvm/lib/Target/X86/X86CallingConv.cpp head/contrib/llvm/lib/Target/X86/X86CallingConv.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp head/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp head/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp head/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp head/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp head/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp head/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp head/contrib/llvm/lib/Target/X86/X86FixupSetCC.cpp head/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.h head/contrib/llvm/lib/Target/X86/X86GenRegisterBankInfo.def head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp head/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp head/contrib/llvm/lib/Target/X86/X86Instr3DNow.td head/contrib/llvm/lib/Target/X86/X86InstrAVX512.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrBuilder.h head/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrExtension.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.cpp head/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.h head/contrib/llvm/lib/Target/X86/X86InstrFPStack.td head/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp head/contrib/llvm/lib/Target/X86/X86InstrFoldTables.h head/contrib/llvm/lib/Target/X86/X86InstrFormats.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrMPX.td head/contrib/llvm/lib/Target/X86/X86InstrSGX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrSVM.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrSystem.td head/contrib/llvm/lib/Target/X86/X86InstrTSX.td head/contrib/llvm/lib/Target/X86/X86InstrVMX.td head/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp head/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp head/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h head/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp head/contrib/llvm/lib/Target/X86/X86LegalizerInfo.h head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h head/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp head/contrib/llvm/lib/Target/X86/X86MacroFusion.h head/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp head/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp head/contrib/llvm/lib/Target/X86/X86PfmCounters.td head/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterBanks.td head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp head/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td head/contrib/llvm/lib/Target/X86/X86SchedHaswell.td head/contrib/llvm/lib/Target/X86/X86SchedPredicates.td head/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td head/contrib/llvm/lib/Target/X86/X86Schedule.td head/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td head/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td head/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td head/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td head/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.h head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h head/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetMachine.h head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h head/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp head/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp head/contrib/llvm/lib/Target/X86/X86WinEHState.cpp head/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h head/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp head/contrib/llvm/lib/Target/XCore/XCore.h head/contrib/llvm/lib/Target/XCore/XCore.td head/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp head/contrib/llvm/lib/Target/XCore/XCoreCallingConv.td head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h head/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h head/contrib/llvm/lib/Target/XCore/XCoreInstrFormats.td head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td head/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp head/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.cpp head/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.h head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.td head/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.h head/contrib/llvm/lib/Target/XCore/XCoreSubtarget.cpp head/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.h head/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h head/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h head/contrib/llvm/lib/Testing/Support/Error.cpp head/contrib/llvm/lib/TextAPI/ELF/ELFStub.cpp head/contrib/llvm/lib/TextAPI/ELF/TBEHandler.cpp head/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp head/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp head/contrib/llvm/lib/ToolDrivers/llvm-lib/Options.td head/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp head/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h head/contrib/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h head/contrib/llvm/lib/Transforms/Coroutines/CoroInternal.h head/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp head/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp head/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp head/contrib/llvm/lib/Transforms/IPO/BlockExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp head/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp head/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp head/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp head/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/IPO/SCCP.cpp head/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp head/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp head/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp head/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp head/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp head/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h head/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp head/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h head/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp head/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h head/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h head/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp head/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp head/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp head/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Float2Int.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp head/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp head/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp head/contrib/llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp head/contrib/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp head/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp head/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp head/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp head/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp head/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp head/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp head/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Sink.cpp head/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp head/contrib/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp head/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp head/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp head/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp head/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp head/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp head/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp head/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp head/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp head/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp head/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp head/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp head/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp head/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp head/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp head/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LoopVersioning.cpp head/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp head/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp head/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp head/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp head/contrib/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp head/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp head/contrib/llvm/lib/Transforms/Utils/SanitizerStats.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp head/contrib/llvm/lib/Transforms/Utils/StripGCRelocates.cpp head/contrib/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp head/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp head/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp head/contrib/llvm/lib/Transforms/Utils/Utils.cpp head/contrib/llvm/lib/Transforms/Utils/VNCoercion.cpp head/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h head/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlan.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.h head/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp head/contrib/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp head/contrib/llvm/lib/XRay/BlockIndexer.cpp head/contrib/llvm/lib/XRay/BlockPrinter.cpp head/contrib/llvm/lib/XRay/BlockVerifier.cpp head/contrib/llvm/lib/XRay/FDRRecordProducer.cpp head/contrib/llvm/lib/XRay/FDRRecords.cpp head/contrib/llvm/lib/XRay/FDRTraceExpander.cpp head/contrib/llvm/lib/XRay/FDRTraceWriter.cpp head/contrib/llvm/lib/XRay/FileHeaderReader.cpp head/contrib/llvm/lib/XRay/InstrumentationMap.cpp head/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp head/contrib/llvm/lib/XRay/Profile.cpp head/contrib/llvm/lib/XRay/RecordInitializer.cpp head/contrib/llvm/lib/XRay/RecordPrinter.cpp head/contrib/llvm/lib/XRay/Trace.cpp head/contrib/llvm/tools/bugpoint/BugDriver.cpp head/contrib/llvm/tools/bugpoint/BugDriver.h head/contrib/llvm/tools/bugpoint/CrashDebugger.cpp head/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp head/contrib/llvm/tools/bugpoint/ExtractFunction.cpp head/contrib/llvm/tools/bugpoint/FindBugs.cpp head/contrib/llvm/tools/bugpoint/ListReducer.h head/contrib/llvm/tools/bugpoint/Miscompilation.cpp head/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.h head/contrib/llvm/tools/bugpoint/bugpoint.cpp head/contrib/llvm/tools/clang/FREEBSD-Xlist head/contrib/llvm/tools/clang/LICENSE.TXT head/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h head/contrib/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h head/contrib/llvm/tools/clang/include/clang-c/CXString.h head/contrib/llvm/tools/clang/include/clang-c/Documentation.h head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang-c/Platform.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h head/contrib/llvm/tools/clang/include/clang/AST/APValue.h head/contrib/llvm/tools/clang/include/clang/AST/AST.h head/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h head/contrib/llvm/tools/clang/include/clang/AST/ASTFwd.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h head/contrib/llvm/tools/clang/include/clang/AST/ASTLambda.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h head/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h head/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h head/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Availability.h head/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h head/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/Comment.h head/contrib/llvm/tools/clang/include/clang/AST/CommentBriefParser.h head/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h head/contrib/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h head/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h head/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h head/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/ComparisonCategories.h head/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclAccessPair.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h head/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/FormatString.h head/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h head/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h head/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/LocInfoType.h head/contrib/llvm/tools/clang/include/clang/AST/Mangle.h head/contrib/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h head/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h head/contrib/llvm/tools/clang/include/clang/AST/OSLog.h head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h head/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h head/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h head/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h head/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td head/contrib/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h head/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h head/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h head/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h head/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLocNodes.def head/contrib/llvm/tools/clang/include/clang/AST/TypeLocVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def head/contrib/llvm/tools/clang/include/clang/AST/TypeOrdering.h head/contrib/llvm/tools/clang/include/clang/AST/TypeVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h head/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h head/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h head/contrib/llvm/tools/clang/include/clang/Analysis/CodeInjector.h head/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h head/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowValues.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h head/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h head/contrib/llvm/tools/clang/include/clang/Basic/ABI.h head/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h head/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h head/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/AttrSubjectMatchRules.h head/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h head/contrib/llvm/tools/clang/include/clang/Basic/BitmaskEnum.h head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsLe64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsXCore.def head/contrib/llvm/tools/clang/include/clang/Basic/CapturedStmt.h head/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/CommentOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h head/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h head/contrib/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/Features.def head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h head/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h head/contrib/llvm/tools/clang/include/clang/Basic/Lambda.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h head/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def head/contrib/llvm/tools/clang/include/clang/Basic/MacroBuilder.h head/contrib/llvm/tools/clang/include/clang/Basic/Module.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLImageTypes.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h head/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h head/contrib/llvm/tools/clang/include/clang/Basic/PragmaKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/Stack.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/Version.h head/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h head/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def head/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h head/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_fp16.td head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td head/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitBuilder.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/ClangOptionDocs.td head/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h head/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h head/contrib/llvm/tools/clang/include/clang/Driver/Distro.h head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/Phases.h head/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/include/clang/Driver/Tool.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.def head/contrib/llvm/tools/clang/include/clang/Driver/Types.h head/contrib/llvm/tools/clang/include/clang/Driver/Util.h head/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h head/contrib/llvm/tools/clang/include/clang/Edit/Commit.h head/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h head/contrib/llvm/tools/clang/include/clang/Edit/EditsReceiver.h head/contrib/llvm/tools/clang/include/clang/Edit/FileOffset.h head/contrib/llvm/tools/clang/include/clang/Edit/Rewriters.h head/contrib/llvm/tools/clang/include/clang/Format/Format.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h head/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/MigratorOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h head/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnostics.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/FrontendTool/Utils.h head/contrib/llvm/tools/clang/include/clang/Index/CodegenNameGenerator.h head/contrib/llvm/tools/clang/include/clang/Index/CommentToXML.h head/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h head/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h head/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h head/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h head/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMapTypes.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/ScratchBuffer.h head/contrib/llvm/tools/clang/include/clang/Lex/Token.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h head/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h head/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h head/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/Rewriters.h head/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h head/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h head/contrib/llvm/tools/clang/include/clang/Sema/CleanupInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/Designator.h head/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaLambda.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateInstCallback.h head/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h head/contrib/llvm/tools/clang/include/clang/Sema/Weak.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h head/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h head/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiff.h head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiffInternal.h head/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h head/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h head/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h head/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h head/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h head/contrib/llvm/tools/clang/include/clang/Tooling/FixIt.h head/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/HeaderIncludes.h head/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/IncludeStyle.h head/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/Extract.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h head/contrib/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h head/contrib/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h head/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h head/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMTActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h head/contrib/llvm/tools/clang/lib/AST/APValue.cpp head/contrib/llvm/tools/clang/lib/AST/ASTConsumer.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp head/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp head/contrib/llvm/tools/clang/lib/AST/ASTTypeTraits.cpp head/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp head/contrib/llvm/tools/clang/lib/AST/CXXABI.h head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Comment.cpp head/contrib/llvm/tools/clang/lib/AST/CommentBriefParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp head/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp head/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp head/contrib/llvm/tools/clang/lib/AST/ComparisonCategories.cpp head/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp head/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp head/contrib/llvm/tools/clang/lib/AST/FormatString.cpp head/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/Linkage.h head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp head/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp head/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp head/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp head/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp head/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp head/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/StmtViz.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp head/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp head/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp head/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp head/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp head/contrib/llvm/tools/clang/lib/Analysis/CodeInjector.cpp head/contrib/llvm/tools/clang/lib/Analysis/ConstructionContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp head/contrib/llvm/tools/clang/lib/Analysis/Dominators.cpp head/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp head/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp head/contrib/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp head/contrib/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp head/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp head/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp head/contrib/llvm/tools/clang/lib/Basic/CharInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp head/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp head/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp head/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp head/contrib/llvm/tools/clang/lib/Basic/Sanitizers.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.h head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h head/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.h head/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.h head/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.h head/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h head/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h head/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.h head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h head/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.h head/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h head/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.h head/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.h head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h head/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.h head/contrib/llvm/tools/clang/lib/Basic/TokenKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp head/contrib/llvm/tools/clang/lib/Basic/XRayInstr.cpp head/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/Address.h head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGGPUBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h head/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h head/contrib/llvm/tools/clang/lib/CodeGen/ConstantInitBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h head/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h head/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h head/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp head/contrib/llvm/tools/clang/lib/Driver/Action.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp head/contrib/llvm/tools/clang/lib/Driver/Distro.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp head/contrib/llvm/tools/clang/lib/Driver/InputInfo.h head/contrib/llvm/tools/clang/lib/Driver/Job.cpp head/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp head/contrib/llvm/tools/clang/lib/Driver/Phases.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/Tool.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Lanai.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.h head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp head/contrib/llvm/tools/clang/lib/Edit/Commit.cpp head/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.cpp head/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.h head/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp head/contrib/llvm/tools/clang/lib/Format/BreakableToken.h head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h head/contrib/llvm/tools/clang/lib/Format/Encoding.h head/contrib/llvm/tools/clang/lib/Format/Format.cpp head/contrib/llvm/tools/clang/lib/Format/FormatInternal.h head/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.h head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h head/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp head/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h head/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp head/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.h head/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h head/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp head/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendTiming.cpp head/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/LangStandards.cpp head/contrib/llvm/tools/clang/lib/Frontend/LayoutOverrideSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp head/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/HTMLPrint.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteMacros.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteTest.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_builtin_vars.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_complex_builtins.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_device_functions.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_libdevice_declares.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h head/contrib/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h head/contrib/llvm/tools/clang/lib/Headers/adxintrin.h head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/ammintrin.h head/contrib/llvm/tools/clang/lib/Headers/arm64intr.h head/contrib/llvm/tools/clang/lib/Headers/arm_acle.h head/contrib/llvm/tools/clang/lib/Headers/armintr.h head/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512ifmaintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512ifmavlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h head/contrib/llvm/tools/clang/lib/Headers/bmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/cetintrin.h head/contrib/llvm/tools/clang/lib/Headers/cldemoteintrin.h head/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h head/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h head/contrib/llvm/tools/clang/lib/Headers/clzerointrin.h head/contrib/llvm/tools/clang/lib/Headers/cpuid.h head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h head/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h head/contrib/llvm/tools/clang/lib/Headers/float.h head/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h head/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h head/contrib/llvm/tools/clang/lib/Headers/fxsrintrin.h head/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h head/contrib/llvm/tools/clang/lib/Headers/htmintrin.h head/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h head/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/intrin.h head/contrib/llvm/tools/clang/lib/Headers/inttypes.h head/contrib/llvm/tools/clang/lib/Headers/invpcidintrin.h head/contrib/llvm/tools/clang/lib/Headers/iso646.h head/contrib/llvm/tools/clang/lib/Headers/limits.h head/contrib/llvm/tools/clang/lib/Headers/lwpintrin.h head/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h head/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h head/contrib/llvm/tools/clang/lib/Headers/mmintrin.h head/contrib/llvm/tools/clang/lib/Headers/module.modulemap head/contrib/llvm/tools/clang/lib/Headers/movdirintrin.h head/contrib/llvm/tools/clang/lib/Headers/msa.h head/contrib/llvm/tools/clang/lib/Headers/mwaitxintrin.h head/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/opencl-c.h head/contrib/llvm/tools/clang/lib/Headers/pconfigintrin.h head/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h head/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/prfchwintrin.h head/contrib/llvm/tools/clang/lib/Headers/ptwriteintrin.h head/contrib/llvm/tools/clang/lib/Headers/rdseedintrin.h head/contrib/llvm/tools/clang/lib/Headers/rtmintrin.h head/contrib/llvm/tools/clang/lib/Headers/s390intrin.h head/contrib/llvm/tools/clang/lib/Headers/sgxintrin.h head/contrib/llvm/tools/clang/lib/Headers/shaintrin.h head/contrib/llvm/tools/clang/lib/Headers/smmintrin.h head/contrib/llvm/tools/clang/lib/Headers/stdalign.h head/contrib/llvm/tools/clang/lib/Headers/stdarg.h head/contrib/llvm/tools/clang/lib/Headers/stdatomic.h head/contrib/llvm/tools/clang/lib/Headers/stdbool.h head/contrib/llvm/tools/clang/lib/Headers/stddef.h head/contrib/llvm/tools/clang/lib/Headers/stdint.h head/contrib/llvm/tools/clang/lib/Headers/stdnoreturn.h head/contrib/llvm/tools/clang/lib/Headers/tbmintrin.h head/contrib/llvm/tools/clang/lib/Headers/tgmath.h head/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/unwind.h head/contrib/llvm/tools/clang/lib/Headers/vadefs.h head/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h head/contrib/llvm/tools/clang/lib/Headers/varargs.h head/contrib/llvm/tools/clang/lib/Headers/vecintrin.h head/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h head/contrib/llvm/tools/clang/lib/Headers/waitpkgintrin.h head/contrib/llvm/tools/clang/lib/Headers/wbnoinvdintrin.h head/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/xopintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h head/contrib/llvm/tools/clang/lib/Headers/xtestintrin.h head/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp head/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp head/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp head/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp head/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp head/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp head/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp head/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp head/contrib/llvm/tools/clang/lib/Index/IndexingContext.h head/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h head/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp head/contrib/llvm/tools/clang/lib/Lex/PPCallbacks.cpp head/contrib/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/UnicodeCharSets.h head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp head/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/Scope.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.cpp head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp head/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h head/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/APSIntType.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SubEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h head/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp head/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp head/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp head/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp head/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp head/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp head/contrib/llvm/tools/clang/lib/Tooling/FixIt.cpp head/contrib/llvm/tools/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp head/contrib/llvm/tools/clang/lib/Tooling/Inclusions/IncludeStyle.cpp head/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.h head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp head/contrib/llvm/tools/clang/lib/Tooling/RefactoringCallbacks.cpp head/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h head/contrib/llvm/tools/llc/llc.cpp head/contrib/llvm/tools/lld/CMakeLists.txt head/contrib/llvm/tools/lld/COFF/CMakeLists.txt head/contrib/llvm/tools/lld/COFF/Chunks.cpp head/contrib/llvm/tools/lld/COFF/Chunks.h head/contrib/llvm/tools/lld/COFF/Config.h head/contrib/llvm/tools/lld/COFF/DLL.cpp head/contrib/llvm/tools/lld/COFF/DLL.h head/contrib/llvm/tools/lld/COFF/Driver.cpp head/contrib/llvm/tools/lld/COFF/Driver.h head/contrib/llvm/tools/lld/COFF/DriverUtils.cpp head/contrib/llvm/tools/lld/COFF/ICF.cpp head/contrib/llvm/tools/lld/COFF/ICF.h head/contrib/llvm/tools/lld/COFF/InputFiles.cpp head/contrib/llvm/tools/lld/COFF/InputFiles.h head/contrib/llvm/tools/lld/COFF/LTO.cpp head/contrib/llvm/tools/lld/COFF/LTO.h head/contrib/llvm/tools/lld/COFF/MapFile.cpp head/contrib/llvm/tools/lld/COFF/MapFile.h head/contrib/llvm/tools/lld/COFF/MarkLive.cpp head/contrib/llvm/tools/lld/COFF/MarkLive.h head/contrib/llvm/tools/lld/COFF/MinGW.cpp head/contrib/llvm/tools/lld/COFF/MinGW.h head/contrib/llvm/tools/lld/COFF/Options.td head/contrib/llvm/tools/lld/COFF/PDB.cpp head/contrib/llvm/tools/lld/COFF/PDB.h head/contrib/llvm/tools/lld/COFF/SymbolTable.cpp head/contrib/llvm/tools/lld/COFF/SymbolTable.h head/contrib/llvm/tools/lld/COFF/Symbols.cpp head/contrib/llvm/tools/lld/COFF/Symbols.h head/contrib/llvm/tools/lld/COFF/Writer.cpp head/contrib/llvm/tools/lld/COFF/Writer.h head/contrib/llvm/tools/lld/Common/Args.cpp head/contrib/llvm/tools/lld/Common/CMakeLists.txt head/contrib/llvm/tools/lld/Common/ErrorHandler.cpp head/contrib/llvm/tools/lld/Common/Memory.cpp head/contrib/llvm/tools/lld/Common/Reproduce.cpp head/contrib/llvm/tools/lld/Common/Strings.cpp head/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp head/contrib/llvm/tools/lld/Common/Threads.cpp head/contrib/llvm/tools/lld/Common/Timer.cpp head/contrib/llvm/tools/lld/Common/Version.cpp head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h head/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp head/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp head/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp head/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp head/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp head/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp head/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp head/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp head/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp head/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp head/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp head/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp head/contrib/llvm/tools/lld/ELF/Arch/X86.cpp head/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp head/contrib/llvm/tools/lld/ELF/CMakeLists.txt head/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp head/contrib/llvm/tools/lld/ELF/CallGraphSort.h head/contrib/llvm/tools/lld/ELF/Config.h head/contrib/llvm/tools/lld/ELF/DWARF.cpp head/contrib/llvm/tools/lld/ELF/DWARF.h head/contrib/llvm/tools/lld/ELF/Driver.cpp head/contrib/llvm/tools/lld/ELF/Driver.h head/contrib/llvm/tools/lld/ELF/DriverUtils.cpp head/contrib/llvm/tools/lld/ELF/EhFrame.cpp head/contrib/llvm/tools/lld/ELF/EhFrame.h head/contrib/llvm/tools/lld/ELF/ICF.cpp head/contrib/llvm/tools/lld/ELF/ICF.h head/contrib/llvm/tools/lld/ELF/InputFiles.cpp head/contrib/llvm/tools/lld/ELF/InputFiles.h head/contrib/llvm/tools/lld/ELF/InputSection.cpp head/contrib/llvm/tools/lld/ELF/InputSection.h head/contrib/llvm/tools/lld/ELF/LTO.cpp head/contrib/llvm/tools/lld/ELF/LTO.h head/contrib/llvm/tools/lld/ELF/LinkerScript.cpp head/contrib/llvm/tools/lld/ELF/LinkerScript.h head/contrib/llvm/tools/lld/ELF/MapFile.cpp head/contrib/llvm/tools/lld/ELF/MapFile.h head/contrib/llvm/tools/lld/ELF/MarkLive.cpp head/contrib/llvm/tools/lld/ELF/MarkLive.h head/contrib/llvm/tools/lld/ELF/Options.td head/contrib/llvm/tools/lld/ELF/OutputSections.cpp head/contrib/llvm/tools/lld/ELF/OutputSections.h head/contrib/llvm/tools/lld/ELF/Relocations.cpp head/contrib/llvm/tools/lld/ELF/Relocations.h head/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp head/contrib/llvm/tools/lld/ELF/ScriptLexer.h head/contrib/llvm/tools/lld/ELF/ScriptParser.cpp head/contrib/llvm/tools/lld/ELF/ScriptParser.h head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp head/contrib/llvm/tools/lld/ELF/SymbolTable.h head/contrib/llvm/tools/lld/ELF/Symbols.cpp head/contrib/llvm/tools/lld/ELF/Symbols.h head/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp head/contrib/llvm/tools/lld/ELF/SyntheticSections.h head/contrib/llvm/tools/lld/ELF/Target.cpp head/contrib/llvm/tools/lld/ELF/Target.h head/contrib/llvm/tools/lld/ELF/Thunks.cpp head/contrib/llvm/tools/lld/ELF/Thunks.h head/contrib/llvm/tools/lld/ELF/Writer.cpp head/contrib/llvm/tools/lld/ELF/Writer.h head/contrib/llvm/tools/lld/LICENSE.TXT head/contrib/llvm/tools/lld/docs/NewLLD.rst head/contrib/llvm/tools/lld/docs/ReleaseNotes.rst head/contrib/llvm/tools/lld/docs/WebAssembly.rst head/contrib/llvm/tools/lld/docs/conf.py head/contrib/llvm/tools/lld/docs/getting_started.rst head/contrib/llvm/tools/lld/docs/index.rst head/contrib/llvm/tools/lld/docs/ld.lld.1 head/contrib/llvm/tools/lld/docs/missingkeyfunction.rst head/contrib/llvm/tools/lld/docs/sphinx_intro.rst head/contrib/llvm/tools/lld/include/lld/Common/Args.h head/contrib/llvm/tools/lld/include/lld/Common/Driver.h head/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h head/contrib/llvm/tools/lld/include/lld/Common/LLVM.h head/contrib/llvm/tools/lld/include/lld/Common/Memory.h head/contrib/llvm/tools/lld/include/lld/Common/Reproduce.h head/contrib/llvm/tools/lld/include/lld/Common/Strings.h head/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h head/contrib/llvm/tools/lld/include/lld/Common/Threads.h head/contrib/llvm/tools/lld/include/lld/Common/Timer.h head/contrib/llvm/tools/lld/include/lld/Common/Version.h head/contrib/llvm/tools/lld/include/lld/Core/AbsoluteAtom.h head/contrib/llvm/tools/lld/include/lld/Core/ArchiveLibraryFile.h head/contrib/llvm/tools/lld/include/lld/Core/Atom.h head/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h head/contrib/llvm/tools/lld/include/lld/Core/Error.h head/contrib/llvm/tools/lld/include/lld/Core/File.h head/contrib/llvm/tools/lld/include/lld/Core/Instrumentation.h head/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h head/contrib/llvm/tools/lld/include/lld/Core/Node.h head/contrib/llvm/tools/lld/include/lld/Core/Pass.h head/contrib/llvm/tools/lld/include/lld/Core/PassManager.h head/contrib/llvm/tools/lld/include/lld/Core/Reader.h head/contrib/llvm/tools/lld/include/lld/Core/Reference.h head/contrib/llvm/tools/lld/include/lld/Core/Resolver.h head/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryAtom.h head/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryFile.h head/contrib/llvm/tools/lld/include/lld/Core/Simple.h head/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h head/contrib/llvm/tools/lld/include/lld/Core/UndefinedAtom.h head/contrib/llvm/tools/lld/include/lld/Core/Writer.h head/contrib/llvm/tools/lld/include/lld/ReaderWriter/MachOLinkingContext.h head/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h head/contrib/llvm/tools/lld/lib/Core/DefinedAtom.cpp head/contrib/llvm/tools/lld/lib/Core/Error.cpp head/contrib/llvm/tools/lld/lib/Core/File.cpp head/contrib/llvm/tools/lld/lib/Core/LinkingContext.cpp head/contrib/llvm/tools/lld/lib/Core/Reader.cpp head/contrib/llvm/tools/lld/lib/Core/Resolver.cpp head/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp head/contrib/llvm/tools/lld/lib/Core/Writer.cpp head/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/Atoms.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/DebugInfo.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ExecutableAtoms.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/File.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOPasses.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/WriterMachO.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp head/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt head/contrib/llvm/tools/lld/tools/lld/lld.cpp head/contrib/llvm/tools/lldb/FREEBSD-Xlist head/contrib/llvm/tools/lldb/LICENSE.TXT head/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h head/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h head/contrib/llvm/tools/lldb/include/lldb/API/SBAttachInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBlock.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBroadcaster.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommunication.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/API/SBData.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDeclaration.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h head/contrib/llvm/tools/lldb/include/lldb/API/SBError.h head/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h head/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h head/contrib/llvm/tools/lldb/include/lldb/API/SBHostOS.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInstruction.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInstructionList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/API/SBLaunchInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBLineEntry.h head/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h head/contrib/llvm/tools/lldb/include/lldb/API/SBModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBQueue.h head/contrib/llvm/tools/lldb/include/lldb/API/SBQueueItem.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSourceManager.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStringList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContextList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTraceOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBType.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFilter.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeNameSpecifier.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSynthetic.h head/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBWatchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Stoppoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointCallbackContext.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Core/Address.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h head/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h head/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h head/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h head/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h head/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Core/DumpRegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h head/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h head/contrib/llvm/tools/lldb/include/lldb/Core/IOStreamMacros.h head/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h head/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h head/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h head/contrib/llvm/tools/lldb/include/lldb/Core/Module.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginInterface.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h head/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h head/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/Section.h head/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h head/contrib/llvm/tools/lldb/include/lldb/Core/Value.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h head/contrib/llvm/tools/lldb/include/lldb/Core/dwarf.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DiagnosticManager.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionSourceCode.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h head/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h head/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h head/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake head/contrib/llvm/tools/lldb/include/lldb/Host/ConnectionFileDescriptor.h head/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h head/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h head/contrib/llvm/tools/lldb/include/lldb/Host/File.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h head/contrib/llvm/tools/lldb/include/lldb/Host/Host.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcess.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcessBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostThread.h head/contrib/llvm/tools/lldb/include/lldb/Host/LockFile.h head/contrib/llvm/tools/lldb/include/lldb/Host/LockFileBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h head/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h head/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h head/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h head/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLauncher.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h head/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h head/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h head/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h head/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h head/contrib/llvm/tools/lldb/include/lldb/Host/Terminal.h head/contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h head/contrib/llvm/tools/lldb/include/lldb/Host/Time.h head/contrib/llvm/tools/lldb/include/lldb/Host/XML.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeWatchpointList.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h head/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h head/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/HostInfoNetBSD.h head/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/Fcntl.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostInfoPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/LockFilePosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ProcessLauncherPosixFork.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValues.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompactUnwindInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Declaration.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TaggedASTType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeList.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/VerifyDecl.h head/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Language.h head/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ModuleCache.h head/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h head/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h head/contrib/llvm/tools/lldb/include/lldb/Target/Process.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h head/contrib/llvm/tools/lldb/include/lldb/Target/Queue.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueList.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterCheckpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterNumber.h head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h head/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h head/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Target.h head/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadCollection.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallOnFunctionExit.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h head/contrib/llvm/tools/lldb/include/lldb/Utility/AnsiTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Args.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h head/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBuffer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Endian.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Environment.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h head/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Flags.h head/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h head/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h head/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h head/contrib/llvm/tools/lldb/include/lldb/Utility/NameMatches.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h head/contrib/llvm/tools/lldb/include/lldb/Utility/State.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h head/contrib/llvm/tools/lldb/include/lldb/Utility/TildeExpressionResolver.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Timeout.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UriParser.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h head/contrib/llvm/tools/lldb/include/lldb/Utility/VASPrintf.h head/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h head/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private.h head/contrib/llvm/tools/lldb/include/lldb/lldb-public.h head/contrib/llvm/tools/lldb/include/lldb/lldb-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-versioning.h head/contrib/llvm/tools/lldb/include/lldb/module.modulemap head/contrib/llvm/tools/lldb/source/API/SBAddress.cpp head/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBBlock.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h head/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp head/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp head/contrib/llvm/tools/lldb/source/API/SBData.cpp head/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp head/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp head/contrib/llvm/tools/lldb/source/API/SBError.cpp head/contrib/llvm/tools/lldb/source/API/SBEvent.cpp head/contrib/llvm/tools/lldb/source/API/SBExecutionContext.cpp head/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp head/contrib/llvm/tools/lldb/source/API/SBFrame.cpp head/contrib/llvm/tools/lldb/source/API/SBFunction.cpp head/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp head/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp head/contrib/llvm/tools/lldb/source/API/SBInstructionList.cpp head/contrib/llvm/tools/lldb/source/API/SBLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp head/contrib/llvm/tools/lldb/source/API/SBListener.cpp head/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp head/contrib/llvm/tools/lldb/source/API/SBModule.cpp head/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp head/contrib/llvm/tools/lldb/source/API/SBProcess.cpp head/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBQueue.cpp head/contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp head/contrib/llvm/tools/lldb/source/API/SBSection.cpp head/contrib/llvm/tools/lldb/source/API/SBSourceManager.cpp head/contrib/llvm/tools/lldb/source/API/SBStream.cpp head/contrib/llvm/tools/lldb/source/API/SBStringList.cpp head/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbol.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbolContextList.cpp head/contrib/llvm/tools/lldb/source/API/SBTarget.cpp head/contrib/llvm/tools/lldb/source/API/SBThread.cpp head/contrib/llvm/tools/lldb/source/API/SBThreadCollection.cpp head/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp head/contrib/llvm/tools/lldb/source/API/SBTrace.cpp head/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp head/contrib/llvm/tools/lldb/source/API/SBType.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeFilter.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeFormat.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp head/contrib/llvm/tools/lldb/source/API/SBValue.cpp head/contrib/llvm/tools/lldb/source/API/SBValueList.cpp head/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp head/contrib/llvm/tools/lldb/source/API/SBWatchpoint.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h head/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Stoppoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/StoppointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h head/contrib/llvm/tools/lldb/source/Core/Address.cpp head/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolver.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp head/contrib/llvm/tools/lldb/source/Core/Communication.cpp head/contrib/llvm/tools/lldb/source/Core/Debugger.cpp head/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp head/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp head/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp head/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp head/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp head/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp head/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp head/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp head/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp head/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp head/contrib/llvm/tools/lldb/source/Core/Mangled.cpp head/contrib/llvm/tools/lldb/source/Core/Module.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleChild.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp head/contrib/llvm/tools/lldb/source/Core/Opcode.cpp head/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp head/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp head/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp head/contrib/llvm/tools/lldb/source/Core/Section.cpp head/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp head/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp head/contrib/llvm/tools/lldb/source/Core/StreamFile.cpp head/contrib/llvm/tools/lldb/source/Core/UserSettingsController.cpp head/contrib/llvm/tools/lldb/source/Core/Value.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp head/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/DiagnosticManager.cpp head/contrib/llvm/tools/lldb/source/Expression/Expression.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp head/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp head/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp head/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp head/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp head/contrib/llvm/tools/lldb/source/Expression/REPL.cpp head/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp head/contrib/llvm/tools/lldb/source/Host/common/File.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp head/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp head/contrib/llvm/tools/lldb/source/Host/common/Host.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostProcess.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp head/contrib/llvm/tools/lldb/source/Host/common/LockFileBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp head/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeWatchpointList.cpp head/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp head/contrib/llvm/tools/lldb/source/Host/common/PipeBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp head/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp head/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp head/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp head/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp head/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp head/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp head/contrib/llvm/tools/lldb/source/Host/common/Terminal.cpp head/contrib/llvm/tools/lldb/source/Host/common/ThreadLauncher.cpp head/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp head/contrib/llvm/tools/lldb/source/Host/common/XML.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp head/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp head/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializer.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandHistory.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h head/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp head/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.h head/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.h head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.h head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/LaunchFlavor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMDefines.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm64-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-s390x-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/NtStructures.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h head/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp head/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h head/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/Block.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp head/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp head/contrib/llvm/tools/lldb/source/Symbol/Declaration.cpp head/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp head/contrib/llvm/tools/lldb/source/Symbol/Function.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp head/contrib/llvm/tools/lldb/source/Symbol/Type.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp head/contrib/llvm/tools/lldb/source/Symbol/VariableList.cpp head/contrib/llvm/tools/lldb/source/Symbol/VerifyDecl.cpp head/contrib/llvm/tools/lldb/source/Target/ABI.cpp head/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp head/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp head/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp head/contrib/llvm/tools/lldb/source/Target/Language.cpp head/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Memory.cpp head/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp head/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp head/contrib/llvm/tools/lldb/source/Target/OperatingSystem.cpp head/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp head/contrib/llvm/tools/lldb/source/Target/Platform.cpp head/contrib/llvm/tools/lldb/source/Target/Process.cpp head/contrib/llvm/tools/lldb/source/Target/Queue.cpp head/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp head/contrib/llvm/tools/lldb/source/Target/QueueList.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp head/contrib/llvm/tools/lldb/source/Target/StackID.cpp head/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/StructuredDataPlugin.cpp head/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Target.cpp head/contrib/llvm/tools/lldb/source/Target/TargetList.cpp head/contrib/llvm/tools/lldb/source/Target/Thread.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadCollection.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp head/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp head/contrib/llvm/tools/lldb/source/Target/UnwindAssembly.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM_DWARF_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp head/contrib/llvm/tools/lldb/source/Utility/Args.cpp head/contrib/llvm/tools/lldb/source/Utility/Baton.cpp head/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp head/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp head/contrib/llvm/tools/lldb/source/Utility/Connection.cpp head/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp head/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp head/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp head/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp head/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/Environment.cpp head/contrib/llvm/tools/lldb/source/Utility/Event.cpp head/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp head/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp head/contrib/llvm/tools/lldb/source/Utility/JSON.cpp head/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp head/contrib/llvm/tools/lldb/source/Utility/Listener.cpp head/contrib/llvm/tools/lldb/source/Utility/Log.cpp head/contrib/llvm/tools/lldb/source/Utility/Logging.cpp head/contrib/llvm/tools/lldb/source/Utility/NameMatches.cpp head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h head/contrib/llvm/tools/lldb/source/Utility/PPC64_DWARF_Registers.h head/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp head/contrib/llvm/tools/lldb/source/Utility/RegularExpression.cpp head/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp head/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp head/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp head/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp head/contrib/llvm/tools/lldb/source/Utility/State.cpp head/contrib/llvm/tools/lldb/source/Utility/Status.cpp head/contrib/llvm/tools/lldb/source/Utility/Stream.cpp head/contrib/llvm/tools/lldb/source/Utility/StreamCallback.cpp head/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp head/contrib/llvm/tools/lldb/source/Utility/StringList.cpp head/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp head/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp head/contrib/llvm/tools/lldb/source/Utility/Timer.cpp head/contrib/llvm/tools/lldb/source/Utility/UUID.cpp head/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp head/contrib/llvm/tools/lldb/source/Utility/UserID.cpp head/contrib/llvm/tools/lldb/source/Utility/UuidCompatibility.h head/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp head/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp head/contrib/llvm/tools/lldb/source/lldb.cpp head/contrib/llvm/tools/lldb/tools/argdumper/argdumper.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.h head/contrib/llvm/tools/lldb/tools/driver/Options.td head/contrib/llvm/tools/lldb/tools/driver/Platform.cpp head/contrib/llvm/tools/lldb/tools/driver/Platform.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnConfig.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h head/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.h head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h head/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-entitlements.plist head/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-macos-entitlements.plist head/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.h head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp head/contrib/llvm/tools/lli/RemoteJITUtils.h head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-as/llvm-as.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporter.h head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h head/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp head/contrib/llvm/tools/llvm-cov/CoverageFilters.h head/contrib/llvm/tools/llvm-cov/CoverageReport.cpp head/contrib/llvm/tools/llvm-cov/CoverageReport.h head/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp head/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h head/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h head/contrib/llvm/tools/llvm-cov/RenderingSupport.h head/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp head/contrib/llvm/tools/llvm-cov/SourceCoverageView.h head/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp head/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h head/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp head/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h head/contrib/llvm/tools/llvm-cov/TestingSupport.cpp head/contrib/llvm/tools/llvm-cov/gcov.cpp head/contrib/llvm/tools/llvm-cov/llvm-cov.cpp head/contrib/llvm/tools/llvm-cxxdump/Error.cpp head/contrib/llvm/tools/llvm-cxxdump/Error.h head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.h head/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp head/contrib/llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp head/contrib/llvm/tools/llvm-diff/DiffConsumer.cpp head/contrib/llvm/tools/llvm-diff/DiffConsumer.h head/contrib/llvm/tools/llvm-diff/DiffLog.cpp head/contrib/llvm/tools/llvm-diff/DiffLog.h head/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp head/contrib/llvm/tools/llvm-diff/DifferenceEngine.h head/contrib/llvm/tools/llvm-diff/llvm-diff.cpp head/contrib/llvm/tools/llvm-dis/llvm-dis.cpp head/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp head/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp head/contrib/llvm/tools/llvm-extract/llvm-extract.cpp head/contrib/llvm/tools/llvm-link/llvm-link.cpp head/contrib/llvm/tools/llvm-lto/llvm-lto.cpp head/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp head/contrib/llvm/tools/llvm-mc/Disassembler.cpp head/contrib/llvm/tools/llvm-mc/Disassembler.h head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-mca/CodeRegion.cpp head/contrib/llvm/tools/llvm-mca/CodeRegion.h head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h head/contrib/llvm/tools/llvm-mca/PipelinePrinter.cpp head/contrib/llvm/tools/llvm-mca/PipelinePrinter.h head/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.cpp head/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.h head/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.cpp head/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.h head/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.cpp head/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.h head/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.cpp head/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.h head/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp head/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.h head/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp head/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.h head/contrib/llvm/tools/llvm-mca/Views/SummaryView.cpp head/contrib/llvm/tools/llvm-mca/Views/SummaryView.h head/contrib/llvm/tools/llvm-mca/Views/TimelineView.cpp head/contrib/llvm/tools/llvm-mca/Views/TimelineView.h head/contrib/llvm/tools/llvm-mca/Views/View.cpp head/contrib/llvm/tools/llvm-mca/Views/View.h head/contrib/llvm/tools/llvm-mca/llvm-mca.cpp head/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objcopy/Buffer.cpp head/contrib/llvm/tools/llvm-objcopy/Buffer.h head/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp head/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.h head/contrib/llvm/tools/llvm-objcopy/COFF/Object.cpp head/contrib/llvm/tools/llvm-objcopy/COFF/Object.h head/contrib/llvm/tools/llvm-objcopy/COFF/Reader.cpp head/contrib/llvm/tools/llvm-objcopy/COFF/Reader.h head/contrib/llvm/tools/llvm-objcopy/COFF/Writer.cpp head/contrib/llvm/tools/llvm-objcopy/COFF/Writer.h head/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp head/contrib/llvm/tools/llvm-objcopy/CopyConfig.h head/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp head/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.h head/contrib/llvm/tools/llvm-objcopy/ELF/Object.cpp head/contrib/llvm/tools/llvm-objcopy/ELF/Object.h head/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td head/contrib/llvm/tools/llvm-objcopy/StripOpts.td head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h head/contrib/llvm/tools/llvm-objdump/COFFDump.cpp head/contrib/llvm/tools/llvm-objdump/ELFDump.cpp head/contrib/llvm/tools/llvm-objdump/MachODump.cpp head/contrib/llvm/tools/llvm-objdump/WasmDump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.h head/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp head/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h head/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp head/contrib/llvm/tools/llvm-pdbutil/InputFile.h head/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp head/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h head/contrib/llvm/tools/llvm-pdbutil/OutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h head/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.h head/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp head/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h head/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp head/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h head/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp head/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp head/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h head/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp head/contrib/llvm/tools/llvm-readobj/Error.cpp head/contrib/llvm/tools/llvm-readobj/Error.h head/contrib/llvm/tools/llvm-readobj/MachODumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.h head/contrib/llvm/tools/llvm-readobj/StackMapPrinter.h head/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h head/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.h head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-stress/llvm-stress.cpp head/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp head/contrib/llvm/tools/llvm-xray/func-id-helper.cpp head/contrib/llvm/tools/llvm-xray/func-id-helper.h head/contrib/llvm/tools/llvm-xray/llvm-xray.cpp head/contrib/llvm/tools/llvm-xray/trie-node.h head/contrib/llvm/tools/llvm-xray/xray-account.cpp head/contrib/llvm/tools/llvm-xray/xray-account.h head/contrib/llvm/tools/llvm-xray/xray-color-helper.cpp head/contrib/llvm/tools/llvm-xray/xray-color-helper.h head/contrib/llvm/tools/llvm-xray/xray-converter.cpp head/contrib/llvm/tools/llvm-xray/xray-converter.h head/contrib/llvm/tools/llvm-xray/xray-extract.cpp head/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp head/contrib/llvm/tools/llvm-xray/xray-graph-diff.cpp head/contrib/llvm/tools/llvm-xray/xray-graph-diff.h head/contrib/llvm/tools/llvm-xray/xray-graph.cpp head/contrib/llvm/tools/llvm-xray/xray-graph.h head/contrib/llvm/tools/llvm-xray/xray-registry.cpp head/contrib/llvm/tools/llvm-xray/xray-registry.h head/contrib/llvm/tools/llvm-xray/xray-stacks.cpp head/contrib/llvm/tools/opt/AnalysisWrappers.cpp head/contrib/llvm/tools/opt/BreakpointPrinter.cpp head/contrib/llvm/tools/opt/BreakpointPrinter.h head/contrib/llvm/tools/opt/Debugify.cpp head/contrib/llvm/tools/opt/Debugify.h head/contrib/llvm/tools/opt/GraphPrinters.cpp head/contrib/llvm/tools/opt/NewPMDriver.cpp head/contrib/llvm/tools/opt/NewPMDriver.h head/contrib/llvm/tools/opt/PassPrinters.cpp head/contrib/llvm/tools/opt/PassPrinters.h head/contrib/llvm/tools/opt/PrintSCC.cpp head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.h head/contrib/llvm/utils/TableGen/Attributes.cpp head/contrib/llvm/utils/TableGen/CTagsEmitter.cpp head/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp head/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp head/contrib/llvm/utils/TableGen/CodeGenHwModes.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h head/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp head/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp head/contrib/llvm/utils/TableGen/InfoByHwMode.cpp head/contrib/llvm/utils/TableGen/InfoByHwMode.h head/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/OptParserEmitter.cpp head/contrib/llvm/utils/TableGen/PredicateExpander.cpp head/contrib/llvm/utils/TableGen/PredicateExpander.h head/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp head/contrib/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SDNodeProperties.cpp head/contrib/llvm/utils/TableGen/SDNodeProperties.h head/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp head/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.cpp head/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.h head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/TableGenBackends.h head/contrib/llvm/utils/TableGen/Types.cpp head/contrib/llvm/utils/TableGen/Types.h head/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.h head/contrib/llvm/utils/TableGen/X86DisassemblerShared.h head/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerTables.h head/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp head/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp head/contrib/llvm/utils/TableGen/X86ModRMFilters.cpp head/contrib/llvm/utils/TableGen/X86ModRMFilters.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/contrib/llvm/utils/TableGen/X86RecognizableInstr.h head/contrib/openmp/LICENSE.txt head/contrib/openmp/runtime/src/dllexports head/contrib/openmp/runtime/src/exports_so.txt head/contrib/openmp/runtime/src/extractExternal.cpp head/contrib/openmp/runtime/src/i18n/en_US.txt head/contrib/openmp/runtime/src/kmp.h head/contrib/openmp/runtime/src/kmp_affinity.cpp head/contrib/openmp/runtime/src/kmp_affinity.h head/contrib/openmp/runtime/src/kmp_alloc.cpp head/contrib/openmp/runtime/src/kmp_atomic.cpp head/contrib/openmp/runtime/src/kmp_atomic.h head/contrib/openmp/runtime/src/kmp_barrier.cpp head/contrib/openmp/runtime/src/kmp_cancel.cpp head/contrib/openmp/runtime/src/kmp_config.h.cmake head/contrib/openmp/runtime/src/kmp_csupport.cpp head/contrib/openmp/runtime/src/kmp_debug.cpp head/contrib/openmp/runtime/src/kmp_debug.h head/contrib/openmp/runtime/src/kmp_debugger.cpp head/contrib/openmp/runtime/src/kmp_debugger.h head/contrib/openmp/runtime/src/kmp_dispatch.cpp head/contrib/openmp/runtime/src/kmp_dispatch.h head/contrib/openmp/runtime/src/kmp_dispatch_hier.h head/contrib/openmp/runtime/src/kmp_environment.cpp head/contrib/openmp/runtime/src/kmp_environment.h head/contrib/openmp/runtime/src/kmp_error.cpp head/contrib/openmp/runtime/src/kmp_error.h head/contrib/openmp/runtime/src/kmp_ftn_cdecl.cpp head/contrib/openmp/runtime/src/kmp_ftn_entry.h head/contrib/openmp/runtime/src/kmp_ftn_extra.cpp head/contrib/openmp/runtime/src/kmp_ftn_os.h head/contrib/openmp/runtime/src/kmp_ftn_stdcall.cpp head/contrib/openmp/runtime/src/kmp_global.cpp head/contrib/openmp/runtime/src/kmp_gsupport.cpp head/contrib/openmp/runtime/src/kmp_i18n.cpp head/contrib/openmp/runtime/src/kmp_i18n.h head/contrib/openmp/runtime/src/kmp_import.cpp head/contrib/openmp/runtime/src/kmp_io.cpp head/contrib/openmp/runtime/src/kmp_io.h head/contrib/openmp/runtime/src/kmp_itt.cpp head/contrib/openmp/runtime/src/kmp_itt.h head/contrib/openmp/runtime/src/kmp_itt.inl head/contrib/openmp/runtime/src/kmp_lock.cpp head/contrib/openmp/runtime/src/kmp_lock.h head/contrib/openmp/runtime/src/kmp_omp.h head/contrib/openmp/runtime/src/kmp_os.h head/contrib/openmp/runtime/src/kmp_platform.h head/contrib/openmp/runtime/src/kmp_runtime.cpp head/contrib/openmp/runtime/src/kmp_safe_c_api.h head/contrib/openmp/runtime/src/kmp_sched.cpp head/contrib/openmp/runtime/src/kmp_settings.cpp head/contrib/openmp/runtime/src/kmp_settings.h head/contrib/openmp/runtime/src/kmp_stats.cpp head/contrib/openmp/runtime/src/kmp_stats.h head/contrib/openmp/runtime/src/kmp_stats_timing.cpp head/contrib/openmp/runtime/src/kmp_stats_timing.h head/contrib/openmp/runtime/src/kmp_str.cpp head/contrib/openmp/runtime/src/kmp_str.h head/contrib/openmp/runtime/src/kmp_stub.cpp head/contrib/openmp/runtime/src/kmp_stub.h head/contrib/openmp/runtime/src/kmp_taskdeps.cpp head/contrib/openmp/runtime/src/kmp_taskdeps.h head/contrib/openmp/runtime/src/kmp_tasking.cpp head/contrib/openmp/runtime/src/kmp_taskq.cpp head/contrib/openmp/runtime/src/kmp_threadprivate.cpp head/contrib/openmp/runtime/src/kmp_utility.cpp head/contrib/openmp/runtime/src/kmp_version.cpp head/contrib/openmp/runtime/src/kmp_version.h head/contrib/openmp/runtime/src/kmp_wait_release.cpp head/contrib/openmp/runtime/src/kmp_wait_release.h head/contrib/openmp/runtime/src/kmp_wrapper_getpid.h head/contrib/openmp/runtime/src/kmp_wrapper_malloc.h head/contrib/openmp/runtime/src/libomp.rc.var head/contrib/openmp/runtime/src/ompt-event-specific.h head/contrib/openmp/runtime/src/ompt-general.cpp head/contrib/openmp/runtime/src/ompt-internal.h head/contrib/openmp/runtime/src/ompt-specific.cpp head/contrib/openmp/runtime/src/ompt-specific.h head/contrib/openmp/runtime/src/test-touch.c head/contrib/openmp/runtime/src/thirdparty/ittnotify/disable_warnings.h head/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify.h head/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h head/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c head/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.h head/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_types.h head/contrib/openmp/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h head/contrib/openmp/runtime/src/tsan_annotations.cpp head/contrib/openmp/runtime/src/tsan_annotations.h head/contrib/openmp/runtime/src/z_Linux_asm.S head/contrib/openmp/runtime/src/z_Linux_util.cpp head/contrib/openmp/runtime/src/z_Windows_NT-586_asm.asm head/contrib/openmp/runtime/src/z_Windows_NT-586_util.cpp head/contrib/openmp/runtime/src/z_Windows_NT_util.cpp head/etc/mtree/BSD.debug.dist head/etc/mtree/BSD.usr.dist head/lib/Makefile head/lib/atf/libatf-c++/Makefile head/lib/clang/freebsd_cc_version.h head/lib/clang/headers/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/lld/Common/Version.inc head/lib/clang/include/lldb/Host/Config.h head/lib/clang/include/llvm/Config/abi-breaking.h head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/include/llvm/Support/VCSRevision.h head/lib/clang/libclang/Makefile head/lib/clang/liblldb/Makefile head/lib/clang/libllvm/Makefile head/lib/clang/libllvmminimal/Makefile head/lib/clang/llvm.build.mk head/lib/googletest/Makefile.inc head/lib/libc++/Makefile head/lib/libclang_rt/Makefile head/lib/libclang_rt/Makefile.inc head/lib/libclang_rt/fuzzer/Makefile head/lib/libclang_rt/fuzzer_no_main/Makefile head/lib/libclang_rt/include/Makefile head/lib/libclang_rt/msan_cxx/Makefile head/lib/libclang_rt/profile/Makefile head/lib/libclang_rt/safestack/Makefile head/lib/libclang_rt/ubsan_standalone/Makefile head/lib/libcompiler_rt/Makefile.inc head/lib/libdevdctl/Makefile head/lib/libomp/Makefile head/lib/libomp/kmp_config.h head/lib/libomp/kmp_i18n_default.inc head/lib/libomp/kmp_i18n_id.inc head/lib/libomp/omp-tools.h head/lib/libomp/omp.h head/lib/libpmc/Makefile head/libexec/atf/atf-check/Makefile head/libexec/atf/atf-sh/Makefile head/share/man/man5/src.conf.5 head/share/mk/atf.test.mk head/share/mk/bsd.sys.mk head/share/mk/src.opts.mk head/sys/conf/kmod.mk head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/Makefile head/usr.bin/clang/clang-tblgen/Makefile head/usr.bin/clang/clang.prog.mk head/usr.bin/clang/lld/Makefile head/usr.bin/clang/lldb/Makefile head/usr.bin/clang/llvm-mca/Makefile head/usr.bin/clang/llvm-objcopy/Makefile head/usr.bin/clang/llvm-pdbutil/Makefile head/usr.bin/clang/llvm.prog.mk Directory Properties: head/ (props changed) head/cddl/ (props changed) head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zdb/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/contrib/apr/ (props changed) head/contrib/compiler-rt/ (props changed) head/contrib/elftoolchain/ (props changed) head/contrib/gdb/ (props changed) head/contrib/ipfilter/ (props changed) head/contrib/libarchive/ (props changed) head/contrib/libc++/ (props changed) head/contrib/libcxxrt/ (props changed) head/contrib/libstdc++/ (props changed) head/contrib/libunwind/ (props changed) head/contrib/libxo/ (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/lld/ (props changed) head/contrib/llvm/tools/lldb/ (props changed) head/contrib/mtree/ (props changed) head/contrib/netbsd-tests/ (props changed) head/contrib/ntp/ (props changed) head/contrib/openmp/ (props changed) head/contrib/sendmail/ (props changed) head/contrib/tcsh/ (props changed) head/contrib/tzdata/ (props changed) head/contrib/wpa/ (props changed) head/crypto/heimdal/ (props changed) head/crypto/openssl/ (props changed) head/gnu/lib/ (props changed) head/gnu/usr.bin/gdb/ (props changed) head/lib/libedit/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) head/sys/contrib/ipfilter/ (props changed) head/sys/contrib/octeon-sdk/ (props changed) head/sys/contrib/zlib/ (props changed) head/sys/gnu/dts/arm/ (props changed) head/sys/gnu/dts/arm64/ (props changed) head/sys/gnu/dts/include/ (props changed) Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Wed Oct 9 17:03:20 2019 (r353357) +++ head/Makefile.inc1 Wed Oct 9 17:06:56 2019 (r353358) @@ -2207,10 +2207,13 @@ _localedef= usr.bin/localedef _clang_tblgen= \ lib/clang/libllvmminimal \ usr.bin/clang/llvm-tblgen \ - usr.bin/clang/clang-tblgen + usr.bin/clang/clang-tblgen \ + usr.bin/clang/lldb-tblgen +# XXX: lldb-tblgen is not needed, if top-level MK_LLDB=no ${_bt}-usr.bin/clang/clang-tblgen: ${_bt}-lib/clang/libllvmminimal ${_bt}-usr.bin/clang/llvm-tblgen: ${_bt}-lib/clang/libllvmminimal +${_bt}-usr.bin/clang/lldb-tblgen: ${_bt}-lib/clang/libllvmminimal .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Wed Oct 9 17:03:20 2019 (r353357) +++ head/ObsoleteFiles.inc Wed Oct 9 17:06:56 2019 (r353358) @@ -38,6 +38,167 @@ # xargs -n1 | sort | uniq -d; # done +# 20191009: new clang import which bumps version from 8.0.1 to 9.0.0. +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/8.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/8.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/8.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/8.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/8.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/8.0.1/include +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/8.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/8.0.1/lib +OLD_DIRS+=usr/lib/clang/8.0.1 +# 20191009: libc++ 9.0.0 removed some experimental files +OLD_FILES+=usr/include/c++/v1/experimental/any +OLD_FILES+=usr/include/c++/v1/experimental/chrono +OLD_FILES+=usr/include/c++/v1/experimental/numeric +OLD_FILES+=usr/include/c++/v1/experimental/optional +OLD_FILES+=usr/include/c++/v1/experimental/ratio +OLD_FILES+=usr/include/c++/v1/experimental/string_view +OLD_FILES+=usr/include/c++/v1/experimental/system_error +OLD_FILES+=usr/include/c++/v1/experimental/tuple +OLD_FILES+=usr/lib/libc++fs.a +OLD_FILES+=usr/lib32/libc++fs.a # 20191003: Remove useless ZFS tests OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_013_neg.ksh OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_014_neg.ksh @@ -300,12 +461,10 @@ OLD_FILES+=usr/lib/clang/8.0.0/lib/freebsd/libclang_rt OLD_DIRS+=usr/lib/clang/8.0.0/lib/freebsd OLD_DIRS+=usr/lib/clang/8.0.0/lib OLD_DIRS+=usr/lib/clang/8.0.0 - # 20190523: Remove obsolete kgzip and support files OLD_FILES+=usr/sbin/kgzip OLD_FILES+=usr/lib/kgzldr.o OLD_FILES+=usr/share/man/man8/kgzip.8.gz - # 20190517: Remove obsolete 10 and 10/100 ethernet drivers. OLD_FILES+=usr/share/man/man4/bm.4.gz OLD_FILES+=usr/share/man/man4/cs.4.gz Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Oct 9 17:03:20 2019 (r353357) +++ head/UPDATING Wed Oct 9 17:06:56 2019 (r353358) @@ -26,6 +26,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20191009: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 9.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + 20191003: The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from GENERIC. They are available as modules and can be loaded by adding Copied: head/contrib/compiler-rt/FREEBSD-Xlist (from r353352, projects/clang900-import/contrib/compiler-rt/FREEBSD-Xlist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/compiler-rt/FREEBSD-Xlist Wed Oct 9 17:06:56 2019 (r353358, copy of r353352, projects/clang900-import/contrib/compiler-rt/FREEBSD-Xlist) @@ -0,0 +1,71 @@ +# $FreeBSD$ +.arcconfig +.gitignore +CMakeLists.txt +CODE_OWNERS.TXT +cmake/ +docs/ +include/CMakeLists.txt +lib/CMakeLists.txt +lib/asan/.clang-format +lib/asan/CMakeLists.txt +lib/asan/scripts/ +lib/asan/tests/ +lib/builtins/CMakeLists.txt +lib/builtins/Darwin-excludes/ +lib/builtins/macho_embedded/ +lib/cfi/CMakeLists.txt +lib/crt/CMakeLists.txt +lib/dfsan/.clang-format +lib/dfsan/CMakeLists.txt +lib/dfsan/scripts/ +lib/esan/CMakeLists.txt +lib/fuzzer/CMakeLists.txt +lib/fuzzer/afl/ +lib/fuzzer/build.sh +lib/fuzzer/dataflow/ +lib/fuzzer/scripts/ +lib/fuzzer/standalone/ +lib/fuzzer/tests/ +lib/gwp_asan/CMakeLists.txt +lib/gwp_asan/tests/ +lib/hwasan/.clang-format +lib/hwasan/CMakeLists.txt +lib/interception/.clang-format +lib/interception/CMakeLists.txt +lib/interception/tests/ +lib/lsan/.clang-format +lib/lsan/CMakeLists.txt +lib/msan/.clang-format +lib/msan/CMakeLists.txt +lib/msan/tests/ +lib/profile/CMakeLists.txt +lib/safestack/.clang-format +lib/safestack/CMakeLists.txt +lib/sanitizer_common/.clang-format +lib/sanitizer_common/.clang-tidy +lib/sanitizer_common/CMakeLists.txt +lib/sanitizer_common/scripts/ +lib/sanitizer_common/tests/ +lib/scudo/CMakeLists.txt +lib/scudo/standalone/CMakeLists.txt +lib/scudo/standalone/tests/ +lib/stats/CMakeLists.txt +lib/tsan/.clang-format +lib/tsan/CMakeLists.txt +lib/tsan/analyze_libtsan.sh +lib/tsan/check_analyze.sh +lib/tsan/check_cmake.sh +lib/tsan/dd/CMakeLists.txt +lib/tsan/go/build.bat +lib/tsan/go/buildgo.sh +lib/tsan/tests/ +lib/ubsan/CMakeLists.txt +lib/ubsan_minimal/CMakeLists.txt +lib/xray/CMakeLists.txt +lib/xray/tests/ +make/ +test/ +unittests/ +utils/ +www/ Modified: head/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- head/contrib/compiler-rt/LICENSE.TXT Wed Oct 9 17:03:20 2019 (r353357) +++ head/contrib/compiler-rt/LICENSE.TXT Wed Oct 9 17:06:56 2019 (r353358) @@ -1,7 +1,242 @@ ============================================================================== -compiler_rt License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== + The compiler_rt library is dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. As a user of this code you may choose to use it under either license. As a contributor, you agree to allow your code @@ -74,18 +309,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - Modified: head/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/allocator_interface.h Wed Oct 9 17:03:20 2019 (r353357) +++ head/contrib/compiler-rt/include/sanitizer/allocator_interface.h Wed Oct 9 17:06:56 2019 (r353358) @@ -1,9 +1,8 @@ //===-- allocator_interface.h ---------------------------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// 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 // //===----------------------------------------------------------------------===// // Modified: head/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/asan_interface.h Wed Oct 9 17:03:20 2019 (r353357) +++ head/contrib/compiler-rt/include/sanitizer/asan_interface.h Wed Oct 9 17:06:56 2019 (r353358) @@ -1,13 +1,12 @@ //===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// 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 is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // -// This file is a part of AddressSanitizer. +// This file is a part of AddressSanitizer (ASan). // // Public interface header. //===----------------------------------------------------------------------===// @@ -19,28 +18,54 @@ #ifdef __cplusplus extern "C" { #endif - // Marks memory region [addr, addr+size) as unaddressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region from instrumented code is forbidden until - // this region is unpoisoned. This function is not guaranteed to poison - // the whole region - it may poison only subregion of [addr, addr+size) due - // to ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_poison_memory_region(void const volatile *addr, size_t size); - // Marks memory region [addr, addr+size) as addressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region is allowed until this region is poisoned again. - // This function may unpoison a superregion of [addr, addr+size) due to - // ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +/// Marks a memory region ([addr, addr+size)) as unaddressable. +/// +/// This memory must be previously allocated by your program. Instrumented +/// code is forbidden from accessing addresses in this region until it is +/// unpoisoned. This function is not guaranteed to poison the entire region - +/// it could poison only a subregion of [addr, addr+size) due to ASan +/// alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can poison or +/// unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_poison_memory_region(void const volatile *addr, size_t size); -// User code should use macros instead of functions. +/// Marks a memory region ([addr, addr+size)) as addressable. +/// +/// This memory must be previously allocated by your program. Accessing +/// addresses in this region is allowed until this region is poisoned again. +/// This function could unpoison a super-region of [addr, addr+size) due +/// to ASan alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can +/// poison or unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); + +// Macros provided for convenience. #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +/// Marks a memory region as unaddressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_POISON_MEMORY_REGION(addr, size) \ __asan_poison_memory_region((addr), (size)) + +/// Marks a memory region as addressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ __asan_unpoison_memory_region((addr), (size)) #else @@ -50,103 +75,245 @@ extern "C" { ((void)(addr), (void)(size)) #endif - // Returns 1 if addr is poisoned (i.e. 1-byte read/write access to this - // address will result in error report from AddressSanitizer). - // Otherwise returns 0. - int __asan_address_is_poisoned(void const volatile *addr); +/// Checks if an address is poisoned. +/// +/// Returns 1 if addr is poisoned (that is, 1-byte read/write +/// access to this address would result in an error report from ASan). +/// Otherwise returns 0. +/// +/// \param addr Address to check. +/// +/// \retval 1 Address is poisoned. +/// \retval 0 Address is not poisoned. +int __asan_address_is_poisoned(void const volatile *addr); - // If at least one byte in [beg, beg+size) is poisoned, return the address - // of the first such byte. Otherwise return 0. - void *__asan_region_is_poisoned(void *beg, size_t size); +/// Checks if a region is poisoned. +/// +/// If at least one byte in [beg, beg+size) is poisoned, returns the +/// address of the first such byte. Otherwise returns 0. +/// +/// \param beg Start of memory region. +/// \param size Start of memory region. +/// \returns Address of first poisoned byte. +void *__asan_region_is_poisoned(void *beg, size_t size); - // Print the description of addr (useful when debugging in gdb). - void __asan_describe_address(void *addr); +/// Describes an address (useful for calling from the debugger). +/// +/// Prints the description of addr. +/// +/// \param addr Address to describe. +void __asan_describe_address(void *addr); - // Useful for calling from a debugger to get information about an ASan error. - // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(void); +/// Checks if an error has been or is being reported (useful for calling from +/// the debugger to get information about an ASan error). +/// +/// Returns 1 if an error has been (or is being) reported. Otherwise returns 0. +/// +/// \returns 1 if an error has been (or is being) reported. Otherwise returns +/// 0. +int __asan_report_present(void); - // Useful for calling from a debugger to get information about an ASan error. - // If an error has been (or is being) reported, the following functions return - // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and - // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(void); - void *__asan_get_report_bp(void); - void *__asan_get_report_sp(void); - void *__asan_get_report_address(void); - int __asan_get_report_access_type(void); - size_t __asan_get_report_access_size(void); - const char *__asan_get_report_description(void); +/// Gets the PC (program counter) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns PC if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns PC value. +void *__asan_get_report_pc(void); - // Useful for calling from the debugger to get information about a pointer. - // Returns the category of the given pointer as a constant string. - // Possible return values are "global", "stack", "stack-fake", "heap", - // "heap-invalid", "shadow-low", "shadow-gap", "shadow-high", "unknown". - // If global or stack, tries to also return the variable name, address and - // size. If heap, tries to return the chunk address and size. 'name' should - // point to an allocated buffer of size 'name_size'. - const char *__asan_locate_address(void *addr, char *name, size_t name_size, - void **region_address, size_t *region_size); +/// Gets the BP (base pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns BP if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns BP value. +void *__asan_get_report_bp(void); - // Useful for calling from the debugger to get the allocation stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the SP (stack pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// If an error has been (or is being) reported, returns SP. +/// Otherwise returns 0. +/// +/// \returns SP value. +void *__asan_get_report_sp(void); - // Useful for calling from the debugger to get the free stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_free_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the address of the report buffer of an ASan error (useful for calling +/// from the debugger). +/// +/// Returns the address of the report buffer if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Address of report buffer. +void *__asan_get_report_address(void); - // Useful for calling from the debugger to get the current shadow memory - // mapping. - void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +/// Gets access type of an ASan error (useful for calling from the debugger). +/// +/// Returns access type (read or write) if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Access type (0 = read, 1 = write). +int __asan_get_report_access_type(void); - // This is an internal function that is called to report an error. - // However it is still a part of the interface because users may want to - // set a breakpoint on this function in a debugger. - void __asan_report_error(void *pc, void *bp, void *sp, - void *addr, int is_write, size_t access_size); +/// Gets access size of an ASan error (useful for calling from the debugger). +/// +/// Returns access size if an error has been (or is being) reported. Otherwise +/// returns 0. +/// +/// \returns Access size in bytes. +size_t __asan_get_report_access_size(void); - // Deprecated. Call __sanitizer_set_death_callback instead. - void __asan_set_death_callback(void (*callback)(void)); +/// Gets the bug description of an ASan error (useful for calling from a +/// debugger). +/// +/// \returns Returns a bug description if an error has been (or is being) +/// reported - for example, "heap-use-after-free". Otherwise returns an empty +/// string. +const char *__asan_get_report_description(void); - void __asan_set_error_report_callback(void (*callback)(const char*)); +/// Gets information about a pointer (useful for calling from the debugger). +/// +/// Returns the category of the given pointer as a constant string. +/// Possible return values are global, stack, stack-fake, +/// heap, heap-invalid, shadow-low, shadow-gap, +/// shadow-high, and unknown. +/// +/// If the return value is global or stack, tries to also return +/// the variable name, address, and size. If the return value is heap, +/// tries to return the chunk address and size. name should point +/// to an allocated buffer of size name_size. +/// +/// \param addr Address to locate. +/// \param name Buffer to store the variable's name. +/// \param name_size Size in bytes of the variable's name buffer. +/// \param region_address [out] Address of the region. +/// \param region_size [out] Size of the region in bytes. +/// +/// \returns Returns the category of the given pointer as a constant string. +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); - // User may provide function that would be called right when ASan detects - // an error. This can be used to notice cases when ASan detects an error, but - // the program crashes before ASan report is printed. - void __asan_on_error(void); +/// Gets the allocation stack trace and thread ID for a heap address (useful +/// for calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); - // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(void); +/// Gets the free stack trace and thread ID for a heap address (useful for +/// calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); - // This function may be optionally provided by user and should return - // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(void); +/// Gets the current shadow memory mapping (useful for calling from the +/// debugger). +/// +/// \param shadow_scale [out] Shadow scale value. +/// \param shadow_offset [out] Offset value. +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); - // The following 2 functions facilitate garbage collection in presence of - // asan's fake stack. +/// This is an internal function that is called to report an error. However, +/// it is still a part of the interface because you might want to set a +/// breakpoint on this function in the debugger. +/// +/// \param pc pc value of the ASan error. +/// \param bp bp value of the ASan error. +/// \param sp sp value of the ASan error. +/// \param addr Address of the ASan error. +/// \param is_write True if the error is a write error; false otherwise. +/// \param access_size Size of the memory access of the ASan error. +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); - // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. - // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(void); +// Deprecated. Call __sanitizer_set_death_callback instead. +void __asan_set_death_callback(void (*callback)(void)); - // If fake_stack is non-NULL and addr belongs to a fake frame in - // fake_stack, returns the address on real stack that corresponds to - // the fake frame and sets beg/end to the boundaries of this fake frame. - // Otherwise returns NULL and does not touch beg/end. - // If beg/end are NULL, they are not touched. - // This function may be called from a thread other than the owner of - // fake_stack, but the owner thread need to be alive. - void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, - void **end); +/// Sets the callback function to be called during ASan error reporting. +/// +/// The callback provides a string pointer to the report. +/// +/// \param callback User-provided function. +void __asan_set_error_report_callback(void (*callback)(const char *)); - // Performs cleanup before a [[noreturn]] function. Must be called - // before things like _exit and execl to avoid false positives on stack. - void __asan_handle_no_return(void); +/// User-provided callback on ASan errors. +/// +/// You can provide a function that would be called immediately when ASan +/// detects an error. This is useful in cases when ASan detects an error but +/// your program crashes before the ASan report is printed. +void __asan_on_error(void); + +/// Prints accumulated statistics to stderr (useful for calling from the +/// debugger). +void __asan_print_accumulated_stats(void); + +/// User-provided default option settings. +/// +/// You can provide your own implementation of this function to return a string +/// containing ASan runtime options (for example, +/// verbosity=1:halt_on_error=0). +/// +/// \returns Default options string. +const char* __asan_default_options(void); + +// The following two functions facilitate garbage collection in presence of +// ASan's fake stack. + +/// Gets an opaque handler to the current thread's fake stack. +/// +/// Returns an opaque handler to be used by +/// __asan_addr_is_in_fake_stack(). Returns NULL if the current thread +/// does not have a fake stack. +/// +/// \returns An opaque handler to the fake stack or NULL. +void *__asan_get_current_fake_stack(void); + +/// Checks if an address belongs to a given fake stack. +/// +/// If fake_stack is non-NULL and addr belongs to a +/// fake frame in fake_stack, returns the address of the real +/// stack that corresponds to the fake frame and sets beg and +/// end to the boundaries of this fake frame. Otherwise returns +/// NULL and does not touch beg and end. +/// +/// If beg or end are NULL, they are not touched. +/// +/// \note This function can be called from a thread other than the owner of +/// fake_stack, but the owner thread needs to be alive. +/// +/// \param fake_stack An opaque handler to a fake stack. +/// \param addr Address to test. +/// \param beg [out] Beginning of fake frame. +/// \param end [out] End of fake frame. +/// \returns Stack address or NULL. +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); + +/// Performs shadow memory cleanup of the current thread's stack before a +/// function marked with the [[noreturn]] attribute is called. +/// +/// To avoid false positives on the stack, must be called before no-return +/// functions like _exit() and execl(). +void __asan_handle_no_return(void); #ifdef __cplusplus } // extern "C" Modified: head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Wed Oct 9 17:03:20 2019 (r353357) +++ head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Wed Oct 9 17:06:56 2019 (r353358) @@ -1,10 +1,9 @@ //===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// 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 is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed Oct 9 17:08:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 83287128C48; Wed, 9 Oct 2019 17:08:41 +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 46pLK52xJ3z3Bvx; Wed, 9 Oct 2019 17:08:41 +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 48BBB1B9E6; Wed, 9 Oct 2019 17:08:41 +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 x99H8fKe092486; Wed, 9 Oct 2019 17:08:41 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99H8fZO092485; Wed, 9 Oct 2019 17:08:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910091708.x99H8fZO092485@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 9 Oct 2019 17:08:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353359 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353359 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:08:41 -0000 Author: hselasky Date: Wed Oct 9 17:08:40 2019 New Revision: 353359 URL: https://svnweb.freebsd.org/changeset/base/353359 Log: Factor out TCP rateset destruction code. Ensure the epoch_call() function is not called more than one time before the callback has been executed, by always checking the RS_FUNERAL_SCHD flag before invoking epoch_call(). The "rs_number_dead" is balanced again after r353353. Discussed with: rrs@ Sponsored by: Mellanox Technologies Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Oct 9 17:06:56 2019 (r353358) +++ head/sys/netinet/tcp_ratelimit.c Wed Oct 9 17:08:40 2019 (r353359) @@ -270,6 +270,23 @@ rs_destroy(epoch_context_t ctx) } } +static void +rs_defer_destroy(struct tcp_rate_set *rs) +{ + + mtx_assert(&rs_mtx, MA_OWNED); + + /* Check if already pending. */ + if (rs->rs_flags & RS_FUNERAL_SCHD) + return; + + rs_number_dead++; + + /* Set flag to only defer once. */ + rs->rs_flags |= RS_FUNERAL_SCHD; + epoch_call(net_epoch, &rs->rs_epoch_ctx, rs_destroy); +} + #ifdef INET extern counter_u64_t rate_limit_set_ok; extern counter_u64_t rate_limit_active; @@ -989,7 +1006,6 @@ tcp_rl_ifnet_departure(void *arg __unused, struct ifne (rs->rs_if_dunit == ifp->if_dunit)) { CK_LIST_REMOVE(rs, next); rs_number_alive--; - rs_number_dead++; rs->rs_flags |= RS_IS_DEAD; for (i = 0; i < rs->rs_rate_cnt; i++) { if (rs->rs_rlt[i].flags & HDWRPACE_TAGPRESENT) { @@ -999,14 +1015,8 @@ tcp_rl_ifnet_departure(void *arg __unused, struct ifne } rs->rs_rlt[i].flags = HDWRPACE_IFPDEPARTED; } - if (rs->rs_flows_using == 0) { - /* - * No references left, so we can schedule the - * destruction after the epoch (with a caveat). - */ - rs->rs_flags |= RS_FUNERAL_SCHD; - epoch_call(net_epoch, &rs->rs_epoch_ctx, rs_destroy); - } + if (rs->rs_flows_using == 0) + rs_defer_destroy(rs); break; } } @@ -1024,7 +1034,6 @@ tcp_rl_shutdown(void *arg __unused, int howto __unused CK_LIST_FOREACH_SAFE(rs, &int_rs, next, nrs) { CK_LIST_REMOVE(rs, next); rs_number_alive--; - rs_number_dead++; rs->rs_flags |= RS_IS_DEAD; for (i = 0; i < rs->rs_rate_cnt; i++) { if (rs->rs_rlt[i].flags & HDWRPACE_TAGPRESENT) { @@ -1034,20 +1043,8 @@ tcp_rl_shutdown(void *arg __unused, int howto __unused } rs->rs_rlt[i].flags = HDWRPACE_IFPDEPARTED; } - if (rs->rs_flows_using != 0) { - /* - * We dont hold a reference - * so we have nothing left to - * do. - */ - } else { - /* - * No references left, so we can destroy it - * after the epoch. - */ - rs->rs_flags |= RS_FUNERAL_SCHD; - epoch_call(net_epoch, &rs->rs_epoch_ctx, rs_destroy); - } + if (rs->rs_flows_using == 0) + rs_defer_destroy(rs); } mtx_unlock(&rs_mtx); } @@ -1190,16 +1187,8 @@ tcp_rel_pacing_rate(const struct tcp_hwrate_limit_tabl /* * Is it dead? */ - if ((rs->rs_flags & RS_IS_DEAD) && - ((rs->rs_flags & RS_FUNERAL_SCHD) == 0)){ - /* - * We were the last, - * and a funeral is not pending, so - * we must schedule it. - */ - rs->rs_flags |= RS_FUNERAL_SCHD; - epoch_call(net_epoch, &rs->rs_epoch_ctx, rs_destroy); - } + if (rs->rs_flags & RS_IS_DEAD) + rs_defer_destroy(rs); mtx_unlock(&rs_mtx); } in_pcbdetach_txrtlmt(tp->t_inpcb); From owner-svn-src-head@freebsd.org Wed Oct 9 17:24:11 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1ED8E129382; Wed, 9 Oct 2019 17:24:11 +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 46pLfy757dz3DFs; Wed, 9 Oct 2019 17:24:10 +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 D75AD1BD93; Wed, 9 Oct 2019 17:24:10 +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 x99HOA5L004523; Wed, 9 Oct 2019 17:24:10 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99HO98C004518; Wed, 9 Oct 2019 17:24:09 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910091724.x99HO98C004518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 9 Oct 2019 17:24:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353360 - head/tests/sys/cddl/zfs/tests/cli_root/zpool_import X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import X-SVN-Commit-Revision: 353360 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:24:11 -0000 Author: asomers Date: Wed Oct 9 17:24:09 2019 New Revision: 353360 URL: https://svnweb.freebsd.org/changeset/base/353360 Log: ZFS: multiple fixes to the zpool_import tests * Don't create a UFS mountpoint just to store some temporary files. The tests should always be executed with a sufficiently large TMPDIR. Creating the UFS mountpoint is not only unneccessary, but it slowed zpool_import_missing_002_pos greatly, because that test moves large files between TMPDIR and the UFS mountpoint. This change also allows many of the tests to be executed with just a single test disk, instead of two. * Move zpool_import_missing_002_pos's backup device dir from / to $PWD to prevent cross-device moves. On my system, these two changes improved that test's speed by 39x. It should also prevent ENOSPC errors seen in CI. * If insufficient disks are available, don't try to partition one of them. Just rely on Kyua to skip the test. Users who care will configure Kyua with sufficient disks. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/cleanup.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/setup.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import.cfg head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_all_001_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_test.sh Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/cleanup.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/cleanup.ksh Wed Oct 9 17:08:40 2019 (r353359) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/cleanup.ksh Wed Oct 9 17:24:09 2019 (r353360) @@ -39,24 +39,9 @@ for pool in "$TESTPOOL" "$TESTPOOL1"; do destroy_pool "$pool" done -ismounted $DEVICE_DIR ufs -(( $? == 0 )) && log_must $UMOUNT -f $DEVICE_DIR - for dir in "$TESTDIR" "$TESTDIR1" "$DEVICE_DIR" ; do [[ -d $dir ]] && \ log_must $RM -rf $dir done - -# recreate and destroy a zpool over the disks to restore the partitions to -# normal -case $DISK_COUNT in -0|1) - log_note "No disk devices to restore" - ;; -*) - log_must cleanup_devices $ZFS_DISK1 - log_must cleanup_devices $ZFS_DISK2 - ;; -esac log_pass Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/setup.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/setup.ksh Wed Oct 9 17:08:40 2019 (r353359) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/setup.ksh Wed Oct 9 17:24:09 2019 (r353360) @@ -33,19 +33,8 @@ verify_runnable "global" -DISK=${DISKS%% *} +create_pool "$TESTPOOL" "$DISK0" -for dev in $ZFS_DISK1 $ZFS_DISK2 ; do - log_must cleanup_devices $dev -done - -typeset -i i=0 -if [[ $DISK_COUNT -lt 2 ]]; then - partition_disk $PART_SIZE $ZFS_DISK1 $GROUP_NUM -fi - -create_pool "$TESTPOOL" "$ZFSSIDE_DISK1" - if [[ -d $TESTDIR ]]; then $RM -rf $TESTDIR || log_unresolved Could not remove $TESTDIR $MKDIR -p $TESTDIR || log_unresolved Could not create $TESTDIR @@ -54,21 +43,8 @@ fi log_must $ZFS create $TESTPOOL/$TESTFS log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS -# Limit the filesystem size to 32GiB; this should be sufficient. -(( MAXSECTS = 32 * 1024 * 1024 )) -NUMSECTS=`diskinfo ${ZFSSIDE_DISK2} | awk '{print $4}'` -if [[ $NUMSECTS -gt $MAXSECTS ]]; then - NUMSECTS=$MAXSECTS -fi - -$ECHO "y" | $NEWFS -s $NUMSECTS $ZFSSIDE_DISK2 >/dev/null 2>&1 -(( $? != 0 )) && - log_untested "Unable to setup a UFS file system" - [[ ! -d $DEVICE_DIR ]] && \ log_must $MKDIR -p $DEVICE_DIR - -log_must $MOUNT $ZFSSIDE_DISK2 $DEVICE_DIR i=0 while (( i < $MAX_NUM )); do Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import.cfg ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import.cfg Wed Oct 9 17:08:40 2019 (r353359) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import.cfg Wed Oct 9 17:24:09 2019 (r353360) @@ -32,43 +32,17 @@ . $STF_SUITE/tests/cli_root/cli.cfg . $STF_SUITE/include/libtest.kshlib -set -A disk_array $(find_disks $DISKS) -case "${#disk_array[*]}" in -0) - # - # on stf_configure, disk_freelist returns empty. - # - DISK_COUNT=0 - ;; -1) - # We need to repartition the single disk to two slices. - DISK_COUNT=1 - ZFS_DISK1=${disk_array[0]} - ZFSSIDE_DISK1=${ZFS_DISK1}p1 - ZFS_DISK2=${disk_array[0]} - ZFSSIDE_DISK2=${ZFS_DISK2}p2 - ;; -*) - # We don't need to repartition anything - DISK_COUNT=2 - ZFS_DISK1=${disk_array[0]} - ZFSSIDE_DISK1=${ZFS_DISK1} - ZFS_DISK2=${disk_array[1]} - ZFSSIDE_DISK2=${ZFS_DISK2} - ;; -esac +set_disks -export DISK_COUNT ZFS_DISK1 ZFSSIDE_DISK1 ZFS_DISK2 ZFSSIDE_DISK2 - export FS_SIZE=2gb export FILE_SIZE=64m export PART_SIZE=128m export MAX_NUM=5 export GROUP_NUM=3 -export DEVICE_DIR=${TMPDIR}/dev${TESTCASE_ID} -export BACKUP_DEVICE_DIR=/bakdev${TESTCASE_ID} +export DEVICE_DIR=$(pwd)/dev +export BACKUP_DEVICE_DIR=$(pwd)/bakdev export DEVICE_FILE=disk -export DEVICE_ARCHIVE=${TMPDIR}/archive${TESTCASE_ID}.tar +export DEVICE_ARCHIVE=$(pwd)/archive${TESTCASE_ID}.tar # MYTESTFILE can be any file that exists and we have r access to export MYTESTFILE=$STF_SUITE/include/default.cfg Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_all_001_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_all_001_pos.ksh Wed Oct 9 17:08:40 2019 (r353359) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_all_001_pos.ksh Wed Oct 9 17:24:09 2019 (r353360) @@ -183,9 +183,9 @@ while (( number <= $GROUP_NUM )); do continue fi fi - set_partition $number "" $PART_SIZE ${ZFS_DISK2} + set_partition $number "" $PART_SIZE ${DISK1} - setup_single_disk "${ZFS_DISK2}p${number}" \ + setup_single_disk "${DISK1}p${number}" \ "${TESTPOOL}-$number" \ "$TESTFS" \ "$TESTDIR.$number" Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_test.sh Wed Oct 9 17:08:40 2019 (r353359) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_import/zpool_import_test.sh Wed Oct 9 17:24:09 2019 (r353360) @@ -38,7 +38,7 @@ zpool_import_002_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_002_pos.ksh || atf_fail "Testcase failed" } @@ -63,7 +63,7 @@ zpool_import_003_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_003_pos.ksh || atf_fail "Testcase failed" } @@ -88,7 +88,7 @@ zpool_import_004_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_004_pos.ksh || atf_fail "Testcase failed" } @@ -113,7 +113,7 @@ zpool_import_005_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_005_pos.ksh || atf_fail "Testcase failed" } @@ -138,7 +138,7 @@ zpool_import_006_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_006_pos.ksh || atf_fail "Testcase failed" } @@ -163,7 +163,7 @@ zpool_import_007_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_007_pos.ksh || atf_fail "Testcase failed" } @@ -188,7 +188,7 @@ zpool_import_008_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_008_pos.ksh || atf_fail "Testcase failed" } @@ -213,7 +213,7 @@ zpool_import_009_neg_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_009_neg.ksh || atf_fail "Testcase failed" } @@ -238,7 +238,7 @@ zpool_import_010_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_010_pos.ksh || atf_fail "Testcase failed" } @@ -263,7 +263,7 @@ zpool_import_011_neg_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_011_neg.ksh || atf_fail "Testcase failed" } @@ -288,7 +288,7 @@ zpool_import_012_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_012_pos.ksh || atf_fail "Testcase failed" } @@ -377,7 +377,7 @@ zpool_import_missing_001_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_missing_001_pos.ksh || atf_fail "Testcase failed" } @@ -402,7 +402,7 @@ zpool_import_missing_002_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_missing_002_pos.ksh || atf_fail "Testcase failed" } @@ -427,7 +427,7 @@ zpool_import_missing_003_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_missing_003_pos.ksh || atf_fail "Testcase failed" } @@ -482,7 +482,7 @@ zpool_import_rename_001_pos_body() . $(atf_get_srcdir)/../../../include/default.cfg . $(atf_get_srcdir)/zpool_import.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_import_rename_001_pos.ksh || atf_fail "Testcase failed" } From owner-svn-src-head@freebsd.org Wed Oct 9 17:36:58 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A9F612973F; Wed, 9 Oct 2019 17:36:58 +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 46pLxk2fQpz3Dyf; Wed, 9 Oct 2019 17:36:58 +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 3B3281BF5D; Wed, 9 Oct 2019 17:36:58 +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 x99Haw8R010386; Wed, 9 Oct 2019 17:36:58 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99HawHh010385; Wed, 9 Oct 2019 17:36:58 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910091736.x99HawHh010385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 9 Oct 2019 17:36:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353361 - head/tests/sys/cddl/zfs/include X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/include X-SVN-Commit-Revision: 353361 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:36:58 -0000 Author: asomers Date: Wed Oct 9 17:36:57 2019 New Revision: 353361 URL: https://svnweb.freebsd.org/changeset/base/353361 Log: ZFS: in the tests, don't override PWD The ZFS test suite was overriding the common $PWD variable with the path to the pwd command, even though no test wanted to use it that way. Most tests didn't notice, because ksh93 eventually restored it to its proper meaning. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/include/commands.txt Modified: head/tests/sys/cddl/zfs/include/commands.txt ============================================================================== --- head/tests/sys/cddl/zfs/include/commands.txt Wed Oct 9 17:24:09 2019 (r353360) +++ head/tests/sys/cddl/zfs/include/commands.txt Wed Oct 9 17:36:57 2019 (r353361) @@ -132,7 +132,6 @@ /bin/pkill /bin/ps #/usr/sbin/psrinfo -/bin/pwd /usr/sbin/quotaon /bin/rcp /sbin/reboot From owner-svn-src-head@freebsd.org Wed Oct 9 18:46:57 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 23A4D12B732; Wed, 9 Oct 2019 18:46:57 +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 46pNVT0215z3L81; Wed, 9 Oct 2019 18:46:57 +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 D81001CC35; Wed, 9 Oct 2019 18:46:56 +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 x99Ikuu0057641; Wed, 9 Oct 2019 18:46:56 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99IkuSm057640; Wed, 9 Oct 2019 18:46:56 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201910091846.x99IkuSm057640@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Wed, 9 Oct 2019 18:46:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353362 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 353362 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 18:46:57 -0000 Author: trasz Date: Wed Oct 9 18:46:56 2019 New Revision: 353362 URL: https://svnweb.freebsd.org/changeset/base/353362 Log: Fix the compilation workaround so it's not entirely dead code - clang also defines __GNUC__. Submitted by: cem Sponsored by: Klara Inc, Netflix Modified: head/sys/sys/qmath.h Modified: head/sys/sys/qmath.h ============================================================================== --- head/sys/sys/qmath.h Wed Oct 9 17:36:57 2019 (r353361) +++ head/sys/sys/qmath.h Wed Oct 9 18:46:56 2019 (r353362) @@ -58,7 +58,7 @@ typedef uint64_t u64q_t; typedef s64q_t smaxq_t; typedef u64q_t umaxq_t; -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(__clang__) /* Ancient GCC hack to de-const, remove when GCC4 is removed. */ #define Q_BT(q) __typeof(1 * q) #else From owner-svn-src-head@freebsd.org Wed Oct 9 19:51:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9C1B512D954; Wed, 9 Oct 2019 19:51:42 +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 46pPxB3g4Lz3R8v; Wed, 9 Oct 2019 19:51:42 +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 622A61D926; Wed, 9 Oct 2019 19:51:42 +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 x99JpgU1096334; Wed, 9 Oct 2019 19:51:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99Jpf9Q096333; Wed, 9 Oct 2019 19:51:41 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201910091951.x99Jpf9Q096333@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 9 Oct 2019 19:51:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353363 - head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Commit-Revision: 353363 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 19:51:42 -0000 Author: dim Date: Wed Oct 9 19:51:41 2019 New Revision: 353363 URL: https://svnweb.freebsd.org/changeset/base/353363 Log: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. Reported by: jbeich PR: 241137 MFC after: 1 month X-MFC-With: r353358 Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Wed Oct 9 18:46:56 2019 (r353362) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Wed Oct 9 19:51:41 2019 (r353363) @@ -708,7 +708,7 @@ ProcessMonitor::ProcessMonitor( const lldb_private::ProcessLaunchInfo & /* launch_info */, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(), m_monitor_thread(), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; std::unique_ptr args( @@ -735,20 +735,21 @@ ProcessMonitor::ProcessMonitor( } // Finally, start monitoring the child process for change in state. - m_monitor_thread = Host::StartMonitoringChildProcess( + auto monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread->IsJoinable()) { + if (!monitor_thread || !monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process launch failed."); return; } + m_monitor_thread = *monitor_thread; } ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(pid), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(), m_monitor_thread(), m_pid(pid), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; sem_init(&m_operation_pending, 0, 0); @@ -773,14 +774,15 @@ ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process } // Finally, start monitoring the child process for change in state. - m_monitor_thread = Host::StartMonitoringChildProcess( + auto monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread->IsJoinable()) { + if (!monitor_thread || !monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process attach failed."); return; } + m_monitor_thread = *monitor_thread; } ProcessMonitor::~ProcessMonitor() { StopMonitor(); } @@ -789,13 +791,15 @@ ProcessMonitor::~ProcessMonitor() { StopMonitor(); } void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread->IsJoinable()) + if (m_operation_thread.IsJoinable()) return; - m_operation_thread = + auto operation_thread = ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args); - if (!m_operation_thread) - error = m_operation_thread.takeError(); + if (operation_thread) + m_operation_thread = *operation_thread; + else + error = operation_thread.takeError(); } void *ProcessMonitor::LaunchOpThread(void *arg) { @@ -957,14 +961,15 @@ void ProcessMonitor::StartAttachOpThread(AttachArgs *a lldb_private::Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread->IsJoinable()) + if (m_operation_thread.IsJoinable()) return; - m_operation_thread = + auto operation_thread = ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args); - - if (!m_operation_thread) - error = m_operation_thread.takeError(); + if (operation_thread) + m_operation_thread = *operation_thread; + else + error = operation_thread.takeError(); } void *ProcessMonitor::AttachOpThread(void *arg) { @@ -1384,10 +1389,10 @@ bool ProcessMonitor::DupDescriptor(const FileSpec &fil } void ProcessMonitor::StopMonitoringChildProcess() { - if (m_monitor_thread->IsJoinable()) { - m_monitor_thread->Cancel(); - m_monitor_thread->Join(nullptr); - m_monitor_thread->Reset(); + if (m_monitor_thread.IsJoinable()) { + m_monitor_thread.Cancel(); + m_monitor_thread.Join(nullptr); + m_monitor_thread.Reset(); } } @@ -1422,10 +1427,10 @@ void ProcessMonitor::StopMonitor() { bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; } void ProcessMonitor::StopOpThread() { - if (!m_operation_thread->IsJoinable()) + if (!m_operation_thread.IsJoinable()) return; - m_operation_thread->Cancel(); - m_operation_thread->Join(nullptr); - m_operation_thread->Reset(); + m_operation_thread.Cancel(); + m_operation_thread.Join(nullptr); + m_operation_thread.Reset(); } Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Wed Oct 9 18:46:56 2019 (r353362) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Wed Oct 9 19:51:41 2019 (r353363) @@ -183,8 +183,8 @@ class ProcessMonitor { (public) private: ProcessFreeBSD *m_process; - llvm::Expected m_operation_thread; - llvm::Expected m_monitor_thread; + lldb_private::HostThread m_operation_thread; + lldb_private::HostThread m_monitor_thread; lldb::pid_t m_pid; int m_terminal_fd; From owner-svn-src-head@freebsd.org Wed Oct 9 20:01:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5A2E612DDD6; Wed, 9 Oct 2019 20:01:24 +0000 (UTC) (envelope-from jlh@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 46pQ8N1QhLz3x82; Wed, 9 Oct 2019 20:01:24 +0000 (UTC) (envelope-from jlh@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 15B191DAE7; Wed, 9 Oct 2019 20:01:24 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99K1NRU004539; Wed, 9 Oct 2019 20:01:23 GMT (envelope-from jlh@FreeBSD.org) Received: (from jlh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99K1Ns2004538; Wed, 9 Oct 2019 20:01:23 GMT (envelope-from jlh@FreeBSD.org) Message-Id: <201910092001.x99K1Ns2004538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jlh set sender to jlh@FreeBSD.org using -f From: Jeremie Le Hen Date: Wed, 9 Oct 2019 20:01:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353364 - head/usr.bin/procstat X-SVN-Group: head X-SVN-Commit-Author: jlh X-SVN-Commit-Paths: head/usr.bin/procstat X-SVN-Commit-Revision: 353364 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 20:01:24 -0000 Author: jlh Date: Wed Oct 9 20:01:23 2019 New Revision: 353364 URL: https://svnweb.freebsd.org/changeset/base/353364 Log: Use inet_ntop(3) instead of inet_ntoa(3) for AF_INET socket details. This also makes the code closer to the one used for AF_INET6. Modified: head/usr.bin/procstat/procstat_files.c Modified: head/usr.bin/procstat/procstat_files.c ============================================================================== --- head/usr.bin/procstat/procstat_files.c Wed Oct 9 19:51:41 2019 (r353363) +++ head/usr.bin/procstat/procstat_files.c Wed Oct 9 20:01:23 2019 (r353364) @@ -106,8 +106,13 @@ addr_to_string(struct sockaddr_storage *ss, char *buff case AF_INET: sin = (struct sockaddr_in *)ss; - snprintf(buffer, buflen, "%s:%d", inet_ntoa(sin->sin_addr), - ntohs(sin->sin_port)); + if (IS_INADDR_ANY(sin->sin_addr)) + snprintf(buffer, buflen, "%s:%d", "*", + ntohs(sin->sin_port)); + else if (inet_ntop(AF_INET, &sin->sin_addr, buffer2, + sizeof(buffer2)) != NULL) + snprintf(buffer, buflen, "%s:%d", buffer2, + ntohs(sin->sin_port)); break; case AF_INET6: From owner-svn-src-head@freebsd.org Wed Oct 9 20:05:15 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B24812DE71; Wed, 9 Oct 2019 20:05:15 +0000 (UTC) (envelope-from jlh@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 46pQDq0cqPz3xM7; Wed, 9 Oct 2019 20:05:15 +0000 (UTC) (envelope-from jlh@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 E8E701DB51; Wed, 9 Oct 2019 20:05:14 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99K5E7C006262; Wed, 9 Oct 2019 20:05:14 GMT (envelope-from jlh@FreeBSD.org) Received: (from jlh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99K5EMA006261; Wed, 9 Oct 2019 20:05:14 GMT (envelope-from jlh@FreeBSD.org) Message-Id: <201910092005.x99K5EMA006261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jlh set sender to jlh@FreeBSD.org using -f From: Jeremie Le Hen Date: Wed, 9 Oct 2019 20:05:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353365 - head/usr.bin/procstat X-SVN-Group: head X-SVN-Commit-Author: jlh X-SVN-Commit-Paths: head/usr.bin/procstat X-SVN-Commit-Revision: 353365 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 20:05:15 -0000 Author: jlh Date: Wed Oct 9 20:05:14 2019 New Revision: 353365 URL: https://svnweb.freebsd.org/changeset/base/353365 Log: Add a missing macro for the previous commit (IS_INADDR_ANY()). Modified: head/usr.bin/procstat/procstat_files.c Modified: head/usr.bin/procstat/procstat_files.c ============================================================================== --- head/usr.bin/procstat/procstat_files.c Wed Oct 9 20:01:23 2019 (r353364) +++ head/usr.bin/procstat/procstat_files.c Wed Oct 9 20:05:14 2019 (r353365) @@ -94,6 +94,7 @@ addr_to_string(struct sockaddr_storage *ss, char *buff struct sockaddr_in6 *sin6; struct sockaddr_in *sin; struct sockaddr_un *sun; +#define IS_INADDR_ANY(x) ((x).s_addr == INADDR_ANY) switch (ss->ss_family) { case AF_LOCAL: From owner-svn-src-head@freebsd.org Wed Oct 9 20:16:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A424712E3B1; Wed, 9 Oct 2019 20:16:41 +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 46pQV13t6Mz3yBb; Wed, 9 Oct 2019 20:16:41 +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 68B711DD25; Wed, 9 Oct 2019 20:16:41 +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 x99KGfp6013070; Wed, 9 Oct 2019 20:16:41 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99KGfJS013069; Wed, 9 Oct 2019 20:16:41 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910092016.x99KGfJS013069@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 9 Oct 2019 20:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353366 - head/tests/sys/cddl/zfs/tests/cli_root/zpool_add X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add X-SVN-Commit-Revision: 353366 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 20:16:41 -0000 Author: asomers Date: Wed Oct 9 20:16:40 2019 New Revision: 353366 URL: https://svnweb.freebsd.org/changeset/base/353366 Log: ZFS: fix the zpool_add_010_pos test The test is necessarily racy, because it depends on being able to complete a "zpool add" before a previous resilver finishes. But it was racier than it needed to be. Move the first "zpool add" to before the resilver starts. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh Wed Oct 9 20:05:14 2019 (r353365) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh Wed Oct 9 20:16:40 2019 (r353366) @@ -48,8 +48,8 @@ create_pool $TESTPOOL mirror ${DISK0} ${DISK1} # is complete. We don't want that to happen during this test, so write some # data just to slow down resilvering. $TIMEOUT 60s $DD if=/dev/zero of=/$TESTPOOL/zerofile bs=128k -log_must $ZPOOL replace $TESTPOOL ${DISK0} ${DISK2} log_must $ZPOOL add $TESTPOOL spare ${DISK3} +log_must $ZPOOL replace $TESTPOOL ${DISK0} ${DISK2} log_must $ZPOOL replace $TESTPOOL ${DISK0} ${DISK3} log_must $ZPOOL add $TESTPOOL spare ${DISK4} From owner-svn-src-head@freebsd.org Wed Oct 9 20:59:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BED9912F30D; Wed, 9 Oct 2019 20:59:10 +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 46pRR24lSsz41HV; Wed, 9 Oct 2019 20:59:10 +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 831371E4BB; Wed, 9 Oct 2019 20:59:10 +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 x99KxAE1036936; Wed, 9 Oct 2019 20:59:10 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99KxAiE036935; Wed, 9 Oct 2019 20:59:10 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201910092059.x99KxAiE036935@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 Oct 2019 20:59:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353367 - head X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353367 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 20:59:10 -0000 Author: imp Date: Wed Oct 9 20:59:10 2019 New Revision: 353367 URL: https://svnweb.freebsd.org/changeset/base/353367 Log: Don't compile old gcc 4.2.1 archs by default in universe/tinderbox. Only compile clang supporting architectures of amd64, arm, arm64, i386, and riscv as part of universe. Compile the other architectures if MAKE_OBSOLETE_GCC is defined. In all cases, explicit lists of architectures in TARGETS= on the command line override. For mips, powerpc and sparc64, do the same thing we do for risvc when MAKE_OBSOLETE_GCC isn't defined and short-circuit their universe build with an echo saying to install the xtoolchain port or pkg. PR: 241134 Discussed on: arch@ (https://lists.freebsd.org/pipermail/freebsd-arch/2019-August/019674.html) Differential Revision: https://reviews.freebsd.org/D21942 Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Wed Oct 9 20:16:40 2019 (r353366) +++ head/Makefile Wed Oct 9 20:59:10 2019 (r353367) @@ -4,8 +4,11 @@ # The user-driven targets are: # # universe - *Really* build *everything* (buildworld and -# all kernels on all architectures). Define the -# MAKE_JUST_KERNELS variable to only build kernels. +# all kernels on all architectures). Define +# MAKE_JUST_KERNELS to only build kernels, +# MAKE_JUST_WORLDS to only build userland, and/or +# MAKE_OBSOLETE_GCC to build architectures unsupported +# by clang. # tinderbox - Same as universe, but presents a list of failed build # targets and exits with an error if there were any. # buildworld - Rebuild *everything*, including glue to help do @@ -81,7 +84,7 @@ # 5. `reboot' (in single user mode: boot -s from the loader prompt). # 6. `mergemaster -p' # 7. `make installworld' -# 8. `mergemaster' (you may wish to use -i, along with -U or -F). +# 8. `mergemaster' (you may wish to use -i, along with -U or -F). # 9. `make delete-old' # 10. `reboot' # 11. `make delete-old-libs' (in case no 3rd party program uses them anymore) @@ -481,7 +484,16 @@ worlds: .PHONY # .if make(universe) || make(universe_kernels) || make(tinderbox) || \ make(targets) || make(universe-toolchain) -TARGETS?=amd64 arm arm64 i386 mips powerpc riscv sparc64 +# +# By default, build only the known-good clang-supporting platforms. +# If MAKE_OBSOLETE_GCC is defined, built all the old GCC architectures. +# In all cases, if the user specifies TARGETS on the command line, +# honor that most of all. +# +_DEFAULT_TARGETS=amd64 arm arm64 i386 riscv +_OBSOLETE_GCC_TARGETS=mips powerpc sparc64 +_DEFAULT_TARGETS+=${_OBSOLETE_GCC_TARGETS} +TARGETS?=${_DEFAULT_TARGETS} _UNIVERSE_TARGETS= ${TARGETS} TARGET_ARCHES_arm?= arm armv6 armv7 TARGET_ARCHES_arm64?= aarch64 @@ -494,11 +506,23 @@ TARGET_ARCHES_${target}?= ${target} .endfor MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc +.if !defined(MAKE_OBSOLETE_GCC) +OBSOLETE_GCC_TARGETS=${_OBSOLETE_GCC_TARGETS} +MAKE_PARAMS_mips?= CROSS_TOOLCHAIN=mips-gcc +MAKE_PARAMS_powerpc?= CROSS_TOOLCHAIN=powerpc-gcc +MAKE_PARAMS_sparc64?= CROSS_TOOLCHAIN=sparc64-gcc +.endif -# XXX Remove architectures only supported by external toolchain from universe -# if required toolchain packages are missing. +TOOLCHAINS_mips= mips +TOOLCHAINS_powerpc= powerpc64 TOOLCHAINS_riscv= riscv64 -.for target in riscv +TOOLCHAINS_sparc64= sparc64 + +# Remove architectures only supported by external toolchain from universe +# if required toolchain packages are missing. +# When MAKE_OBSOLETE_GCC is not defined, this effecitvely forces this for +# the in-tree gcc 4.2.1 targets as well. +.for target in riscv ${OBSOLETE_GCC_TARGETS} .if ${_UNIVERSE_TARGETS:M${target}} .for toolchain in ${TOOLCHAINS_${target}} .if !exists(/usr/local/share/toolchains/${toolchain}-gcc.mk) From owner-svn-src-head@freebsd.org Wed Oct 9 21:02:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 05CB612F52F; Wed, 9 Oct 2019 21:02:07 +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 46pRVQ6Qgqz41Y9; Wed, 9 Oct 2019 21:02:06 +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 C15BB1E54D; Wed, 9 Oct 2019 21:02:06 +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 x99L267a041557; Wed, 9 Oct 2019 21:02:06 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99L26mT041556; Wed, 9 Oct 2019 21:02:06 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201910092102.x99L26mT041556@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 Oct 2019 21:02:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353368 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353368 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:02:07 -0000 Author: imp Date: Wed Oct 9 21:02:06 2019 New Revision: 353368 URL: https://svnweb.freebsd.org/changeset/base/353368 Log: Fix casting error from newer gcc Cast the pointers to (uintptr_t) before assigning to type uint64_t. This eliminates an error from gcc when we cast the pointer to a larger integer type. Modified: head/sys/netinet/tcp_lro.c Modified: head/sys/netinet/tcp_lro.c ============================================================================== --- head/sys/netinet/tcp_lro.c Wed Oct 9 20:59:10 2019 (r353367) +++ head/sys/netinet/tcp_lro.c Wed Oct 9 21:02:06 2019 (r353368) @@ -466,8 +466,8 @@ tcp_lro_log(struct tcpcb *tp, struct lro_ctrl *lc, log.u_bbr.lt_epoch = le->ack_seq; log.u_bbr.pacing_gain = th_win; log.u_bbr.cwnd_gain = le->window; - log.u_bbr.cur_del_rate = (uint64_t)m; - log.u_bbr.bw_inuse = (uint64_t)le->m_head; + log.u_bbr.cur_del_rate = (uintptr_t)m; + log.u_bbr.bw_inuse = (uintptr_t)le->m_head; log.u_bbr.pkts_out = le->mbuf_cnt; /* Total mbufs added */ log.u_bbr.applimited = le->ulp_csum; log.u_bbr.lost = le->mbuf_appended; From owner-svn-src-head@freebsd.org Wed Oct 9 21:08:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0958812F6D6; Wed, 9 Oct 2019 21:08:52 +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 46pRfC6Z2jz41xv; Wed, 9 Oct 2019 21:08:51 +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 C53A41E689; Wed, 9 Oct 2019 21:08:51 +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 x99L8p4j042628; Wed, 9 Oct 2019 21:08:51 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99L8pPl042627; Wed, 9 Oct 2019 21:08:51 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910092108.x99L8pPl042627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 9 Oct 2019 21:08:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353369 - head/sys/dev/cxgbe X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/dev/cxgbe X-SVN-Commit-Revision: 353369 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:08:52 -0000 Author: jhb Date: Wed Oct 9 21:08:51 2019 New Revision: 353369 URL: https://svnweb.freebsd.org/changeset/base/353369 Log: Remove adapters from t4_list earlier during detach. This ensures the clip task won't race with t4_destroy_clip_table. While here, make some mutex destroys unconditional since attach always initializes them. Reviewed by: np MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21952 Modified: head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Wed Oct 9 21:02:06 2019 (r353368) +++ head/sys/dev/cxgbe/t4_main.c Wed Oct 9 21:08:51 2019 (r353369) @@ -1475,6 +1475,10 @@ t4_detach_common(device_t dev) sc->cdev = NULL; } + sx_xlock(&t4_list_lock); + SLIST_REMOVE(&t4_list, sc, adapter, link); + sx_xunlock(&t4_list_lock); + sc->flags &= ~CHK_MBOX_ACCESS; if (sc->flags & FULL_INIT_DONE) { if (!(sc->flags & IS_VF)) @@ -1568,12 +1572,6 @@ t4_detach_common(device_t dev) free(sc->tids.tid_tab, M_CXGBE); free(sc->tt.tls_rx_ports, M_CXGBE); t4_destroy_dma_tag(sc); - if (mtx_initialized(&sc->sc_lock)) { - sx_xlock(&t4_list_lock); - SLIST_REMOVE(&t4_list, sc, adapter, link); - sx_xunlock(&t4_list_lock); - mtx_destroy(&sc->sc_lock); - } callout_drain(&sc->sfl_callout); if (mtx_initialized(&sc->tids.ftid_lock)) { @@ -1582,12 +1580,8 @@ t4_detach_common(device_t dev) } if (mtx_initialized(&sc->tids.atid_lock)) mtx_destroy(&sc->tids.atid_lock); - if (mtx_initialized(&sc->sfl_lock)) - mtx_destroy(&sc->sfl_lock); if (mtx_initialized(&sc->ifp_lock)) mtx_destroy(&sc->ifp_lock); - if (mtx_initialized(&sc->reg_lock)) - mtx_destroy(&sc->reg_lock); if (rw_initialized(&sc->policy_lock)) { rw_destroy(&sc->policy_lock); @@ -1603,6 +1597,10 @@ t4_detach_common(device_t dev) if (rw_initialized(&mw->mw_lock)) rw_destroy(&mw->mw_lock); } + + mtx_destroy(&sc->sfl_lock); + mtx_destroy(&sc->reg_lock); + mtx_destroy(&sc->sc_lock); bzero(sc, sizeof(*sc)); From owner-svn-src-head@freebsd.org Wed Oct 9 21:18:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D123A12FA7B; Wed, 9 Oct 2019 21:18:46 +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 46pRsf58sSz42RY; Wed, 9 Oct 2019 21:18:46 +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 7AF8B1E850; Wed, 9 Oct 2019 21:18:46 +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 x99LIk57048262; Wed, 9 Oct 2019 21:18:46 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99LIkHB048260; Wed, 9 Oct 2019 21:18:46 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201910092118.x99LIkHB048260@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 Oct 2019 21:18:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353370 - head X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353370 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:18:46 -0000 Author: imp Date: Wed Oct 9 21:18:46 2019 New Revision: 353370 URL: https://svnweb.freebsd.org/changeset/base/353370 Log: Wordsmith and simplify Simplify expressions as suggested by jhb. The extra indirection made sense in earlier versions of this patch, but not the final one. While here, apply suggestion from emaste for wording of universe. Also wordsmith awkwardly worded comment about when we effectively neuter the universe build for an architecture. Once llvm 9.0 has been vetted for mips and powerpc, I'll take them out of these lists. Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Wed Oct 9 21:08:51 2019 (r353369) +++ head/Makefile Wed Oct 9 21:18:46 2019 (r353370) @@ -7,8 +7,8 @@ # all kernels on all architectures). Define # MAKE_JUST_KERNELS to only build kernels, # MAKE_JUST_WORLDS to only build userland, and/or -# MAKE_OBSOLETE_GCC to build architectures unsupported -# by clang. +# MAKE_OBSOLETE_GCC to also build architectures +# unsupported by clang using in-tree gcc. # tinderbox - Same as universe, but presents a list of failed build # targets and exits with an error if there were any. # buildworld - Rebuild *everything*, including glue to help do @@ -490,10 +490,8 @@ worlds: .PHONY # In all cases, if the user specifies TARGETS on the command line, # honor that most of all. # -_DEFAULT_TARGETS=amd64 arm arm64 i386 riscv _OBSOLETE_GCC_TARGETS=mips powerpc sparc64 -_DEFAULT_TARGETS+=${_OBSOLETE_GCC_TARGETS} -TARGETS?=${_DEFAULT_TARGETS} +TARGETS?=amd64 arm arm64 i386 riscv ${_OBSOLETE_GCC_TARGETS} _UNIVERSE_TARGETS= ${TARGETS} TARGET_ARCHES_arm?= arm armv6 armv7 TARGET_ARCHES_arm64?= aarch64 @@ -518,10 +516,10 @@ TOOLCHAINS_powerpc= powerpc64 TOOLCHAINS_riscv= riscv64 TOOLCHAINS_sparc64= sparc64 -# Remove architectures only supported by external toolchain from universe -# if required toolchain packages are missing. -# When MAKE_OBSOLETE_GCC is not defined, this effecitvely forces this for -# the in-tree gcc 4.2.1 targets as well. +# Remove architectures only supported by external toolchain from +# universe if required toolchain packages are missing. riscv requires +# an out-of-tree toolchain. When MAKE_OBSOLETE_GCC is not defined, +# the same logic appleis to the obsolete gcc targets. .for target in riscv ${OBSOLETE_GCC_TARGETS} .if ${_UNIVERSE_TARGETS:M${target}} .for toolchain in ${TOOLCHAINS_${target}} From owner-svn-src-head@freebsd.org Wed Oct 9 21:20:40 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7694812FC92; Wed, 9 Oct 2019 21:20:40 +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 46pRvr2Yx0z42jS; Wed, 9 Oct 2019 21:20:40 +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 3B4621E863; Wed, 9 Oct 2019 21:20:40 +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 x99LKe4V048435; Wed, 9 Oct 2019 21:20:40 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99LKeLb048434; Wed, 9 Oct 2019 21:20:40 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910092120.x99LKeLb048434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 9 Oct 2019 21:20:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353371 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353371 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:20:40 -0000 Author: jhb Date: Wed Oct 9 21:20:39 2019 New Revision: 353371 URL: https://svnweb.freebsd.org/changeset/base/353371 Log: Don't free the cursor boundary tag during vmem_destroy(). The cursor boundary tag is statically allocated in the vmem instead of from the vmem_bt_zone. Explicitly remove it from the vmem's segment list in vmem_destroy before freeing all the segments from the vmem. Reviewed by: markj MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21953 Modified: head/sys/kern/subr_vmem.c Modified: head/sys/kern/subr_vmem.c ============================================================================== --- head/sys/kern/subr_vmem.c Wed Oct 9 21:18:46 2019 (r353370) +++ head/sys/kern/subr_vmem.c Wed Oct 9 21:20:39 2019 (r353371) @@ -466,6 +466,7 @@ static void bt_remseg(vmem_t *vm, bt_t *bt) { + MPASS(bt->bt_type != BT_TYPE_CURSOR); TAILQ_REMOVE(&vm->vm_seglist, bt, bt_seglist); bt_free(vm, bt); } @@ -843,6 +844,7 @@ vmem_destroy1(vmem_t *vm) VMEM_LOCK(vm); MPASS(vm->vm_nbusytag == 0); + TAILQ_REMOVE(&vm->vm_seglist, &vm->vm_cursor, bt_seglist); while ((bt = TAILQ_FIRST(&vm->vm_seglist)) != NULL) bt_remseg(vm, bt); From owner-svn-src-head@freebsd.org Wed Oct 9 21:45:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 02C1A1307CD; Wed, 9 Oct 2019 21:45:35 +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 46pSSZ4zflz4492; Wed, 9 Oct 2019 21:45:34 +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 830EA1EE17; Wed, 9 Oct 2019 21:45:34 +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 x99LjYvW065894; Wed, 9 Oct 2019 21:45:34 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99LjYec065892; Wed, 9 Oct 2019 21:45:34 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201910092145.x99LjYec065892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 Oct 2019 21:45:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353372 - head X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353372 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:45:35 -0000 Author: imp Date: Wed Oct 9 21:45:34 2019 New Revision: 353372 URL: https://svnweb.freebsd.org/changeset/base/353372 Log: Add UPDATING entry for universe changes Suggested by: emaste@ Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Oct 9 21:20:39 2019 (r353371) +++ head/UPDATING Wed Oct 9 21:45:34 2019 (r353372) @@ -27,6 +27,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 20191009: + mips, powerpc, and sparc64 are no longer built as part of + universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If + not defined, mips, powerpc, and sparc64 builds will look for + the xtoolchain binaries and if installed use them for universe + builds. As llvm 9.0 becomes vetted for these architectures, they + will be removed from the list. + +20191009: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have been upgraded to 9.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already From owner-svn-src-head@freebsd.org Wed Oct 9 21:45:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DC51B13080D; Wed, 9 Oct 2019 21:45:41 +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 46pSSj47gRz44Gq; Wed, 9 Oct 2019 21:45:41 +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 E95851EE18; Wed, 9 Oct 2019 21:45:40 +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 x99LjesU065949; Wed, 9 Oct 2019 21:45:40 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99Ljeg9065948; Wed, 9 Oct 2019 21:45:40 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201910092145.x99Ljeg9065948@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 Oct 2019 21:45:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353373 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 353373 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:45:42 -0000 Author: imp Date: Wed Oct 9 21:45:40 2019 New Revision: 353373 URL: https://svnweb.freebsd.org/changeset/base/353373 Log: Add note about universe changes to arch and the need to add MAKE_OBSOLETE_GCC to get old behavior on universe. Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Wed Oct 9 21:45:34 2019 (r353372) +++ head/share/man/man7/arch.7 Wed Oct 9 21:45:40 2019 (r353373) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 14, 2019 +.Dd October 9, 2019 .Dt ARCH 7 .Os .Sh NAME @@ -339,6 +339,11 @@ Note that GCC 4.2.1 is deprecated, and scheduled for r Any CPU architectures not migrated by then (to either base system Clang or external toolchain) may be removed from the tree after that date. +Unless the make variable +.Dv MAKE_OBSOLETE_GCC +is defined, make universe will not build mips, powerpc, nor sparc64 +architectures unless the xtoolchain binaries have been installed for +the architecture. .Ss Predefined Macros The compiler provides a number of predefined macros. Some of these provide architecture-specific details and are explained below. From owner-svn-src-head@freebsd.org Wed Oct 9 21:48:01 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0F8DC130ADE; Wed, 9 Oct 2019 21:48:01 +0000 (UTC) (envelope-from jmg@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 46pSWN6g3Xz44VR; Wed, 9 Oct 2019 21:48:00 +0000 (UTC) (envelope-from jmg@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 C423D1EE19; Wed, 9 Oct 2019 21:48:00 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99Lm063066104; Wed, 9 Oct 2019 21:48:00 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99Lm0KX066103; Wed, 9 Oct 2019 21:48:00 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201910092148.x99Lm0KX066103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Wed, 9 Oct 2019 21:48:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353374 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: jmg X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 353374 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 21:48:01 -0000 Author: jmg Date: Wed Oct 9 21:48:00 2019 New Revision: 353374 URL: https://svnweb.freebsd.org/changeset/base/353374 Log: document how to apply altq to vlan interfaces w/ pf. Thanks to jhb for pointing out that this might possibly work. PR: 94182 Modified: head/share/man/man4/altq.4 Modified: head/share/man/man4/altq.4 ============================================================================== --- head/share/man/man4/altq.4 Wed Oct 9 21:45:40 2019 (r353373) +++ head/share/man/man4/altq.4 Wed Oct 9 21:48:00 2019 (r353374) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 20, 2018 +.Dd October 9, 2019 .Dt ALTQ 4 .Os .Sh NAME @@ -190,6 +190,23 @@ and .Xr ng_iface 4 pseudo drivers also do support .Nm . +.Pp +The +.Xr vlan 4 +driver does not directly support +.Nm , +but as packets (mbufs) are passed to the underlying interface, a queue +can be defined for the underlying interface, and any packets directed +to the queue will be processed at the interface level. +An example: +.Pp +.Bd -literal -offset indent +altq on igb0 cbq queue { def aq } +queue def bandwidth 90% cbq (default borrow) +queue aq bandwidth 10Mb cbq + +pass in on igb0.10 proto udp all queue aq keep state +.Ed .Sh SEE ALSO .Xr pf 4 , .Xr pf.conf 5 , From owner-svn-src-head@freebsd.org Wed Oct 9 23:35:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1435C1330CB; Wed, 9 Oct 2019 23:35: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 46pVvf6pDXz4B1L; Wed, 9 Oct 2019 23:35:42 +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 C86E0201D8; Wed, 9 Oct 2019 23:35:42 +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 x99NZgjC030835; Wed, 9 Oct 2019 23:35:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99NZglG030834; Wed, 9 Oct 2019 23:35:42 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910092335.x99NZglG030834@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 9 Oct 2019 23:35:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353378 - head/sys/modules/cxgbe/tom X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/modules/cxgbe/tom X-SVN-Commit-Revision: 353378 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 23:35:43 -0000 Author: jhb Date: Wed Oct 9 23:35:42 2019 New Revision: 353378 URL: https://svnweb.freebsd.org/changeset/base/353378 Log: Add opt_kern_tls.h to the sources from t4_tom.ko. Missed in r353328. Sponsored by: Chelsio Communications Modified: head/sys/modules/cxgbe/tom/Makefile Modified: head/sys/modules/cxgbe/tom/Makefile ============================================================================== --- head/sys/modules/cxgbe/tom/Makefile Wed Oct 9 22:19:48 2019 (r353377) +++ head/sys/modules/cxgbe/tom/Makefile Wed Oct 9 23:35:42 2019 (r353378) @@ -10,6 +10,7 @@ SRCS= bus_if.h SRCS+= device_if.h SRCS+= opt_inet.h SRCS+= opt_inet6.h +SRCS+= opt_kern_tls.h SRCS+= opt_ratelimit.h SRCS+= pci_if.h SRCS+= t4_connect.c From owner-svn-src-head@freebsd.org Thu Oct 10 02:17:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC08C137498; Thu, 10 Oct 2019 02:17:48 +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 46pZVh5Gtpz4Jym; Thu, 10 Oct 2019 02:17:48 +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 980B121F38; Thu, 10 Oct 2019 02:17:48 +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 x9A2Hm2w025554; Thu, 10 Oct 2019 02:17:48 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A2HjxF025540; Thu, 10 Oct 2019 02:17:45 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910100217.x9A2HjxF025540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 10 Oct 2019 02:17:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353379 - head/tests/sys/cddl/zfs/tests/cli_root/zpool_add X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add X-SVN-Commit-Revision: 353379 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 02:17:48 -0000 Author: asomers Date: Thu Oct 10 02:17:45 2019 New Revision: 353379 URL: https://svnweb.freebsd.org/changeset/base/353379 Log: zfs: multiple improvements to the zpool_add tests * Don't partition a disk if too few are available. Just rely on Kyua to ensure that the tests aren't run with insufficient disks. * Remove redundant cleanup steps * In zpool_add_003_pos, store the temporary file in $PWD so Kyua will automatically clean it up. * Update zpool_add_005_pos to use dumpon instead of dumpadm. This test had never been ported to FreeBSD. * In zpool_add_005_pos, don't format the dump disk with UFS. That was pointless. MFC after: 2 weeks Sponsored by: Axcient Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/cleanup.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/setup.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_001_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_002_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_003_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_004_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_005_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_006_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_007_neg.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_008_neg.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_009_neg.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_test.sh Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/cleanup.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/cleanup.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/cleanup.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -32,6 +32,8 @@ . $STF_SUITE/include/libtest.kshlib . $STF_SUITE/tests/cli_root/zpool_add/zpool_add.kshlib +poolexists $TESTPOOL && \ + destroy_pool $TESTPOOL cleanup_devices $DISKS log_pass Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/setup.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/setup.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/setup.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -34,19 +34,4 @@ verify_runnable "global" -if [[ -n $DISK ]]; then - # - # Use 'zpool create' to clean up the infomation in - # in the given disk to avoid slice overlapping. - # - cleanup_devices $DISK - - partition_disk $SIZE $DISK 7 -else - for disk in `$ECHO $DISKSARRAY`; do - cleanup_devices $disk - partition_disk $SIZE $disk 7 - done -fi - log_pass Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_001_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_001_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_001_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -58,45 +58,24 @@ verify_runnable "global" -function cleanup -{ - poolexists $TESTPOOL && \ - destroy_pool $TESTPOOL - - partition_cleanup -} - log_assert "'zpool add ...' can add devices to the pool." -log_onexit cleanup - set -A keywords "" "mirror" "raidz" "raidz1" "spare" -typeset diskname=${disk#/dev/} +set_disks + typeset diskname0=${DISK0#/dev/} typeset diskname1=${DISK1#/dev/} +typeset diskname2=${DISK2#/dev/} +typeset diskname3=${DISK3#/dev/} +typeset diskname4=${DISK4#/dev/} -case $DISK_ARRAY_NUM in -0|1) - pooldevs="${diskname}p1 \ - /dev/${diskname}p1 \ - \"${diskname}p1 ${diskname}p2\"" - mirrordevs="\"/dev/${diskname}p1 ${diskname}p2\"" - raidzdevs="\"/dev/${diskname}p1 ${diskname}p2\"" +pooldevs="${diskname0}\ + \"/dev/${diskname0} ${diskname1}\" \ + \"${diskname0} ${diskname1} ${diskname2}\"" +mirrordevs="\"/dev/${diskname0} ${diskname1}\"" +raidzdevs="\"/dev/${diskname0} ${diskname1}\"" - ;; -2|*) - pooldevs="${diskname0}p1\ - \"/dev/${diskname0}p1 ${diskname1}p1\" \ - \"${diskname0}p1 ${diskname0}p2 ${diskname1}p2\"\ - \"${diskname0}p1 ${diskname1}p1 ${diskname0}p2\ - ${diskname1}p2\"" - mirrordevs="\"/dev/${diskname0}p1 ${diskname1}p1\"" - raidzdevs="\"/dev/${diskname0}p1 ${diskname1}p1\"" - - ;; -esac - typeset -i i=0 typeset vdev eval set -A poolarray $pooldevs @@ -107,7 +86,7 @@ while (( $i < ${#keywords[*]} )); do case ${keywords[i]} in ""|spare) for vdev in "${poolarray[@]}"; do - create_pool "$TESTPOOL" "${diskname}p6" + create_pool "$TESTPOOL" "${diskname3}" log_must poolexists "$TESTPOOL" log_must $ZPOOL add -f "$TESTPOOL" ${keywords[i]} \ $vdev @@ -119,7 +98,7 @@ while (( $i < ${#keywords[*]} )); do mirror) for vdev in "${mirrorarray[@]}"; do create_pool "$TESTPOOL" "${keywords[i]}" \ - "${diskname}p4" "${diskname}p5" + "${diskname3}" "${diskname4}" log_must poolexists "$TESTPOOL" log_must $ZPOOL add "$TESTPOOL" ${keywords[i]} \ $vdev @@ -131,7 +110,7 @@ while (( $i < ${#keywords[*]} )); do raidz|raidz1) for vdev in "${raidzarray[@]}"; do create_pool "$TESTPOOL" "${keywords[i]}" \ - "${diskname}p4" "${diskname}p5" + "${diskname3}" "${diskname4}" log_must poolexists "$TESTPOOL" log_must $ZPOOL add "$TESTPOOL" ${keywords[i]} \ $vdev Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_002_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_002_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_002_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -60,26 +60,18 @@ verify_runnable "global" -function cleanup -{ - poolexists $TESTPOOL && \ - destroy_pool $TESTPOOL +set_disks - partition_cleanup -} - log_assert "'zpool add -f ...' can successfully add" \ "devices to the pool in some cases." -log_onexit cleanup - -create_pool "$TESTPOOL" mirror "${disk}p1" "${disk}p2" +create_pool "$TESTPOOL" mirror "${DISK0}" "${DISK1}" log_must poolexists "$TESTPOOL" -log_mustnot $ZPOOL add "$TESTPOOL" ${disk}p3 -log_mustnot iscontained "$TESTPOOL" "${disk}p3" +log_mustnot $ZPOOL add "$TESTPOOL" ${DISK2} +log_mustnot iscontained "$TESTPOOL" "${DISK2}" -log_must $ZPOOL add -f "$TESTPOOL" ${disk}p3 -log_must iscontained "$TESTPOOL" "${disk}p3" +log_must $ZPOOL add -f "$TESTPOOL" ${DISK2} +log_must iscontained "$TESTPOOL" "${DISK2}" log_pass "'zpool add -f ...' executes successfully." Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_003_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_003_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_003_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -58,30 +58,19 @@ verify_runnable "global" -function cleanup -{ - poolexists $TESTPOOL && \ - destroy_pool $TESTPOOL +set_disks - partition_cleanup - - [[ -e $tmpfile ]] && \ - log_must $RM -f $tmpfile -} - log_assert "'zpool add -n ...' can display the configuration" \ "without actually adding devices to the pool." -log_onexit cleanup +tmpfile="zpool_add_003.tmp${TESTCASE_ID}" -tmpfile="$TMPDIR/zpool_add_003.tmp${TESTCASE_ID}" - -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK0}" log_must poolexists "$TESTPOOL" -$ZPOOL add -n "$TESTPOOL" ${disk}p2 > $tmpfile +$ZPOOL add -n "$TESTPOOL" ${DISK1} > $tmpfile -log_mustnot iscontained "$TESTPOOL" "${disk}p2" +log_mustnot iscontained "$TESTPOOL" "${DISK1}" str="would update '$TESTPOOL' to the following configuration:" $CAT $tmpfile | $GREP "$str" >/dev/null 2>&1 Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_004_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_004_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_004_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -58,6 +58,8 @@ verify_runnable "global" +set_disks + function cleanup { poolexists $TESTPOOL && \ @@ -67,19 +69,16 @@ function cleanup log_must $ZFS destroy -f $TESTPOOL1/$TESTVOL poolexists $TESTPOOL1 && \ destroy_pool "$TESTPOOL1" - - partition_cleanup - } log_assert "'zpool add ...' can add zfs volume to the pool." log_onexit cleanup -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK0}" log_must poolexists "$TESTPOOL" -create_pool "$TESTPOOL1" "${disk}p2" +create_pool "$TESTPOOL1" "${DISK1}" log_must poolexists "$TESTPOOL1" log_must $ZFS create -V $VOLSIZE $TESTPOOL1/$TESTVOL Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_005_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_005_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_005_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -61,6 +61,8 @@ verify_runnable "global" +set_disks + function cleanup { poolexists "$TESTPOOL" && \ @@ -68,11 +70,7 @@ function cleanup poolexists "$TESTPOOL1" && \ destroy_pool "$TESTPOOL1" - if [[ -n $saved_dump_dev ]]; then - log_must eval "$DUMPADM -u -d $saved_dump_dev > /dev/null" - fi - - partition_cleanup + $DUMPON -r $dump_dev } log_assert "'zpool add' should fail with inapplicable scenarios." @@ -81,22 +79,20 @@ log_onexit cleanup mnttab_dev=$(find_mnttab_dev) vfstab_dev=$(find_vfstab_dev) -saved_dump_dev=$(save_dump_dev) -dump_dev=${disk}p3 +dump_dev=${DISK2} -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK0}" log_must poolexists "$TESTPOOL" -create_pool "$TESTPOOL1" "${disk}p2" +create_pool "$TESTPOOL1" "${DISK1}" log_must poolexists "$TESTPOOL1" -log_mustnot $ZPOOL add -f "$TESTPOOL" ${disk}p2 +log_mustnot $ZPOOL add -f "$TESTPOOL" ${DISK1} log_mustnot $ZPOOL add -f "$TESTPOOL" $mnttab_dev log_mustnot $ZPOOL add -f "$TESTPOOL" $vfstab_dev -log_must $ECHO "y" | $NEWFS /dev/$dump_dev > /dev/null 2>&1 -log_must $DUMPADM -u -d /dev/$dump_dev > /dev/null +log_must $DUMPON $dump_dev log_mustnot $ZPOOL add -f "$TESTPOOL" $dump_dev log_pass "'zpool add' should fail with inapplicable scenarios." Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_006_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_006_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_006_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -66,16 +66,12 @@ function cleanup poolexists $TESTPOOL1 && \ destroy_pool $TESTPOOL1 - datasetexists $TESTPOOL/$TESTFS && \ - log_must $ZFS destroy -f $TESTPOOL/$TESTFS poolexists $TESTPOOL && \ destroy_pool $TESTPOOL if [[ -d $TESTDIR ]]; then log_must $RM -rf $TESTDIR fi - - partition_cleanup } @@ -101,7 +97,6 @@ function setup_vdevs # # Minus $largest_num/20 to leave 5% space for metadata. (( vdevs_num=largest_num - largest_num/20 )) file_size=64 - vdev=$disk else vdevs_num=$VDEVS_NUM (( file_size = fs_size / (1024 * 1024 * (vdevs_num + vdevs_num/20)) )) @@ -112,8 +107,8 @@ function setup_vdevs # (( slice_size = file_size * (vdevs_num + vdevs_num/20) )) wipe_partition_table $disk set_partition 0 "" ${slice_size}m $disk - vdev=${disk}p1 fi + vdev=${disk} create_pool $TESTPOOL $vdev [[ -d $TESTDIR ]] && \ @@ -143,17 +138,11 @@ log_assert " 'zpool add [-f]' can add large numbers of " pool without any errors." log_onexit cleanup -if [[ $DISK_ARRAY_NUM == 0 ]]; then - disk=$DISK -else - disk=$DISK0 -fi - vdevs_list="" vdevs_num=$VDEVS_NUM file_size=$FILE_SIZE -setup_vdevs $disk +setup_vdevs $DISK0 log_must $ZPOOL add -f "$TESTPOOL1" $vdevs_list log_must iscontained "$TESTPOOL1" "$vdevs_list" Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_007_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_007_neg.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_007_neg.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -57,22 +57,14 @@ verify_runnable "global" -function cleanup -{ - poolexists "$TESTPOOL" && \ - destroy_pool "$TESTPOOL" - - partition_cleanup -} +set_disks log_assert "'zpool add' should return an error with badly-formed parameters." -log_onexit cleanup - set -A args "" "-f" "-n" "-?" "-nf" "-fn" "-f -n" "--f" "-blah" \ - "-? $TESTPOOL ${disk}p2" + "-? $TESTPOOL ${DISK1}" -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK0}" log_must poolexists "$TESTPOOL" typeset -i i=0 Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_008_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_008_neg.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_008_neg.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -57,23 +57,12 @@ verify_runnable "global" -function cleanup -{ - - poolexists "$TESTPOOL" && \ - destroy_pool "$TESTPOOL" - - partition_cleanup -} - log_assert "'zpool add' should return an error with nonexistent pools and vdevs" -log_onexit cleanup - -set -A args "" "-f nonexistent_pool ${disk}p2" \ +set -A args "" "-f nonexistent_pool ${DISK1}" \ "-f $TESTPOOL nonexistent_vdev" -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK0}" log_must poolexists "$TESTPOOL" typeset -i i=0 Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_009_neg.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_009_neg.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_009_neg.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -58,26 +58,14 @@ verify_runnable "global" -function cleanup -{ - - poolexists "$TESTPOOL" && \ - destroy_pool "$TESTPOOL" - - partition_cleanup - -} - log_assert "'zpool add' should fail if vdevs are the same or vdev is " \ "contained in the given pool." -log_onexit cleanup - -create_pool "$TESTPOOL" "${disk}p1" +create_pool "$TESTPOOL" "${DISK1}" log_must poolexists "$TESTPOOL" -log_mustnot $ZPOOL add -f "$TESTPOOL" ${disk}p2 ${disk}p2 -log_mustnot $ZPOOL add -f "$TESTPOOL" ${disk}p1 +log_mustnot $ZPOOL add -f "$TESTPOOL" ${DISK0} ${DISK0} +log_mustnot $ZPOOL add -f "$TESTPOOL" ${DISK1} log_pass "'zpool add' get fail as expected if vdevs are the same or vdev is " \ "contained in the given pool." Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh Thu Oct 10 02:17:45 2019 (r353379) @@ -31,17 +31,7 @@ verify_runnable "global" -function cleanup -{ - poolexists $TESTPOOL && \ - destroy_pool $TESTPOOL - - partition_cleanup -} - log_assert "'zpool add' can add devices, even if a replacing vdev with a spare child is present" - -log_onexit cleanup create_pool $TESTPOOL mirror ${DISK0} ${DISK1} # A replacing vdev will automatically detach the older member when resilvering Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_test.sh ============================================================================== --- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_test.sh Wed Oct 9 23:35:42 2019 (r353378) +++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_test.sh Thu Oct 10 02:17:45 2019 (r353379) @@ -39,7 +39,7 @@ zpool_add_001_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 5 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_001_pos.ksh || atf_fail "Testcase failed" } @@ -66,7 +66,7 @@ zpool_add_002_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 3 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_002_pos.ksh || atf_fail "Testcase failed" } @@ -93,7 +93,7 @@ zpool_add_003_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 2 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_003_pos.ksh || atf_fail "Testcase failed" } @@ -120,6 +120,7 @@ zpool_add_004_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg + verify_disk_count "$DISKS" 2 verify_zvol_recursive ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_004_pos.ksh || atf_fail "Testcase failed" @@ -138,7 +139,7 @@ atf_test_case zpool_add_005_pos cleanup zpool_add_005_pos_head() { atf_set "descr" "'zpool add' should fail with inapplicable scenarios." - atf_set "require.progs" dumpadm zpool + atf_set "require.progs" zpool atf_set "timeout" 2400 } zpool_add_005_pos_body() @@ -147,8 +148,8 @@ zpool_add_005_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 3 + atf_expect_fail "PR 241070 dumpon opens geom devices non-exclusively" ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_005_pos.ksh || atf_fail "Testcase failed" } @@ -175,7 +176,7 @@ zpool_add_006_pos_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 2 + verify_disk_count "$DISKS" 1 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_006_pos.ksh || atf_fail "Testcase failed" } @@ -202,7 +203,7 @@ zpool_add_007_neg_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 2 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_007_neg.ksh || atf_fail "Testcase failed" } @@ -229,7 +230,7 @@ zpool_add_008_neg_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 2 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_008_neg.ksh || atf_fail "Testcase failed" } @@ -256,7 +257,7 @@ zpool_add_009_neg_body() . $(atf_get_srcdir)/zpool_add.kshlib . $(atf_get_srcdir)/zpool_add.cfg - verify_disk_count "$DISKS" 1 + verify_disk_count "$DISKS" 2 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" ksh93 $(atf_get_srcdir)/zpool_add_009_neg.ksh || atf_fail "Testcase failed" } From owner-svn-src-head@freebsd.org Thu Oct 10 03:12:19 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D7D3140225; Thu, 10 Oct 2019 03:12:19 +0000 (UTC) (envelope-from ambrisko@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 46pbjb31Xvz4SJf; Thu, 10 Oct 2019 03:12:19 +0000 (UTC) (envelope-from ambrisko@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 4C13423B9B; Thu, 10 Oct 2019 03:12:19 +0000 (UTC) (envelope-from ambrisko@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9A3CJdV061106; Thu, 10 Oct 2019 03:12:19 GMT (envelope-from ambrisko@FreeBSD.org) Received: (from ambrisko@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A3CH9J061097; Thu, 10 Oct 2019 03:12:17 GMT (envelope-from ambrisko@FreeBSD.org) Message-Id: <201910100312.x9A3CH9J061097@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ambrisko set sender to ambrisko@FreeBSD.org using -f From: Doug Ambrisko Date: Thu, 10 Oct 2019 03:12:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353380 - in head: share/man/man4 sys/amd64/conf sys/conf sys/dev/vmd sys/modules sys/modules/vmd X-SVN-Group: head X-SVN-Commit-Author: ambrisko X-SVN-Commit-Paths: in head: share/man/man4 sys/amd64/conf sys/conf sys/dev/vmd sys/modules sys/modules/vmd X-SVN-Commit-Revision: 353380 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 03:12:19 -0000 Author: ambrisko Date: Thu Oct 10 03:12:17 2019 New Revision: 353380 URL: https://svnweb.freebsd.org/changeset/base/353380 Log: This driver attaches to the Intel VMD drive and connects a new PCI domain starting at the max. domain, and then work down. Then existing FreeBSD drivers will attach. Interrupt routing from the VMD MSI-X to the NVME drive is not well known, so any interrupt is sent to all children that register. VROC used Intel meta data so graid(8) works with it. However, graid(8) supports RAID 0,1,10 for read and write. I have some early code to support writes with RAID 5. Note that RAID 5 can have life issues with SSDs since it can cause write amplification from updating the parity data. Hot plug support needs a change to skip the following check to work: if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) { in sys/dev/pci/pci_pci.c. Looked at by: imp, rpokala, bcr Differential Revision: https://reviews.freebsd.org/D21383 Added: head/share/man/man4/vmd.4 (contents, props changed) head/sys/dev/vmd/ head/sys/dev/vmd/vmd.c (contents, props changed) head/sys/dev/vmd/vmd.h (contents, props changed) head/sys/dev/vmd/vmd_bus.c (contents, props changed) head/sys/modules/vmd/ head/sys/modules/vmd/Makefile (contents, props changed) Modified: head/share/man/man4/Makefile head/sys/amd64/conf/GENERIC head/sys/amd64/conf/NOTES head/sys/conf/files.amd64 head/sys/modules/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Oct 10 02:17:45 2019 (r353379) +++ head/share/man/man4/Makefile Thu Oct 10 03:12:17 2019 (r353380) @@ -543,6 +543,7 @@ MAN= aac.4 \ vkbd.4 \ vlan.4 \ vxlan.4 \ + ${_vmd.4} \ ${_vmm.4} \ ${_vmx.4} \ vpo.4 \ @@ -835,6 +836,7 @@ _qlxgbe.4= qlxgbe.4 _qlnxe.4= qlnxe.4 _sfxge.4= sfxge.4 _smartpqi.4= smartpqi.4 +_vmd.4= vmd.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 Added: head/share/man/man4/vmd.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/vmd.4 Thu Oct 10 03:12:17 2019 (r353380) @@ -0,0 +1,64 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" +.\" Copyright 2019 Cisco Systems, Inc. +.\" +.\" 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 Octber 9, 2019 +.Dt VMD 4 +.Os +.Sh NAME +.Nm vmd +.Nd Intel Volume Management Device driver +.Sh SYNOPSIS +To compile this driver into the kernel, place the following lines in your +kernel configuration file: +.Bd -ragged -offset -indent +.Cd "device vmd" +.Cd "device vmd_bus" +.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 +vmd_load="YES" +.Ed +.Pp +.Sh DESCRIPTION +This driver attaches to Intel VMD devices as a new PCI domain and then +triggers a probe of PCI devices. +Intel VMD is used with Intel's VROC (Virtual RAID on chip) used with +NVME drives on Skylake SP servers. +.Sh SEE ALSO +.Xr graid 8 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 13.0 . +.Sh BUGS +.Nm +is currently only available on amd64. Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Thu Oct 10 02:17:45 2019 (r353379) +++ head/sys/amd64/conf/GENERIC Thu Oct 10 03:12:17 2019 (r353380) @@ -189,6 +189,10 @@ device twe # 3ware ATA RAID device nvme # base NVMe driver device nvd # expose NVMe namespaces as disks, depends on nvme +# Intel Volume Management Device (VMD) support +device vmd # base VMD device +device vmd_bus # bus for VMD children + # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller device atkbd # AT keyboard Modified: head/sys/amd64/conf/NOTES ============================================================================== --- head/sys/amd64/conf/NOTES Thu Oct 10 02:17:45 2019 (r353379) +++ head/sys/amd64/conf/NOTES Thu Oct 10 03:12:17 2019 (r353380) @@ -461,6 +461,11 @@ device nvme # base NVMe driver device nvd # expose NVMe namespaces as disks, depends on nvme # +# Intel Volume Management Device (VMD) support +device vmd # base VMD device +device vmd_bus # bus for VMD children + +# # PMC-Sierra SAS/SATA controller device pmspcv Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Thu Oct 10 02:17:45 2019 (r353379) +++ head/sys/conf/files.amd64 Thu Oct 10 03:12:17 2019 (r353380) @@ -226,6 +226,8 @@ dev/ntb/ntb_hw/ntb_hw_amd.c optional ntb_hw_amd | ntb_ dev/ntb/ntb_hw/ntb_hw_intel.c optional ntb_hw_intel | ntb_hw dev/ntb/ntb_hw/ntb_hw_plx.c optional ntb_hw_plx | ntb_hw dev/ntb/test/ntb_tool.c optional ntb_tool +dev/vmd/vmd.c optional vmd +dev/vmd/vmd_bus.c optional vmd_bus dev/nvram/nvram.c optional nvram isa dev/random/ivy.c optional rdrand_rng !random_loadable dev/random/nehemiah.c optional padlock_rng !random_loadable Added: head/sys/dev/vmd/vmd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vmd/vmd.c Thu Oct 10 03:12:17 2019 (r353380) @@ -0,0 +1,631 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright 2019 Cisco Systems, Inc. + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define TASK_QUEUE_INTR 1 +#include + +#include "pcib_if.h" +#include "pci_if.h" + +struct vmd_type { + u_int16_t vmd_vid; + u_int16_t vmd_did; + char *vmd_name; +}; + +#define INTEL_VENDOR_ID 0x8086 +#define INTEL_DEVICE_ID_VMD 0x201d +#define INTEL_DEVICE_ID_VMD2 0x28c0 + +static struct vmd_type vmd_devs[] = { + { INTEL_VENDOR_ID, INTEL_DEVICE_ID_VMD, "Intel Volume Management Device" }, + { INTEL_VENDOR_ID, INTEL_DEVICE_ID_VMD2, "Intel Volume Management Device" }, + { 0, 0, NULL } +}; + +static int +vmd_probe(device_t dev) +{ + struct vmd_type *t; + uint16_t vid, did; + + t = vmd_devs; + vid = pci_get_vendor(dev); + did = pci_get_device(dev); + + while (t->vmd_name != NULL) { + if (vid == t->vmd_vid && + did == t->vmd_did) { + device_set_desc(dev, t->vmd_name); + return (BUS_PROBE_DEFAULT); + } + t++; + } + +return (ENXIO); +} + +static void +vmd_free(struct vmd_softc *sc) +{ + int i; + struct vmd_irq_handler *elm, *tmp; + +#ifdef TASK_QUEUE_INTR + if (sc->vmd_irq_tq != NULL) { + taskqueue_drain(sc->vmd_irq_tq, &sc->vmd_irq_task); + taskqueue_free(sc->vmd_irq_tq); + sc->vmd_irq_tq = NULL; + } +#endif + if (sc->vmd_irq != NULL) { + for (i = 0; i < sc->vmd_msix_count; i++) { + if (sc->vmd_irq[i].vmd_res != NULL) { + bus_teardown_intr(sc->vmd_dev, + sc->vmd_irq[i].vmd_res, + sc->vmd_irq[i].vmd_handle); + bus_release_resource(sc->vmd_dev, SYS_RES_IRQ, + sc->vmd_irq[i].vmd_rid, + sc->vmd_irq[i].vmd_res); + } + } + TAILQ_FOREACH_SAFE(elm, &sc->vmd_irq[0].vmd_list ,vmd_link, + tmp) { + TAILQ_REMOVE(&sc->vmd_irq[0].vmd_list, elm, vmd_link); + free(elm, M_DEVBUF); + } + } + free(sc->vmd_irq, M_DEVBUF); + sc->vmd_irq = NULL; + pci_release_msi(sc->vmd_dev); + for (i = 0; i < VMD_MAX_BAR; i++) { + if (sc->vmd_regs_resource[i] != NULL) + bus_release_resource(sc->vmd_dev, SYS_RES_MEMORY, + sc->vmd_regs_rid[i], + sc->vmd_regs_resource[i]); + } + if (sc->vmd_io_resource) + bus_release_resource(device_get_parent(sc->vmd_dev), + SYS_RES_IOPORT, sc->vmd_io_rid, sc->vmd_io_resource); + +#ifndef TASK_QUEUE_INTR + if (mtx_initialized(&sc->vmd_irq_lock)) { + mtx_destroy(&sc->vmd_irq_lock); + } +#endif +} + +/* Hidden PCI Roots are hidden in BAR(0). */ + +static uint32_t +vmd_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width) +{ + + struct vmd_softc *sc; + bus_addr_t offset; + + offset = (b << 20) + (s << 15) + (f << 12) + reg; + sc = device_get_softc(dev); + switch(width) { + case 4: + return (bus_space_read_4(sc->vmd_btag, sc->vmd_bhandle, + offset)); + case 2: + return (bus_space_read_2(sc->vmd_btag, sc->vmd_bhandle, + offset)); + case 1: + return (bus_space_read_1(sc->vmd_btag, sc->vmd_bhandle, + offset)); + default: + KASSERT(1, ("Invalid width requested")); + return (0xffffffff); + } +} + +static void +vmd_write_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, + uint32_t val, int width) +{ + + struct vmd_softc *sc; + bus_addr_t offset; + + offset = (b << 20) + (s << 15) + (f << 12) + reg; + sc = device_get_softc(dev); + + switch(width) { + case 4: + return (bus_space_write_4(sc->vmd_btag, sc->vmd_bhandle, + offset, val)); + case 2: + return (bus_space_write_2(sc->vmd_btag, sc->vmd_bhandle, + offset, val)); + case 1: + return (bus_space_write_1(sc->vmd_btag, sc->vmd_bhandle, + offset, val)); + default: + panic("Failed to specific width"); + } +} + +static uint32_t +vmd_pci_read_config(device_t dev, device_t child, int reg, int width) +{ + struct pci_devinfo *dinfo = device_get_ivars(child); + pcicfgregs *cfg = &dinfo->cfg; + + return vmd_read_config(dev, cfg->bus, cfg->slot, cfg->func, reg, width); +} + +static void +vmd_pci_write_config(device_t dev, device_t child, int reg, uint32_t val, + int width) +{ + struct pci_devinfo *dinfo = device_get_ivars(child); + pcicfgregs *cfg = &dinfo->cfg; + + vmd_write_config(dev, cfg->bus, cfg->slot, cfg->func, reg, val, width); +} + +static struct pci_devinfo * +vmd_alloc_devinfo(device_t dev) +{ + struct pci_devinfo *dinfo; + + dinfo = malloc(sizeof(*dinfo), M_DEVBUF, M_WAITOK | M_ZERO); + return (dinfo); +} + +static void +vmd_intr(void *arg) +{ + struct vmd_irq *irq; + struct vmd_softc *sc; +#ifndef TASK_QUEUE_INTR + struct vmd_irq_handler *elm, *tmp_elm; +#endif + + irq = (struct vmd_irq *)arg; + sc = irq->vmd_sc; +#ifdef TASK_QUEUE_INTR + taskqueue_enqueue(sc->vmd_irq_tq, &sc->vmd_irq_task); +#else + mtx_lock(&sc->vmd_irq_lock); + TAILQ_FOREACH_SAFE(elm, &sc->vmd_irq[0].vmd_list, vmd_link, tmp_elm) { + (elm->vmd_intr)(elm->vmd_arg); + } + mtx_unlock(&sc->vmd_irq_lock); +#endif +} + +#ifdef TASK_QUEUE_INTR +static void +vmd_handle_irq(void *context, int pending) +{ + struct vmd_irq_handler *elm, *tmp_elm; + struct vmd_softc *sc; + + sc = context; + + TAILQ_FOREACH_SAFE(elm, &sc->vmd_irq[0].vmd_list, vmd_link, tmp_elm) { + (elm->vmd_intr)(elm->vmd_arg); + } +} +#endif + +static int +vmd_attach(device_t dev) +{ + struct vmd_softc *sc; + struct pcib_secbus *bus; + uint32_t bar; + int i, j, error; + int rid, sec_reg; + static int b; + static int s; + static int f; + int min_count = 1; + char buf[64]; + + sc = device_get_softc(dev); + bzero(sc, sizeof(*sc)); + sc->vmd_dev = dev; + b = s = f = 0; + + pci_enable_busmaster(dev); + +#ifdef TASK_QUEUE_INTR + sc->vmd_irq_tq = taskqueue_create_fast("vmd_taskq", M_NOWAIT, + taskqueue_thread_enqueue, &sc->vmd_irq_tq); + taskqueue_start_threads(&sc->vmd_irq_tq, 1, PI_DISK, "%s taskq", + device_get_nameunit(sc->vmd_dev)); + TASK_INIT(&sc->vmd_irq_task, 0, vmd_handle_irq, sc); +#else + mtx_init(&sc->vmd_irq_lock, "VMD IRQ lock", NULL, MTX_DEF); +#endif + for (i = 0, j = 0; i < VMD_MAX_BAR; i++, j++ ) { + sc->vmd_regs_rid[i] = PCIR_BAR(j); + bar = pci_read_config(dev, PCIR_BAR(0), 4); + if (PCI_BAR_MEM(bar) && (bar & PCIM_BAR_MEM_TYPE) == + PCIM_BAR_MEM_64) + j++; + if ((sc->vmd_regs_resource[i] = bus_alloc_resource_any( + sc->vmd_dev, SYS_RES_MEMORY, &sc->vmd_regs_rid[i], + RF_ACTIVE)) == NULL) { + device_printf(dev, "Cannot allocate resources\n"); + goto fail; + } + } + + sc->vmd_io_rid = PCIR_IOBASEL_1; + sc->vmd_io_resource = bus_alloc_resource_any( + device_get_parent(sc->vmd_dev), SYS_RES_IOPORT, &sc->vmd_io_rid, + RF_ACTIVE); + if (sc->vmd_io_resource == NULL) { + device_printf(dev, "Cannot allocate IO\n"); + goto fail; + } + + + sc->vmd_btag = rman_get_bustag(sc->vmd_regs_resource[0]); + sc->vmd_bhandle = rman_get_bushandle(sc->vmd_regs_resource[0]); + + pci_write_config(dev, PCIR_PRIBUS_2, + pcib_get_bus(device_get_parent(dev)), 1); + + sec_reg = PCIR_SECBUS_1; + bus = &sc->vmd_bus; + bus->sub_reg = PCIR_SUBBUS_1; + bus->sec = vmd_read_config(dev, b, s, f, sec_reg, 1); + bus->sub = vmd_read_config(dev, b, s, f, bus->sub_reg, 1); + bus->dev = dev; + bus->rman.rm_start = 0; + bus->rman.rm_end = PCI_BUSMAX; + bus->rman.rm_type = RMAN_ARRAY; + snprintf(buf, sizeof(buf), "%s bus numbers", device_get_nameunit(dev)); + bus->rman.rm_descr = strdup(buf, M_DEVBUF); + error = rman_init(&bus->rman); + + if (error) { + device_printf(dev, "Failed to initialize %s bus number rman\n", + device_get_nameunit(dev)); + goto fail; + } + + /* + * Allocate a bus range. This will return an existing bus range + * if one exists, or a new bus range if one does not. + */ + rid = 0; + bus->res = bus_alloc_resource_anywhere(dev, PCI_RES_BUS, &rid, + min_count, 0); + if (bus->res == NULL) { + /* + * Fall back to just allocating a range of a single bus + * number. + */ + bus->res = bus_alloc_resource_anywhere(dev, PCI_RES_BUS, &rid, + 1, 0); + } else if (rman_get_size(bus->res) < min_count) { + /* + * Attempt to grow the existing range to satisfy the + * minimum desired count. + */ + (void)bus_adjust_resource(dev, PCI_RES_BUS, bus->res, + rman_get_start(bus->res), rman_get_start(bus->res) + + min_count - 1); + } + + + /* + * Add the initial resource to the rman. + */ + if (bus->res != NULL) { + error = rman_manage_region(&bus->rman, rman_get_start(bus->res), + rman_get_end(bus->res)); + if (error) { + device_printf(dev, "Failed to add resource to rman\n"); + goto fail; + } + bus->sec = rman_get_start(bus->res); + bus->sub = rman_get_end(bus->res); + } + + sc->vmd_msix_count = pci_msix_count(dev); + if (pci_alloc_msix(dev, &sc->vmd_msix_count) == 0) { + sc->vmd_irq = malloc(sizeof(struct vmd_irq) * + sc->vmd_msix_count, + M_DEVBUF, M_WAITOK | M_ZERO); + + for (i = 0; i < sc->vmd_msix_count; i++) { + sc->vmd_irq[i].vmd_rid = i + 1; + sc->vmd_irq[i].vmd_sc = sc; + sc->vmd_irq[i].vmd_instance = i; + sc->vmd_irq[i].vmd_res = bus_alloc_resource_any(dev, + SYS_RES_IRQ, &sc->vmd_irq[i].vmd_rid, + RF_ACTIVE); + if (sc->vmd_irq[i].vmd_res == NULL) { + device_printf(dev,"Failed to alloc irq\n"); + goto fail; + } + + TAILQ_INIT(&sc->vmd_irq[i].vmd_list); + if (bus_setup_intr(dev, sc->vmd_irq[i].vmd_res, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, vmd_intr, + &sc->vmd_irq[i], &sc->vmd_irq[i].vmd_handle)) { + device_printf(sc->vmd_dev, + "Cannot set up interrupt\n"); + sc->vmd_irq[i].vmd_res = NULL; + goto fail; + } + } + } + + sc->vmd_child = device_add_child(dev, NULL, -1); + + if (sc->vmd_child == NULL) { + device_printf(dev, "Failed to attach child\n"); + goto fail; + } + + error = device_probe_and_attach(sc->vmd_child); + if (error) { + device_printf(dev, "Failed to add probe child\n"); + goto fail; + } + + + return (0); + +fail: + vmd_free(sc); + return (ENXIO); +} + +static int +vmd_detach(device_t dev) +{ + struct vmd_softc *sc; + int err; + + sc = device_get_softc(dev); + if (sc->vmd_child != NULL) { + err = bus_generic_detach(sc->vmd_child); + if (err) + return (err); + err = device_delete_child(dev, sc->vmd_child); + if (err) + return (err); + } + if (sc->vmd_bus.rman.rm_end != 0) + rman_fini(&sc->vmd_bus.rman); + + vmd_free(sc); + return (0); +} + +/* Pass request to alloc an MSI-X message up to the parent bridge. */ +static int +vmd_alloc_msix(device_t pcib, device_t dev, int *irq) +{ + struct vmd_softc *sc = device_get_softc(pcib); + device_t bus; + int ret; + + if (sc->vmd_flags & PCIB_DISABLE_MSIX) + return (ENXIO); + bus = device_get_parent(pcib); + ret = PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq); + return (ret); +} + +static struct resource * +vmd_alloc_resource(device_t dev, device_t child, int type, int *rid, + rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) +{ + /* Start at max PCI vmd_domain and work down */ + if (type == PCI_RES_BUS) { + return (pci_domain_alloc_bus(PCI_DOMAINMAX - + device_get_unit(dev), child, rid, start, end, + count, flags)); + } + + return (pcib_alloc_resource(dev, child, type, rid, start, end, + count, flags)); +} + +static int +vmd_adjust_resource(device_t dev, device_t child, int type, + struct resource *r, rman_res_t start, rman_res_t end) +{ + struct resource *res = r; + + if (type == PCI_RES_BUS) + return (pci_domain_adjust_bus(PCI_DOMAINMAX - + device_get_unit(dev), child, res, start, end)); + return (pcib_adjust_resource(dev, child, type, res, start, end)); +} + +static int +vmd_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + if (type == PCI_RES_BUS) + return (pci_domain_release_bus(PCI_DOMAINMAX - + device_get_unit(dev), child, rid, r)); + return (pcib_release_resource(dev, child, type, rid, r)); +} + +static int +vmd_shutdown(device_t dev) +{ + return (0); +} + +static int +vmd_pcib_route_interrupt(device_t pcib, device_t dev, int pin) +{ + return (pcib_route_interrupt(pcib, dev, pin)); +} + + +static int +vmd_pcib_alloc_msi(device_t pcib, device_t dev, int count, int maxcount, + int *irqs) +{ + return (pcib_alloc_msi(pcib, dev, count, maxcount, irqs)); +} + +static int +vmd_pcib_release_msi(device_t pcib, device_t dev, int count, int *irqs) +{ + + return (pcib_release_msi(pcib, dev, count, irqs)); +} + +static int +vmd_pcib_release_msix(device_t pcib, device_t dev, int irq) { + return pcib_release_msix(pcib, dev, irq); +} + +static int +vmd_setup_intr(device_t dev, device_t child, struct resource *irq, + int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, + void **cookiep) +{ + struct vmd_irq_handler *elm; + struct vmd_softc *sc; + int i; + + sc = device_get_softc(dev); + + /* + * There appears to be no steering of VMD interrupts from device + * to VMD interrupt + */ + + i = 0; + elm = malloc(sizeof(*elm), M_DEVBUF, M_NOWAIT|M_ZERO); + elm->vmd_child = child; + elm->vmd_intr = intr; + elm->vmd_rid = rman_get_rid(irq); + elm->vmd_arg = arg; + TAILQ_INSERT_TAIL(&sc->vmd_irq[i].vmd_list, elm, vmd_link); + + return (bus_generic_setup_intr(dev, child, irq, flags, filter, intr, + arg, cookiep)); +} + +static int +vmd_teardown_intr(device_t dev, device_t child, struct resource *irq, + void *cookie) +{ + struct vmd_irq_handler *elm, *tmp;; + struct vmd_softc *sc; + + sc = device_get_softc(dev); + TAILQ_FOREACH_SAFE(elm, &sc->vmd_irq[0].vmd_list, vmd_link, tmp) { + if (elm->vmd_child == child && + elm->vmd_rid == rman_get_rid(irq)) { + TAILQ_REMOVE(&sc->vmd_irq[0].vmd_list, elm, vmd_link); + free(elm, M_DEVBUF); + } + } + + return (bus_generic_teardown_intr(dev, child, irq, cookie)); +} + +static device_method_t vmd_pci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, vmd_probe), + DEVMETHOD(device_attach, vmd_attach), + DEVMETHOD(device_detach, vmd_detach), + DEVMETHOD(device_shutdown, vmd_shutdown), + + /* Bus interface */ + DEVMETHOD(bus_read_ivar, pcib_read_ivar), + DEVMETHOD(bus_write_ivar, pcib_write_ivar), + DEVMETHOD(bus_alloc_resource, vmd_alloc_resource), + DEVMETHOD(bus_adjust_resource, vmd_adjust_resource), + DEVMETHOD(bus_release_resource, vmd_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_setup_intr, vmd_setup_intr), + DEVMETHOD(bus_teardown_intr, vmd_teardown_intr), + + /* pci interface */ + DEVMETHOD(pci_read_config, vmd_pci_read_config), + DEVMETHOD(pci_write_config, vmd_pci_write_config), + DEVMETHOD(pci_alloc_devinfo, vmd_alloc_devinfo), + + /* pcib interface */ + DEVMETHOD(pcib_maxslots, pcib_maxslots), + DEVMETHOD(pcib_read_config, vmd_read_config), + DEVMETHOD(pcib_write_config, vmd_write_config), + DEVMETHOD(pcib_route_interrupt, vmd_pcib_route_interrupt), + DEVMETHOD(pcib_alloc_msi, vmd_pcib_alloc_msi), + DEVMETHOD(pcib_release_msi, vmd_pcib_release_msi), + DEVMETHOD(pcib_alloc_msix, vmd_alloc_msix), + DEVMETHOD(pcib_release_msix, vmd_pcib_release_msix), + DEVMETHOD(pcib_map_msi, pcib_map_msi), + + DEVMETHOD_END +}; + +static devclass_t vmd_devclass; + +DEFINE_CLASS_0(vmd, vmd_pci_driver, vmd_pci_methods, sizeof(struct vmd_softc)); +DRIVER_MODULE(vmd, pci, vmd_pci_driver, vmd_devclass, NULL, NULL); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, vmd, + vmd_devs, nitems(vmd_devs) - 1); +MODULE_DEPEND(vmd, vmd_bus, 1, 1, 1); Added: head/sys/dev/vmd/vmd.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vmd/vmd.h Thu Oct 10 03:12:17 2019 (r353380) @@ -0,0 +1,89 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright 2019 Cisco Systems, Inc. + * 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 __VMD_PRIVATE_H__ +#define __VMD_PRIVATE_H__ + +struct vmd_irq_handler { + TAILQ_ENTRY(vmd_irq_handler) vmd_link; + device_t vmd_child; + driver_intr_t *vmd_intr; + void *vmd_arg; + int vmd_rid; +}; + +struct vmd_irq { + struct resource *vmd_res; + int vmd_rid; + void *vmd_handle; + struct vmd_softc *vmd_sc; + int vmd_instance; + TAILQ_HEAD(,vmd_irq_handler) vmd_list; +}; + +/* + * VMD specific data. + */ +struct vmd_softc +{ + device_t vmd_dev; + device_t vmd_child; + uint32_t vmd_flags; /* flags */ +#define PCIB_SUBTRACTIVE 0x1 +#define PCIB_DISABLE_MSI 0x2 +#define PCIB_DISABLE_MSIX 0x4 +#define PCIB_ENABLE_ARI 0x8 +#define PCIB_HOTPLUG 0x10 +#define PCIB_HOTPLUG_CMD_PENDING 0x20 +#define PCIB_DETACH_PENDING 0x40 +#define PCIB_DETACHING 0x80 + u_int vmd_domain; /* domain number */ + struct pcib_secbus vmd_bus; /* secondary bus numbers */ + +#define VMD_MAX_BAR 3 + struct resource *vmd_regs_resource[VMD_MAX_BAR]; + int vmd_regs_rid[VMD_MAX_BAR]; + bus_space_handle_t vmd_bhandle; + bus_space_tag_t vmd_btag; + int vmd_io_rid; + struct resource *vmd_io_resource; + void *vmd_intr; + struct vmd_irq *vmd_irq; + int vmd_msix_count; +#ifdef TASK_QUEUE_INTR + struct taskqueue *vmd_irq_tq; + struct task vmd_irq_task; +#else + struct mtx vmd_irq_lock; +#endif +}; + +#endif Added: head/sys/dev/vmd/vmd_bus.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vmd/vmd_bus.c Thu Oct 10 03:12:17 2019 (r353380) @@ -0,0 +1,201 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright 2019 Cisco Systems, Inc. + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "pcib_if.h" +#include "pci_if.h" + +static int +vmd_bus_probe(device_t dev) +{ + device_set_desc(dev, "VMD bus"); + + return (-1000); +} + +/* PCI interface. */ + +static int +vmd_bus_attach(device_t dev) +{ + struct vmd_softc *sc; + struct pci_devinfo *dinfo; + rman_res_t start, end; + int b, s, f; + + sc = device_get_softc(device_get_parent(dev)); + + /* Start at max PCI vmd_domain and work down */ + b = s = f = 0; + dinfo = pci_read_device(device_get_parent(dev), dev, + PCI_DOMAINMAX - device_get_unit(device_get_parent(dev)), + b, s, f); + if (dinfo == NULL) { + device_printf(dev, "Cannot allocate dinfo!\n"); + return (ENOENT); + } + + pci_add_child(dev, dinfo); + + start = rman_get_start(sc->vmd_regs_resource[1]); + end = rman_get_end(sc->vmd_regs_resource[1]); + resource_list_add_next(&dinfo->resources, SYS_RES_MEMORY, start, end, + end - start + 1); + + start = rman_get_start(sc->vmd_io_resource); + end = rman_get_end(sc->vmd_io_resource); + resource_list_add_next(&dinfo->resources, SYS_RES_IOPORT, start, end, + end - start + 1); + + bus_generic_attach(dev); + + return (0); +} + +static int +vmd_bus_detach(device_t dev) +{ + struct pci_devinfo *dinfo; + int b, s, f; + + device_delete_children(dev); + + b = s = f = 0; + dinfo = pci_read_device(device_get_parent(dev), dev, + PCI_DOMAINMAX - device_get_unit(device_get_parent(dev)), + b, s, f); + if (dinfo == NULL) { + resource_list_free(&dinfo->resources); + } + return (0); +} + +static int +vmd_bus_adjust_resource(device_t dev, device_t child, int type, + struct resource *r, rman_res_t start, rman_res_t end) +{ + struct resource *res = r; + if (type == SYS_RES_MEMORY) { + /* VMD device controls this */ + return (0); + } + + return (bus_generic_adjust_resource(dev, child, type, res, start, end)); +} + +static int +vmd_bus_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + if (type == SYS_RES_MEMORY) { + /* VMD device controls this */ + return (0); + } + + return (pci_release_resource(dev, child, type, rid, r)); +} + +static struct resource * +vmd_bus_alloc_resource(device_t dev, device_t child, int type, int *rid, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Thu Oct 10 07:41:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B7D914C05E; Thu, 10 Oct 2019 07:41:43 +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 46pjhQ74Ssz4jth; Thu, 10 Oct 2019 07:41:42 +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 BC3DF26AFF; Thu, 10 Oct 2019 07:41:42 +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 x9A7fghc016968; Thu, 10 Oct 2019 07:41:42 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A7fgxL016967; Thu, 10 Oct 2019 07:41:42 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910100741.x9A7fgxL016967@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Thu, 10 Oct 2019 07:41:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353382 - in head/share/man: man4 man9 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head/share/man: man4 man9 X-SVN-Commit-Revision: 353382 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 07:41:43 -0000 Author: avg Date: Thu Oct 10 07:41:42 2019 New Revision: 353382 URL: https://svnweb.freebsd.org/changeset/base/353382 Log: remove unrelated files accidentally committed in r353381 Deleted: head/share/man/man4/superio.4 head/share/man/man9/superio.9 From owner-svn-src-head@freebsd.org Thu Oct 10 12:46:44 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 85A74135395; Thu, 10 Oct 2019 12:46:44 +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 46prSN327dz3PvV; Thu, 10 Oct 2019 12:46:44 +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 4AE832182; Thu, 10 Oct 2019 12:46:44 +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 x9ACkiU6094270; Thu, 10 Oct 2019 12:46:44 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ACkZrl094222; Thu, 10 Oct 2019 12:46:35 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101246.x9ACkZrl094222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Thu, 10 Oct 2019 12:46:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353390 - in head: contrib/processor-trace/include contrib/processor-trace/include/posix contrib/processor-trace/include/windows contrib/processor-trace/libipt contrib/processor-trace/l... X-SVN-Group: head X-SVN-Commit-Author: br X-SVN-Commit-Paths: in head: contrib/processor-trace/include contrib/processor-trace/include/posix contrib/processor-trace/include/windows contrib/processor-trace/libipt contrib/processor-trace/libipt/include contrib/pro... X-SVN-Commit-Revision: 353390 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 12:46:44 -0000 Author: br Date: Thu Oct 10 12:46:34 2019 New Revision: 353390 URL: https://svnweb.freebsd.org/changeset/base/353390 Log: Update Intel Processor Trace decoder library. Its latest version merged from: ^/vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b Sponsored by: DARPA, AFRL Added: head/contrib/processor-trace/include/pt_version.h (contents, props changed) head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h (contents, props changed) head/contrib/processor-trace/libipt/internal/include/pti-sib.h (contents, props changed) head/contrib/processor-trace/libipt/test/src/ptunit-block_decoder.c (contents, props changed) head/contrib/processor-trace/libipt/test/src/ptunit-encoder.c (contents, props changed) head/contrib/processor-trace/libipt/test/src/ptunit-insn_decoder.c (contents, props changed) head/contrib/processor-trace/libipt/test/src/ptunit-packet_decoder.c (contents, props changed) Deleted: head/contrib/processor-trace/libipt/src/posix/init.c head/contrib/processor-trace/libipt/src/windows/init.c Modified: head/contrib/processor-trace/include/posix/threads.h head/contrib/processor-trace/include/pt_compiler.h head/contrib/processor-trace/include/windows/inttypes.h head/contrib/processor-trace/include/windows/threads.h head/contrib/processor-trace/libipt/CMakeLists.txt head/contrib/processor-trace/libipt/include/intel-pt.h head/contrib/processor-trace/libipt/include/intel-pt.h.in head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h head/contrib/processor-trace/libipt/internal/include/pt_asid.h head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h head/contrib/processor-trace/libipt/internal/include/pt_config.h head/contrib/processor-trace/libipt/internal/include/pt_cpu.h head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h head/contrib/processor-trace/libipt/internal/include/pt_encoder.h head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h head/contrib/processor-trace/libipt/internal/include/pt_ild.h head/contrib/processor-trace/libipt/internal/include/pt_image.h head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h head/contrib/processor-trace/libipt/internal/include/pt_insn.h head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h head/contrib/processor-trace/libipt/internal/include/pt_packet.h head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h head/contrib/processor-trace/libipt/internal/include/pt_retstack.h head/contrib/processor-trace/libipt/internal/include/pt_section.h head/contrib/processor-trace/libipt/internal/include/pt_section_file.h head/contrib/processor-trace/libipt/internal/include/pt_sync.h head/contrib/processor-trace/libipt/internal/include/pt_time.h head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h head/contrib/processor-trace/libipt/internal/include/pti-disp.h head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h head/contrib/processor-trace/libipt/internal/include/pti-imm.h head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h head/contrib/processor-trace/libipt/internal/include/pti-modrm.h head/contrib/processor-trace/libipt/internal/include/windows/pt_section_windows.h head/contrib/processor-trace/libipt/src/posix/pt_cpuid.c head/contrib/processor-trace/libipt/src/posix/pt_section_posix.c head/contrib/processor-trace/libipt/src/pt_asid.c head/contrib/processor-trace/libipt/src/pt_block_cache.c head/contrib/processor-trace/libipt/src/pt_block_decoder.c head/contrib/processor-trace/libipt/src/pt_config.c head/contrib/processor-trace/libipt/src/pt_cpu.c head/contrib/processor-trace/libipt/src/pt_decoder_function.c head/contrib/processor-trace/libipt/src/pt_encoder.c head/contrib/processor-trace/libipt/src/pt_error.c head/contrib/processor-trace/libipt/src/pt_event_queue.c head/contrib/processor-trace/libipt/src/pt_ild.c head/contrib/processor-trace/libipt/src/pt_image.c head/contrib/processor-trace/libipt/src/pt_image_section_cache.c head/contrib/processor-trace/libipt/src/pt_insn.c head/contrib/processor-trace/libipt/src/pt_insn_decoder.c head/contrib/processor-trace/libipt/src/pt_last_ip.c head/contrib/processor-trace/libipt/src/pt_msec_cache.c head/contrib/processor-trace/libipt/src/pt_packet.c head/contrib/processor-trace/libipt/src/pt_packet_decoder.c head/contrib/processor-trace/libipt/src/pt_query_decoder.c head/contrib/processor-trace/libipt/src/pt_retstack.c head/contrib/processor-trace/libipt/src/pt_section.c head/contrib/processor-trace/libipt/src/pt_section_file.c head/contrib/processor-trace/libipt/src/pt_sync.c head/contrib/processor-trace/libipt/src/pt_time.c head/contrib/processor-trace/libipt/src/pt_tnt_cache.c head/contrib/processor-trace/libipt/src/pt_version.c head/contrib/processor-trace/libipt/src/windows/pt_cpuid.c head/contrib/processor-trace/libipt/src/windows/pt_section_windows.c head/contrib/processor-trace/libipt/test/src/ptunit-asid.c head/contrib/processor-trace/libipt/test/src/ptunit-block_cache.c head/contrib/processor-trace/libipt/test/src/ptunit-config.c head/contrib/processor-trace/libipt/test/src/ptunit-cpp.cpp head/contrib/processor-trace/libipt/test/src/ptunit-cpu.c head/contrib/processor-trace/libipt/test/src/ptunit-event_queue.c head/contrib/processor-trace/libipt/test/src/ptunit-fetch.c head/contrib/processor-trace/libipt/test/src/ptunit-ild.c head/contrib/processor-trace/libipt/test/src/ptunit-image.c head/contrib/processor-trace/libipt/test/src/ptunit-image_section_cache.c head/contrib/processor-trace/libipt/test/src/ptunit-last_ip.c head/contrib/processor-trace/libipt/test/src/ptunit-mapped_section.c head/contrib/processor-trace/libipt/test/src/ptunit-msec_cache.c head/contrib/processor-trace/libipt/test/src/ptunit-packet.c head/contrib/processor-trace/libipt/test/src/ptunit-query.c head/contrib/processor-trace/libipt/test/src/ptunit-retstack.c head/contrib/processor-trace/libipt/test/src/ptunit-section-file.c head/contrib/processor-trace/libipt/test/src/ptunit-section.c head/contrib/processor-trace/libipt/test/src/ptunit-sync.c head/contrib/processor-trace/libipt/test/src/ptunit-time.c head/contrib/processor-trace/libipt/test/src/ptunit-tnt_cache.c head/lib/libipt/Makefile Modified: head/contrib/processor-trace/include/posix/threads.h ============================================================================== --- head/contrib/processor-trace/include/posix/threads.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/include/posix/threads.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/include/pt_compiler.h ============================================================================== --- head/contrib/processor-trace/include/pt_compiler.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/include/pt_compiler.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018, Intel Corporation + * Copyright (c) 2017-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Added: head/contrib/processor-trace/include/pt_version.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/processor-trace/include/pt_version.h Thu Oct 10 12:46:34 2019 (r353390) @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2018-2019, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of Intel Corporation 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#ifndef PT_VERSION_H +#define PT_VERSION_H + +#include "intel-pt.h" + +#include +#include + + +static inline int pt_fprint_version(FILE *file, struct pt_version version) +{ + if (version.build) { + if (version.ext && version.ext[0]) + return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16 + "-%" PRIu32 "-%s", version.major, + version.minor, version.patch, + version.build, version.ext); + else + return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16 + "-%" PRIu32 "", version.major, + version.minor, version.patch, + version.build); + } else { + if (version.ext && version.ext[0]) + return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16 + "-%s", version.major, version.minor, + version.patch, version.ext); + else + return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16, + version.major, version.minor, + version.patch); + } +} + +static inline int pt_print_version(struct pt_version version) +{ + return pt_fprint_version(stdout, version); +} + +static inline void pt_print_tool_version(const char *name) +{ + struct pt_version v = { + /* .major = */ PT_VERSION_MAJOR, + /* .minor = */ PT_VERSION_MINOR, + /* .patch = */ PT_VERSION_PATCH, + /* .build = */ PT_VERSION_BUILD, + /* .ext = */ PT_VERSION_EXT + }; + + if (!name) + name = ""; + + printf("%s-", name); + pt_print_version(v); + printf(" / libipt-"); + pt_print_version(pt_library_version()); + printf("\n"); +} + +#endif /* PT_VERSION_H */ Modified: head/contrib/processor-trace/include/windows/inttypes.h ============================================================================== --- head/contrib/processor-trace/include/windows/inttypes.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/include/windows/inttypes.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/include/windows/threads.h ============================================================================== --- head/contrib/processor-trace/include/windows/threads.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/include/windows/threads.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/CMakeLists.txt ============================================================================== --- head/contrib/processor-trace/libipt/CMakeLists.txt Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/CMakeLists.txt Thu Oct 10 12:46:34 2019 (r353390) @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2018, Intel Corporation +# Copyright (c) 2013-2019, Intel Corporation # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -64,28 +64,28 @@ if (CMAKE_HOST_UNIX) internal/include/posix ) - set(LIBIPT_FILES ${LIBIPT_FILES} src/posix/init.c) set(LIBIPT_SECTION_FILES ${LIBIPT_SECTION_FILES} src/posix/pt_section_posix.c) endif (CMAKE_HOST_UNIX) if (CMAKE_HOST_WIN32) - add_definitions( - # export libipt symbols - # - /Dpt_export=__declspec\(dllexport\) - ) + if (BUILD_SHARED_LIBS) + add_definitions( + # export libipt symbols + # + /Dpt_export=__declspec\(dllexport\) + ) + endif (BUILD_SHARED_LIBS) include_directories( internal/include/windows ) - set(LIBIPT_FILES ${LIBIPT_FILES} src/windows/init.c) set(LIBIPT_SECTION_FILES ${LIBIPT_SECTION_FILES} src/windows/pt_section_windows.c) endif (CMAKE_HOST_WIN32) set(LIBIPT_FILES ${LIBIPT_FILES} ${LIBIPT_SECTION_FILES}) -add_library(libipt SHARED +add_library(libipt ${LIBIPT_FILES} ) @@ -167,6 +167,24 @@ add_ptunit_c_test(fetch src/pt_encoder.c src/pt_config.c ) +add_ptunit_c_test(encoder + src/pt_encoder.c + src/pt_config.c +) +add_ptunit_c_test(packet_decoder + src/pt_packet_decoder.c + src/pt_packet.c + src/pt_config.c + src/pt_sync.c + src/pt_decoder_function.c + src/pt_query_decoder.c + src/pt_event_queue.c + src/pt_last_ip.c + src/pt_tnt_cache.c + src/pt_time.c +) +add_ptunit_c_test(insn_decoder ${LIBIPT_FILES}) +add_ptunit_c_test(block_decoder ${LIBIPT_FILES}) add_ptunit_cpp_test(cpp) add_ptunit_libraries(cpp libipt) Modified: head/contrib/processor-trace/libipt/include/intel-pt.h ============================================================================== --- head/contrib/processor-trace/libipt/include/intel-pt.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/include/intel-pt.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -80,6 +80,7 @@ struct pt_block_decoder; /** The header version. */ #define LIBIPT_VERSION_MAJOR ${PT_VERSION_MAJOR} #define LIBIPT_VERSION_MINOR ${PT_VERSION_MINOR} +#define LIBIPT_VERSION_PATCH ${PT_VERSION_PATCH} #define LIBIPT_VERSION ((LIBIPT_VERSION_MAJOR << 8) + LIBIPT_VERSION_MINOR) @@ -92,8 +93,8 @@ struct pt_version { /** Minor version number. */ uint8_t minor; - /** Reserved bits. */ - uint16_t reserved; + /** Patch level. */ + uint16_t patch; /** Build number. */ uint32_t build; @@ -330,6 +331,16 @@ struct pt_errata { */ uint32_t apl11:1; + /** SKL168: Intel(R) PT CYC Packets Can be Dropped When Immediately + * Preceding PSB + * + * Due to a rare microarchitectural condition, generation of an Intel + * PT (Processor Trace) PSB (Packet Stream Boundary) packet can cause a + * single CYC (Cycle Count) packet, possibly along with an associated + * MTC (Mini Time Counter) packet, to be dropped. + */ + uint32_t skl168:1; + /* Reserve a few bytes for the future. */ uint32_t reserved[15]; }; @@ -348,13 +359,25 @@ struct pt_conf_flags { /** End a block after a jump instruction. */ uint32_t end_on_jump:1; + + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; } block; /** Flags for the instruction flow decoder. */ struct { /** Enable tick events for timing updates. */ uint32_t enable_tick_events:1; + + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; } insn; + + /** Flags for the query decoder. */ + struct { + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; + } query; /* Reserve a few bytes for future extensions. */ uint32_t reserved[4]; Modified: head/contrib/processor-trace/libipt/include/intel-pt.h.in ============================================================================== --- head/contrib/processor-trace/libipt/include/intel-pt.h.in Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/include/intel-pt.h.in Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -80,6 +80,7 @@ struct pt_block_decoder; /** The header version. */ #define LIBIPT_VERSION_MAJOR ${PT_VERSION_MAJOR} #define LIBIPT_VERSION_MINOR ${PT_VERSION_MINOR} +#define LIBIPT_VERSION_PATCH ${PT_VERSION_PATCH} #define LIBIPT_VERSION ((LIBIPT_VERSION_MAJOR << 8) + LIBIPT_VERSION_MINOR) @@ -92,8 +93,8 @@ struct pt_version { /** Minor version number. */ uint8_t minor; - /** Reserved bits. */ - uint16_t reserved; + /** Patch level. */ + uint16_t patch; /** Build number. */ uint32_t build; @@ -330,6 +331,16 @@ struct pt_errata { */ uint32_t apl11:1; + /** SKL168: Intel(R) PT CYC Packets Can be Dropped When Immediately + * Preceding PSB + * + * Due to a rare microarchitectural condition, generation of an Intel + * PT (Processor Trace) PSB (Packet Stream Boundary) packet can cause a + * single CYC (Cycle Count) packet, possibly along with an associated + * MTC (Mini Time Counter) packet, to be dropped. + */ + uint32_t skl168:1; + /* Reserve a few bytes for the future. */ uint32_t reserved[15]; }; @@ -348,13 +359,25 @@ struct pt_conf_flags { /** End a block after a jump instruction. */ uint32_t end_on_jump:1; + + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; } block; /** Flags for the instruction flow decoder. */ struct { /** Enable tick events for timing updates. */ uint32_t enable_tick_events:1; + + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; } insn; + + /** Flags for the query decoder. */ + struct { + /** Preserve timing calibration on overflow. */ + uint32_t keep_tcal_on_ovf:1; + } query; /* Reserve a few bytes for future extensions. */ uint32_t reserved[4]; Modified: head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018, Intel Corporation + * Copyright (c) 2015-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_asid.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_asid.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_asid.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018, Intel Corporation + * Copyright (c) 2016-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018, Intel Corporation + * Copyright (c) 2016-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_config.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_config.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_config.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018, Intel Corporation + * Copyright (c) 2015-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_cpu.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_cpu.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_cpu.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_encoder.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_encoder.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_encoder.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_ild.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_ild.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_ild.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -96,11 +96,6 @@ static inline uint8_t pti_get_modrm_rm(const struct pt { return ild->modrm_byte & 7; } - -/* MAIN ENTRANCE POINTS */ - -/* one time call. not thread safe init. call when single threaded. */ -extern void pt_ild_init(void); /* all decoding is multithread safe. */ Modified: head/contrib/processor-trace/libipt/internal/include/pt_image.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_image.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_image.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018, Intel Corporation + * Copyright (c) 2016-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_insn.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_insn.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_insn.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018, Intel Corporation + * Copyright (c) 2016-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018, Intel Corporation + * Copyright (c) 2017-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_packet.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_packet.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_packet.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_retstack.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_retstack.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_retstack.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_section.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_section.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_section.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -162,10 +162,15 @@ struct pt_section { * The returned section is not mapped and starts with a user count of one and * instruction caching enabled. * - * Returns a new section on success, NULL otherwise. + * Returns zero on success, a negative pt_error_code otherwise. + * Returns -pte_internal if @psection is NULL. + * Returns -pte_nomem when running out of memory. + * Returns -pte_bad_file if @filename cannot be opened. + * Returns -pte_invalid if @offset lies beyond @file. + * Returns -pte_invalid if @filename is too long. */ -extern struct pt_section *pt_mk_section(const char *file, uint64_t offset, - uint64_t size); +extern int pt_mk_section(struct pt_section **psection, const char *filename, + uint64_t offset, uint64_t size); /* Lock a section. * Modified: head/contrib/processor-trace/libipt/internal/include/pt_section_file.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_section_file.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_section_file.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_sync.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_sync.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_sync.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pt_time.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_time.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_time.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018, Intel Corporation + * Copyright (c) 2014-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -166,6 +166,9 @@ struct pt_time_cal { /* A flag saying whether we have seen a MTC packet. */ uint32_t have_mtc:1; + + /* A flag saying whether we need to check for erratum SKL168. */ + uint32_t check_skl168:1; }; enum { @@ -227,6 +230,10 @@ extern int pt_tcal_update_mtc(struct pt_time_cal *, const struct pt_config *); extern int pt_tcal_update_cyc(struct pt_time_cal *, const struct pt_packet_cyc *, + const struct pt_config *); +extern int pt_tcal_update_psb(struct pt_time_cal *, + const struct pt_config *); +extern int pt_tcal_update_ovf(struct pt_time_cal *, const struct pt_config *); #endif /* PT_TIME_H */ Modified: head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pti-disp.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-disp.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-disp.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Added: head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h Thu Oct 10 12:46:34 2019 (r353390) @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2017-2019, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of Intel Corporation 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#ifndef PTI_DISP_DEFAULT_H +#define PTI_DISP_DEFAULT_H + +#include + + +static const uint8_t disp_default[4][4][8] = { + /* Effective Addressing Mode: ptem_unknown. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 1 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 2 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 3 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + } + }, + + /* Effective Addressing Mode: ptem_16bit. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 2, + /* RM: 7 */ 0 + }, + /* MOD: 1 */ { + /* RM: 0 */ 1, + /* RM: 1 */ 1, + /* RM: 2 */ 1, + /* RM: 3 */ 1, + /* RM: 4 */ 1, + /* RM: 5 */ 1, + /* RM: 6 */ 1, + /* RM: 7 */ 1 + }, + /* MOD: 2 */ { + /* RM: 0 */ 2, + /* RM: 1 */ 2, + /* RM: 2 */ 2, + /* RM: 3 */ 2, + /* RM: 4 */ 2, + /* RM: 5 */ 2, + /* RM: 6 */ 2, + /* RM: 7 */ 2 + }, + /* MOD: 3 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + } + }, + + /* Effective Addressing Mode: ptem_32bit. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 4, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 1 */ { + /* RM: 0 */ 1, + /* RM: 1 */ 1, + /* RM: 2 */ 1, + /* RM: 3 */ 1, + /* RM: 4 */ 1, + /* RM: 5 */ 1, + /* RM: 6 */ 1, + /* RM: 7 */ 1 + }, + /* MOD: 2 */ { + /* RM: 0 */ 4, + /* RM: 1 */ 4, + /* RM: 2 */ 4, + /* RM: 3 */ 4, + /* RM: 4 */ 4, + /* RM: 5 */ 4, + /* RM: 6 */ 4, + /* RM: 7 */ 4 + }, + /* MOD: 3 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + } + }, + + /* Effective Addressing Mode: ptem_64bit. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 4, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 1 */ { + /* RM: 0 */ 1, + /* RM: 1 */ 1, + /* RM: 2 */ 1, + /* RM: 3 */ 1, + /* RM: 4 */ 1, + /* RM: 5 */ 1, + /* RM: 6 */ 1, + /* RM: 7 */ 1 + }, + /* MOD: 2 */ { + /* RM: 0 */ 4, + /* RM: 1 */ 4, + /* RM: 2 */ 4, + /* RM: 3 */ 4, + /* RM: 4 */ 4, + /* RM: 5 */ 4, + /* RM: 6 */ 4, + /* RM: 7 */ 4 + }, + /* MOD: 3 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + } + } +}; + +#endif /* PTI_DISP_DEFAULT_H */ Modified: head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pti-imm.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-imm.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-imm.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Modified: head/contrib/processor-trace/libipt/internal/include/pti-modrm.h ============================================================================== --- head/contrib/processor-trace/libipt/internal/include/pti-modrm.h Thu Oct 10 12:20:25 2019 (r353389) +++ head/contrib/processor-trace/libipt/internal/include/pti-modrm.h Thu Oct 10 12:46:34 2019 (r353390) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018, Intel Corporation + * Copyright (c) 2013-2019, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: Added: head/contrib/processor-trace/libipt/internal/include/pti-sib.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/processor-trace/libipt/internal/include/pti-sib.h Thu Oct 10 12:46:34 2019 (r353390) @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2017-2019, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of Intel Corporation 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#ifndef PTI_SIB_H +#define PTI_SIB_H + +#include + + +static const uint8_t has_sib[4][4][8] = { + /* Effective Addressing Mode: ptem_unknown. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 1 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 2 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + }, + /* MOD: 3 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 + } + }, + + /* Effective Addressing Mode: ptem_16bit. */ { + /* MOD: 0 */ { + /* RM: 0 */ 0, + /* RM: 1 */ 0, + /* RM: 2 */ 0, + /* RM: 3 */ 0, + /* RM: 4 */ 0, + /* RM: 5 */ 0, + /* RM: 6 */ 0, + /* RM: 7 */ 0 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Thu Oct 10 13:30:18 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B2BD9137921; Thu, 10 Oct 2019 13:30:18 +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 46psQf52VFz3yK8; Thu, 10 Oct 2019 13:30:18 +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 77FB728BB; Thu, 10 Oct 2019 13:30:18 +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 x9ADUIx5018869; Thu, 10 Oct 2019 13:30:18 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ADUEFS018844; Thu, 10 Oct 2019 13:30:14 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101330.x9ADUEFS018844@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Thu, 10 Oct 2019 13:30:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353393 - in head: contrib/opencsd/decoder/include/common contrib/opencsd/decoder/include/i_dec contrib/opencsd/decoder/include/interfaces contrib/opencsd/decoder/include/mem_acc contri... X-SVN-Group: head X-SVN-Commit-Author: br X-SVN-Commit-Paths: in head: contrib/opencsd/decoder/include/common contrib/opencsd/decoder/include/i_dec contrib/opencsd/decoder/include/interfaces contrib/opencsd/decoder/include/mem_acc contrib/opencsd/decoder/include... X-SVN-Commit-Revision: 353393 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 13:30:18 -0000 Author: br Date: Thu Oct 10 13:30:13 2019 New Revision: 353393 URL: https://svnweb.freebsd.org/changeset/base/353393 Log: Update ARM CoreSight trace decoder library. Its latest version merged from: ^/vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca Sponsored by: DARPA, AFRL Added: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cache.h (contents, props changed) head/contrib/opencsd/decoder/include/opencsd/ocsd_if_version.h (contents, props changed) head/contrib/opencsd/decoder/source/mem_acc/trc_mem_acc_cache.cpp (contents, props changed) Modified: head/contrib/opencsd/decoder/include/common/ocsd_code_follower.h head/contrib/opencsd/decoder/include/common/ocsd_dcd_tree.h head/contrib/opencsd/decoder/include/common/ocsd_error_logger.h head/contrib/opencsd/decoder/include/common/ocsd_msg_logger.h head/contrib/opencsd/decoder/include/common/trc_gen_elem.h head/contrib/opencsd/decoder/include/i_dec/trc_i_decode.h head/contrib/opencsd/decoder/include/i_dec/trc_idec_arminst.h head/contrib/opencsd/decoder/include/interfaces/trc_error_log_i.h head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_base.h head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_bufptr.h head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cb.h head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_file.h head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_mapper.h head/contrib/opencsd/decoder/include/opencsd/c_api/ocsd_c_api_types.h head/contrib/opencsd/decoder/include/opencsd/c_api/opencsd_c_api.h head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h head/contrib/opencsd/decoder/include/opencsd/ocsd_if_types.h head/contrib/opencsd/decoder/include/opencsd/trc_gen_elem_types.h head/contrib/opencsd/decoder/include/pkt_printers/pkt_printer_t.h head/contrib/opencsd/decoder/source/c_api/ocsd_c_api.cpp head/contrib/opencsd/decoder/source/etmv3/trc_pkt_decode_etmv3.cpp head/contrib/opencsd/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp head/contrib/opencsd/decoder/source/etmv4/trc_etmv4_stack_elem.cpp head/contrib/opencsd/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp head/contrib/opencsd/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp head/contrib/opencsd/decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.cpp head/contrib/opencsd/decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.h head/contrib/opencsd/decoder/source/i_dec/trc_i_decode.cpp head/contrib/opencsd/decoder/source/i_dec/trc_idec_arminst.cpp head/contrib/opencsd/decoder/source/mem_acc/trc_mem_acc_bufptr.cpp head/contrib/opencsd/decoder/source/mem_acc/trc_mem_acc_cb.cpp head/contrib/opencsd/decoder/source/mem_acc/trc_mem_acc_file.cpp head/contrib/opencsd/decoder/source/mem_acc/trc_mem_acc_mapper.cpp head/contrib/opencsd/decoder/source/ocsd_code_follower.cpp head/contrib/opencsd/decoder/source/ocsd_dcd_tree.cpp head/contrib/opencsd/decoder/source/ocsd_error.cpp head/contrib/opencsd/decoder/source/ocsd_error_logger.cpp head/contrib/opencsd/decoder/source/ocsd_version.cpp head/contrib/opencsd/decoder/source/ptm/trc_pkt_decode_ptm.cpp head/contrib/opencsd/decoder/source/trc_core_arch_map.cpp head/contrib/opencsd/decoder/source/trc_frame_deformatter.cpp head/contrib/opencsd/decoder/source/trc_gen_elem.cpp head/contrib/opencsd/decoder/source/trc_printable_elem.cpp head/lib/libopencsd/Makefile Modified: head/contrib/opencsd/decoder/include/common/ocsd_code_follower.h ============================================================================== --- head/contrib/opencsd/decoder/include/common/ocsd_code_follower.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/common/ocsd_code_follower.h Thu Oct 10 13:30:13 2019 (r353393) @@ -95,6 +95,7 @@ class OcsdCodeFollower (public) const bool isLink() const; //!< is a link (branch with link etc) const bool ISAChanged() const; //!< next ISA different from input ISA. const ocsd_isa nextISA() const; //!< ISA for next instruction + const uint8_t getInstrSize() const; //!< Get the last instruction size. // information on error conditions const bool isNacc() const; //!< true if Memory Not Accessible (nacc) error occurred @@ -190,6 +191,11 @@ inline const ocsd_instr_type OcsdCodeFollower::getInst inline const ocsd_instr_subtype OcsdCodeFollower::getInstrSubType() const { return m_instr_info.sub_type; +} + +inline const uint8_t OcsdCodeFollower::getInstrSize() const +{ + return m_instr_info.instr_size; } inline const bool OcsdCodeFollower::isCondInstr() const Modified: head/contrib/opencsd/decoder/include/common/ocsd_dcd_tree.h ============================================================================== --- head/contrib/opencsd/decoder/include/common/ocsd_dcd_tree.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/common/ocsd_dcd_tree.h Thu Oct 10 13:30:13 2019 (r353393) @@ -313,7 +313,23 @@ class DecodeTree : public ITrcDataIn (public) */ ocsd_err_t addBinFileRegionMemAcc(const ocsd_file_mem_region_t *region_array, const int num_regions, const ocsd_mem_space_acc_t mem_space, const std::string &filepath); + /*! + * Updates/adds to a memory accessor for a memory block supplied as a one or more memory regions in a binary file. + * Region structures are created that describe the memory start address, the offset within the binary file + * for that address, and the length of the region. This accessor can be used to point to the code section + * in a program file for example. + * + * @param *region_array : array of valid memory regions in the file. + * @param num_regions : number of regions + * @param mem_space : Memory space + * @param &filepath : Path to the binary data file + * + * @return ocsd_err_t : Library error code or OCSD_OK if successful. + */ + ocsd_err_t updateBinFileRegionMemAcc(const ocsd_file_mem_region_t *region_array, const int num_regions, const ocsd_mem_space_acc_t mem_space, const std::string &filepath); + + /*! * This memory accessor allows the client to supply a callback function for the region * defined by the start and end addresses. This can be used to supply a custom memory accessor, * or to directly access memory if the decode is running live on a target system. @@ -327,7 +343,8 @@ class DecodeTree : public ITrcDataIn (public) * @return ocsd_err_t : Library error code or OCSD_OK if successful. */ ocsd_err_t addCallbackMemAcc(const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAcc_CB p_cb_func, const void *p_context); - + ocsd_err_t addCallbackIDMemAcc(const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAccID_CB p_cb_func, const void *p_context); + /*! * Remove the memory accessor from the map, that begins at the given address, for the memory space provided. * @@ -368,6 +385,9 @@ class DecodeTree : public ITrcDataIn (public) ocsd_err_t createDecodeElement(const uint8_t CSID); void destroyDecodeElement(const uint8_t CSID); void destroyMemAccMapper(); + ocsd_err_t initCallbackMemAcc(const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, + const ocsd_mem_space_acc_t mem_space, void *p_cb_func, bool IDfn, const void *p_context); + ocsd_dcd_tree_src_t m_dcd_tree_type; Modified: head/contrib/opencsd/decoder/include/common/ocsd_error_logger.h ============================================================================== --- head/contrib/opencsd/decoder/include/common/ocsd_error_logger.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/common/ocsd_error_logger.h Thu Oct 10 13:30:13 2019 (r353393) @@ -37,7 +37,7 @@ #include #include -#include +//#include #include "interfaces/trc_error_log_i.h" #include "ocsd_error.h" @@ -49,7 +49,7 @@ class ocsdDefaultErrorLogger : public ITraceErrorLog ( ocsdDefaultErrorLogger(); virtual ~ocsdDefaultErrorLogger(); - bool initErrorLogger(const ocsd_err_severity_t verbosity, bool bCreateOutputLogger = false); + bool initErrorLogger(const ocsd_err_severity_t verbosity, bool bCreateOutputLogger = false); //!< Initialise the error logger with a severity filter, optionally create an output logger on stderr. virtual ocsdMsgLogger *getOutputLogger() { return m_output_logger; }; virtual void setOutputLogger(ocsdMsgLogger *pLogger); Modified: head/contrib/opencsd/decoder/include/common/ocsd_msg_logger.h ============================================================================== --- head/contrib/opencsd/decoder/include/common/ocsd_msg_logger.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/common/ocsd_msg_logger.h Thu Oct 10 13:30:13 2019 (r353393) @@ -53,23 +53,26 @@ class ocsdMsgLogger (public) ocsdMsgLogger(); ~ocsdMsgLogger(); + /** Typedef enum providing flags to define the output methods for the message logger. + */ typedef enum { - OUT_NONE = 0, - OUT_FILE = 1, - OUT_STDERR = 2, - OUT_STDOUT = 4, - OUT_STR_CB = 8 /* output to external string callback interface */ + OUT_NONE = 0, /*!< No output from logger*/ + OUT_FILE = 1, /*!< Output to file */ + OUT_STDERR = 2, /*!< Output to stderr */ + OUT_STDOUT = 4, /*!< Output to stdout */ + OUT_STR_CB = 8 /*!< output to external string callback interface */ } output_dest; - void setLogOpts(int logOpts); - const int getLogOpts() const { return m_outFlags; }; + void setLogOpts(int logOpts); //!< set the output logging flags. + const int getLogOpts() const //! get the current output logging flags value. + { return m_outFlags; }; - void setLogFileName(const char *fileName); - void setStrOutFn(ocsdMsgLogStrOutI *p_IstrOut); + void setLogFileName(const char *fileName); //!< Set the output log filename, and enable logging to file. + void setStrOutFn(ocsdMsgLogStrOutI *p_IstrOut); //!< Set the output log string callback and enable logging to callback. - void LogMsg(const std::string &msg); + void LogMsg(const std::string &msg); //!< Log a message to the current set output channels. - const bool isLogging() const; + const bool isLogging() const; //!< true if logging active private: int m_outFlags; Modified: head/contrib/opencsd/decoder/include/common/trc_gen_elem.h ============================================================================== --- head/contrib/opencsd/decoder/include/common/trc_gen_elem.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/common/trc_gen_elem.h Thu Oct 10 13:30:13 2019 (r353393) @@ -73,9 +73,10 @@ class OcsdTraceElement : public trcPrintableElem, publ void setTraceOnReason(const trace_on_reason_t reason); - void setAddrRange(const ocsd_vaddr_t st_addr, const ocsd_vaddr_t en_addr); - void setLastInstrInfo(const bool exec, const ocsd_instr_type last_i_type, const ocsd_instr_subtype last_i_subtype); + void setAddrRange(const ocsd_vaddr_t st_addr, const ocsd_vaddr_t en_addr, const int num_instr = 1); + void setLastInstrInfo(const bool exec, const ocsd_instr_type last_i_type, const ocsd_instr_subtype last_i_subtype, const uint8_t size); void setAddrStart(const ocsd_vaddr_t st_addr) { this->st_addr = st_addr; }; + void setLastInstrCond(const int is_cond) { this->last_instr_cond = is_cond; }; void setSWTInfo(const ocsd_swt_info_t swt_info) { sw_trace_info = swt_info; }; void setExtendedDataPtr(const void *data_ptr); @@ -122,15 +123,17 @@ inline void OcsdTraceElement::setEvent(const event_t e trace_event.ev_number = ev_type == EVENT_NUMBERED ? number : 0; } -inline void OcsdTraceElement::setAddrRange(const ocsd_vaddr_t st_addr, const ocsd_vaddr_t en_addr) +inline void OcsdTraceElement::setAddrRange(const ocsd_vaddr_t st_addr, const ocsd_vaddr_t en_addr, const int num_instr /* = 1 */) { this->st_addr = st_addr; this->en_addr = en_addr; + this->num_instr_range = num_instr; } -inline void OcsdTraceElement::setLastInstrInfo(const bool exec, const ocsd_instr_type last_i_type, const ocsd_instr_subtype last_i_subtype) +inline void OcsdTraceElement::setLastInstrInfo(const bool exec, const ocsd_instr_type last_i_type, const ocsd_instr_subtype last_i_subtype, const uint8_t size) { last_instr_exec = exec ? 1 : 0; + last_instr_sz = size & 0x7; this->last_i_type = last_i_type; this->last_i_subtype = last_i_subtype; } Modified: head/contrib/opencsd/decoder/include/i_dec/trc_i_decode.h ============================================================================== --- head/contrib/opencsd/decoder/include/i_dec/trc_i_decode.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/i_dec/trc_i_decode.h Thu Oct 10 13:30:13 2019 (r353393) @@ -49,6 +49,7 @@ class TrcIDecode : public IInstrDecode (private) ocsd_err_t DecodeA32(ocsd_instr_info *instr_info); ocsd_err_t DecodeA64(ocsd_instr_info *instr_info); ocsd_err_t DecodeT32(ocsd_instr_info *instr_info); + void SetArchVersion(ocsd_instr_info *instr_info); }; #endif // ARM_TRC_I_DECODE_H_INCLUDED Modified: head/contrib/opencsd/decoder/include/i_dec/trc_idec_arminst.h ============================================================================== --- head/contrib/opencsd/decoder/include/i_dec/trc_idec_arminst.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/i_dec/trc_idec_arminst.h Thu Oct 10 13:30:13 2019 (r353393) @@ -73,7 +73,9 @@ Performance event 0x0D counts these. */ int inst_ARM_is_direct_branch(uint32_t inst); int inst_Thumb_is_direct_branch(uint32_t inst); +int inst_Thumb_is_direct_branch_link(uint32_t inst, uint8_t *is_link, uint8_t *is_cond); int inst_A64_is_direct_branch(uint32_t inst); +int inst_A64_is_direct_branch_link(uint32_t inst, uint8_t *is_link); /* Get branch destination for a direct branch. @@ -83,7 +85,9 @@ int inst_Thumb_branch_destination(uint32_t addr, uint3 int inst_A64_branch_destination(uint64_t addr, uint32_t inst, uint64_t *pnpc); int inst_ARM_is_indirect_branch(uint32_t inst); +int inst_Thumb_is_indirect_branch_link(uint32_t inst, uint8_t *is_link); int inst_Thumb_is_indirect_branch(uint32_t inst); +int inst_A64_is_indirect_branch_link(uint32_t inst, uint8_t *is_link); int inst_A64_is_indirect_branch(uint32_t inst); int inst_ARM_is_branch_and_link(uint32_t inst); @@ -109,6 +113,10 @@ arm_barrier_t inst_ARM_barrier(uint32_t inst); arm_barrier_t inst_Thumb_barrier(uint32_t inst); arm_barrier_t inst_A64_barrier(uint32_t inst); +int inst_ARM_wfiwfe(uint32_t inst); +int inst_Thumb_wfiwfe(uint32_t inst); +int inst_A64_wfiwfe(uint32_t inst); + /* Test whether an instruction is definitely undefined, e.g. because allocated to a "permanently UNDEFINED" space (UDF mnemonic). @@ -124,6 +132,9 @@ int inst_A64_is_UDF(uint32_t inst); /* access sub-type information */ ocsd_instr_subtype get_instr_subtype(); void clear_instr_subtype(); + +/* set arch version info. */ +void set_arch_version(uint16_t version); #endif // ARM_TRC_IDEC_ARMINST_H_INCLUDED Modified: head/contrib/opencsd/decoder/include/interfaces/trc_error_log_i.h ============================================================================== --- head/contrib/opencsd/decoder/include/interfaces/trc_error_log_i.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/interfaces/trc_error_log_i.h Thu Oct 10 13:30:13 2019 (r353393) @@ -56,8 +56,8 @@ class ocsdMsgLogger; class ITraceErrorLog { public: - ITraceErrorLog() {}; /**< default constructor */ - virtual ~ITraceErrorLog() {}; /**< default destructor */ + ITraceErrorLog() {}; + virtual ~ITraceErrorLog() {}; /*! * Register a named component error source. Allows the logger to associate errors with components. @@ -111,7 +111,7 @@ class ITraceErrorLog (public) * Get the last error associated with the given Trace source channel ID. * returns a pointer to the error or 0 if no errors associated with the ID. * - * @param chan_id : ID. + * @param chan_id : Trace Source Channel ID (CoreSight Trace ID). * * @return ocsdError *: last error pointer for ID or 0. */ Modified: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_base.h ============================================================================== --- head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_base.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_base.h Thu Oct 10 13:30:13 2019 (r353393) @@ -123,12 +123,13 @@ class TrcMemAccessorBase (public) * * @param s_address : Start address of the read. * @param memSpace : memory space for this access. + * @param trcID : Trace ID of trace source. * @param reqBytes : Number of bytes required. * @param *byteBuffer : Buffer to copy the bytes into. * * @return uint32_t : Number of bytes read, 0 if s_address out of range, or mem space not accessible. */ - virtual const uint32_t readBytes(const ocsd_vaddr_t s_address, const ocsd_mem_space_acc_t memSpace, const uint32_t reqBytes, uint8_t *byteBuffer) = 0; + virtual const uint32_t readBytes(const ocsd_vaddr_t s_address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer) = 0; /*! * Validate the address range - ensure addresses aligned, different, st < en etc. Modified: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_bufptr.h ============================================================================== --- head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_bufptr.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_bufptr.h Thu Oct 10 13:30:13 2019 (r353393) @@ -64,7 +64,7 @@ class TrcMemAccBufPtr: public TrcMemAccessorBase (publ virtual ~TrcMemAccBufPtr() {}; /**< default destructor */ /** Memory access override - allow decoder to read bytes from the buffer. */ - virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint32_t reqBytes, uint8_t *byteBuffer); + virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer); private: const uint8_t *m_p_buffer; /**< pointer to the memory buffer */ Added: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cache.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cache.h Thu Oct 10 13:30:13 2019 (r353393) @@ -0,0 +1,149 @@ +/*! +* \file trc_mem_acc_cache.h +* \brief OpenCSD : Memory accessor cache. +* +* \copyright Copyright (c) 2018, ARM Limited. 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 copyright holder 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. +*/ + +#ifndef ARM_TRC_MEM_ACC_CACHE_H_INCLUDED +#define ARM_TRC_MEM_ACC_CACHE_H_INCLUDED + +#include +#include "opencsd/ocsd_if_types.h" + +#define MEM_ACC_CACHE_PAGE_SIZE 256 +#define MEM_ACC_CACHE_MRU_SIZE 12 + +class TrcMemAccessorBase; +class ITraceErrorLog; + +typedef struct cache_block { + ocsd_vaddr_t st_addr; + uint32_t valid_len; + uint8_t data[MEM_ACC_CACHE_PAGE_SIZE]; +} cache_block_t; + +// enable define to collect stats for debugging / cache performance tests +//#define LOG_CACHE_STATS + + +/** class TrcMemAccCache - cache small amounts of data from accessors to speed up decode. */ +class TrcMemAccCache +{ +public: + TrcMemAccCache(); + ~TrcMemAccCache() {}; + + void enableCaching(bool bEnable) { m_bCacheEnabled = bEnable; }; + void invalidateAll(); + const bool enabled() const { return m_bCacheEnabled; }; + const bool enabled_for_size(const uint32_t reqSize) const + { + return (m_bCacheEnabled && (reqSize <= MEM_ACC_CACHE_PAGE_SIZE)); + } + + + /** read bytes from cache if possible - load new page if needed, bail out if data not available */ + ocsd_err_t readBytesFromCache(TrcMemAccessorBase *p_accessor, const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, const uint8_t trcID, uint32_t *numBytes, uint8_t *byteBuffer); + + void setErrorLog(ITraceErrorLog *log); + void logAndClearCounts(); + +private: + bool blockInCache(const ocsd_vaddr_t address, const uint32_t reqBytes); // run through each page to look for data. + bool blockInPage(const ocsd_vaddr_t address, const uint32_t reqBytes); + void logMsg(const std::string &szMsg); + + cache_block_t m_mru[MEM_ACC_CACHE_MRU_SIZE]; + int m_mru_idx = 0; // in use index + int m_mru_next_new = 0; // next new page at this index. + bool m_bCacheEnabled = false; + +#ifdef LOG_CACHE_STATS + uint32_t m_hits = 0; + uint32_t m_misses = 0; + uint32_t m_pages = 0; + uint32_t m_hit_rl[MEM_ACC_CACHE_MRU_SIZE]; + uint32_t m_hit_rl_max[MEM_ACC_CACHE_MRU_SIZE]; +#endif + + ITraceErrorLog *m_err_log = 0; +}; + +inline TrcMemAccCache::TrcMemAccCache() +{ + for (int i = 0; i < MEM_ACC_CACHE_MRU_SIZE; i++) + { + m_mru[i].st_addr = 0; + m_mru[i].valid_len = 0; +#ifdef LOG_CACHE_STATS + m_hit_rl[i] = 0; + m_hit_rl_max[i] = 0; +#endif + } +} + +inline bool TrcMemAccCache::blockInPage(const ocsd_vaddr_t address, const uint32_t reqBytes) +{ + if ((m_mru[m_mru_idx].st_addr <= address) && + m_mru[m_mru_idx].st_addr + m_mru[m_mru_idx].valid_len >= (address + reqBytes)) + return true; + return false; +} + +inline bool TrcMemAccCache::blockInCache(const ocsd_vaddr_t address, const uint32_t reqBytes) +{ + int tests = MEM_ACC_CACHE_MRU_SIZE; + while (tests) + { + if (blockInPage(address, reqBytes)) + return true; // found address in page + tests--; + m_mru_idx++; + if (m_mru_idx == MEM_ACC_CACHE_MRU_SIZE) + m_mru_idx = 0; + } + return false; +} + +inline void TrcMemAccCache::invalidateAll() +{ + for (int i = 0; i < MEM_ACC_CACHE_MRU_SIZE; i++) + { + m_mru[i].valid_len = 0; + m_mru[i].st_addr = 0; + } + m_mru_idx = 0; + m_mru_next_new = 0; +} + +#endif // ARM_TRC_MEM_ACC_CACHE_H_INCLUDED + +/* End of File trc_mem_acc_cache.h */ Modified: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cb.h ============================================================================== --- head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cb.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_cb.h Thu Oct 10 13:30:13 2019 (r353393) @@ -49,32 +49,47 @@ class TrcMemAccCB : public TrcMemAccessorBase (public) virtual ~TrcMemAccCB() {}; /** Memory access override - allow decoder to read bytes from the buffer. */ - virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint32_t reqBytes, uint8_t *byteBuffer); + virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer); void setCBIfClass(TrcMemAccCBIF *p_if); void setCBIfFn(Fn_MemAcc_CB p_fn, const void *p_context); + void setCBIDIfFn(Fn_MemAccID_CB p_fn, const void *p_context); private: + void clearCBptrs(); TrcMemAccCBIF *m_p_CBclass; //m_startAddress < rhs.m_startAddress; }; // not going to use these objects to read bytes - defer to the file class for that. - virtual const uint32_t readBytes(const ocsd_vaddr_t s_address, const ocsd_mem_space_acc_t memSpace, const uint32_t reqBytes, uint8_t *byteBuffer) { return 0; }; + virtual const uint32_t readBytes(const ocsd_vaddr_t s_address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer) { return 0; }; const ocsd_vaddr_t regionStartAddress() const { return m_startAddress; }; @@ -77,7 +77,7 @@ class TrcMemAccessorFile : public TrcMemAccessorBase { public: /** read bytes override - reads from file */ - virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint32_t reqBytes, uint8_t *byteBuffer); + virtual const uint32_t readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer); protected: TrcMemAccessorFile(); /**< protected default constructor */ Modified: head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_mapper.h ============================================================================== --- head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_mapper.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/mem_acc/trc_mem_acc_mapper.h Thu Oct 10 13:30:13 2019 (r353393) @@ -41,6 +41,7 @@ #include "interfaces/trc_tgt_mem_access_i.h" #include "interfaces/trc_error_log_i.h" #include "mem_acc/trc_mem_acc_base.h" +#include "mem_acc/trc_mem_acc_cache.h" typedef enum _memacc_mapper_t { MEMACC_MAP_GLOBAL, @@ -76,7 +77,7 @@ class TrcMemAccMapper : public ITargetMemAccess (publi ocsd_err_t RemoveAccessorByAddress(const ocsd_vaddr_t st_address, const ocsd_mem_space_acc_t mem_space, const uint8_t cs_trace_id = 0); // set the error log. - void setErrorLog(ITraceErrorLog *err_log_i) { m_err_log = err_log_i; }; + void setErrorLog(ITraceErrorLog *err_log_i); // print out the ranges in this mapper. virtual void logMappedRanges() = 0; @@ -89,11 +90,13 @@ class TrcMemAccMapper : public ITargetMemAccess (publi virtual void clearAccessorList() = 0; void LogMessage(const std::string &msg); + void LogWarn(const ocsd_err_t err, const std::string &msg); TrcMemAccessorBase *m_acc_curr; // most recently used - try this first. uint8_t m_trace_id_curr; // trace ID for the current accessor const bool m_using_trace_id; // true if we are using separate memory spaces by TraceID. ITraceErrorLog *m_err_log; // error log to print out mappings on request. + TrcMemAccCache m_cache; // memory accessor caching. }; Modified: head/contrib/opencsd/decoder/include/opencsd/c_api/ocsd_c_api_types.h ============================================================================== --- head/contrib/opencsd/decoder/include/opencsd/c_api/ocsd_c_api_types.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/opencsd/c_api/ocsd_c_api_types.h Thu Oct 10 13:30:13 2019 (r353393) @@ -37,6 +37,7 @@ /* select the library types that are C compatible - the interface data types */ #include "opencsd/ocsd_if_types.h" +#include "opencsd/ocsd_if_version.h" #include "opencsd/trc_gen_elem_types.h" #include "opencsd/trc_pkt_types.h" Modified: head/contrib/opencsd/decoder/include/opencsd/c_api/opencsd_c_api.h ============================================================================== --- head/contrib/opencsd/decoder/include/opencsd/c_api/opencsd_c_api.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/opencsd/c_api/opencsd_c_api.h Thu Oct 10 13:30:13 2019 (r353393) @@ -84,7 +84,7 @@ /** @name Library Version API @{*/ -/** Get Library version. Return a 32 bit version in form MMMMnnpp - MMMM = major verison, nn = minor version, pp = patch version */ +/** Get Library version. Return a 32 bit version in form MMMMnnpp - MMMM = major version, nn = minor version, pp = patch version */ OCSD_C_API uint32_t ocsd_get_version(void); /** Get library version string */ @@ -285,6 +285,23 @@ OCSD_C_API ocsd_err_t ocsd_dt_add_buffer_mem_acc(const * @return OCSD_C_API ocsd_err_t : Library error code - RCDTL_OK if successful. */ OCSD_C_API ocsd_err_t ocsd_dt_add_callback_mem_acc(const dcd_tree_handle_t handle, const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAcc_CB p_cb_func, const void *p_context); + + +/*! + * Add a memory access callback function. The decoder will call the function for opcode addresses in the + * address range supplied for the memory spaces covered. + * + * @param handle : Handle to decode tree. + * @param st_address : Start address of memory area covered by the callback. + * @param en_address : End address of the memory area covered by the callback. (inclusive) + * @param mem_space : Memory space(s) covered by the callback. + * @param p_cb_func : Callback function - Signature for CB with Trace ID passed to client. + * @param p_context : opaque context pointer value used in callback function. + * + * @return OCSD_C_API ocsd_err_t : Library error code - RCDTL_OK if successful. + */ +OCSD_C_API ocsd_err_t ocsd_dt_add_callback_trcid_mem_acc(const dcd_tree_handle_t handle, const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAccID_CB p_cb_func, const void *p_context); + /*! * Remove a memory accessor by address and memory space. Modified: head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h ============================================================================== --- head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h Thu Oct 10 13:30:13 2019 (r353393) @@ -108,6 +108,7 @@ class EtmV4Config : public CSConfig // public ocsd_etm /* idr 1 */ const uint8_t MajVersion() const; const uint8_t MinVersion() const; + const uint8_t FullVersion() const; /* idr 2 */ const uint32_t iaSizeMax() const; @@ -117,6 +118,7 @@ class EtmV4Config : public CSConfig // public ocsd_etm const uint32_t dvSize() const; const uint32_t ccSize() const; const bool vmidOpt() const; + const bool wfiwfeBranch() const; /* id regs 8-13*/ const uint32_t MaxSpecDepth() const; @@ -180,7 +182,11 @@ class EtmV4Config : public CSConfig // public ocsd_etm bool m_condTraceCalc; CondITrace_t m_CondTrace; +protected: ocsd_etmv4_cfg m_cfg; + uint8_t m_MajVer; + uint8_t m_MinVer; + }; /* idr 0 */ @@ -265,14 +271,18 @@ inline const bool EtmV4Config::commitOpt1() const /* idr 1 */ inline const uint8_t EtmV4Config::MajVersion() const { - return (uint8_t)((m_cfg.reg_idr1 >> 8) & 0xF); + return m_MajVer; } inline const uint8_t EtmV4Config::MinVersion() const { - return (uint8_t)((m_cfg.reg_idr1 >> 4) & 0xF); + return m_MinVer; } +inline const uint8_t EtmV4Config::FullVersion() const +{ + return (m_MajVer << 4) | m_MinVer; +} /* idr 2 */ inline const uint32_t EtmV4Config::iaSizeMax() const @@ -319,6 +329,12 @@ inline const bool EtmV4Config::vmidOpt() const { return (bool)((m_cfg.reg_idr2 & 0x20000000) == 0x20000000) && (MinVersion() > 0); } + +inline const bool EtmV4Config::wfiwfeBranch() const +{ + return (bool)((m_cfg.reg_idr2 & 0x80000000) && (FullVersion() >= 0x43)); +} + /* id regs 8-13*/ Modified: head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h ============================================================================== --- head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h Thu Oct 10 13:30:13 2019 (r353393) @@ -56,7 +56,8 @@ typedef enum _p0_elem_t P0_TS, P0_CC, P0_TS_CC, - P0_OVERFLOW + P0_OVERFLOW, + P0_FUNC_RET, } p0_elem_t; @@ -250,6 +251,7 @@ class EtmV4P0Stack (public) ~EtmV4P0Stack(); void push_front(TrcStackElem *pElem); + void push_back(TrcStackElem *pElem); // insert element when processing void pop_back(); TrcStackElem *back(); size_t size(); @@ -260,7 +262,7 @@ class EtmV4P0Stack (public) // creation functions - create and push if successful. TrcStackElemParam *createParamElem(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const std::vector ¶ms); - TrcStackElemParam *createParamElemNoParam(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index); + TrcStackElem *createParamElemNoParam(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, bool back = false); TrcStackElemAtom *createAtomElem (const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const ocsd_pkt_atom &atom); TrcStackElemExcept *createExceptElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const bool bSame, const uint16_t excepNum); TrcStackElemCtxt *createContextElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_context_t &context); @@ -282,6 +284,12 @@ inline EtmV4P0Stack::~EtmV4P0Stack() inline void EtmV4P0Stack::push_front(TrcStackElem *pElem) { m_P0_stack.push_front(pElem); +} + +// put an element on the back of the stack +inline void EtmV4P0Stack::push_back(TrcStackElem *pElem) +{ + m_P0_stack.push_back(pElem); } // pop last element pointer off the stack and stash it for later deletion Modified: head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h ============================================================================== --- head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h Thu Oct 10 13:23:23 2019 (r353392) +++ head/contrib/opencsd/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h Thu Oct 10 13:30:13 2019 (r353393) @@ -93,6 +93,8 @@ class TrcPktDecodeEtmV4I : public TrcPktDecodeBase Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9339A14BDF4; Thu, 10 Oct 2019 07:39:43 +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 46pjf743zWz4jgV; Thu, 10 Oct 2019 07:39:43 +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 6ED8526994; Thu, 10 Oct 2019 07:39:43 +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 x9A7dhk3012243; Thu, 10 Oct 2019 07:39:43 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A7dfOh012232; Thu, 10 Oct 2019 07:39:41 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910100739.x9A7dfOh012232@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Thu, 10 Oct 2019 07:39:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353381 - in head: share/man/man4 share/man/man9 sys/cddl/compat/opensolaris/kern sys/cddl/compat/opensolaris/sys sys/cddl/contrib/opensolaris/common/atomic/aarch64 sys/cddl/contrib/ope... X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head: share/man/man4 share/man/man9 sys/cddl/compat/opensolaris/kern sys/cddl/compat/opensolaris/sys sys/cddl/contrib/opensolaris/common/atomic/aarch64 sys/cddl/contrib/opensolaris/common/atomic/am... X-SVN-Commit-Revision: 353381 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 07:39:43 -0000 Author: avg Date: Thu Oct 10 07:39:41 2019 New Revision: 353381 URL: https://svnweb.freebsd.org/changeset/base/353381 Log: emulate illumos membar_producer with atomic_thread_fence_rel membar_producer is supposed to be a store-store barrier. Also, in the code that FreeBSD has ported from illumos membar_producer is used only with regular stores to regular memory (with respect to caching). We do not have an MI primitive for the store-store barrier, so atomic_thread_fence_rel is the closest we have as it provides (load | store) -> store barrier. Previously, membar_producer was an empty function call on all 32-bit arm-s, 32-bit powerpc, riscv and all mips variants. I think that it was inadequate. On other platforms, such as amd64, arm64, i386, powerpc64, sparc64, membar_producer was implemented using stronger primitives than required for a store-store barrier with respect to regular memory access. For example, it used sfence on amd64 and lock-ed nop in i386 (despite TSO). On powerpc64 we now use recommended lwsync instead of eieio. On sparc64 FreeBSD uses TSO mode. On arm64/aarch64 we now use dmb sy instead of dmb ish. Not sure if this is an improvement, actually. After this change we can drop opensolaris_atomic.S for aarch64, amd64, powerpc64 and sparc64 as all required atomic operations have either direct or light-weight mapping to FreeBSD native atomic operations. Discussed with: kib MFC after: 4 weeks Added: head/share/man/man4/superio.4 (contents, props changed) head/share/man/man9/superio.9 (contents, props changed) Deleted: head/sys/cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c head/sys/cddl/compat/opensolaris/sys/atomic.h head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S head/sys/conf/files.amd64 head/sys/conf/files.arm head/sys/conf/files.arm64 head/sys/conf/files.powerpc head/sys/conf/files.riscv head/sys/conf/files.sparc64 Added: head/share/man/man4/superio.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/superio.4 Thu Oct 10 07:39:41 2019 (r353381) @@ -0,0 +1,112 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" +.\" Copyright (c) 2019 Andriy Gapon +.\" +.\" 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 October 9, 2019 +.Dt SUPERIO 4 +.Os +.Sh NAME +.Nm superio +.Nd Super I/O controller and bus driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device superio" +.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 +superio_load="YES" +.Ed +.Sh DESCRIPTION +Super I/O is an I/O controller that combines various low-bandwidth devices +that can be functionally unrelated otherwise. +A typical Super I/O can contain devices such as +.Bl -bullet -compact +.It +a floppy disk controller +.It +a parallel port +.It +a serial port +.It +a PS/2 mouse and keyboard controller +.It +a hardware monitoring controller +.It +a watchdog timer +.It +a controller for general purpose input-output +.El +.Pp +The +.Nm +driver provides support for devices residing in the Super I/O controller +that can only be accessed or discovered using the controller's interface. +Some of the Super I/O devices have standardized interfaces. +Such devices either use well-known legacy resources or they are advertised +via ACPI or both. +They can be configured either using ISA bus hints or they are auto-aconfigured by +.Xr acpi 4 . +The +.Nm +driver is not designed to interact with that kind of devices. +They can be handled by their respective drivers without any knowledge of the +Super I/O specifics. +For instance, +.Xr fdc 4 +provides access to the floppy disk controller. +.Pp +There are other Super I/O devices that do not have any standardized interface. +Drivers for those devices can be written using facilities of the +.Nm +driver. +.Pp +The driver itself attaches to the ISA bus as all supported controllers are +accessed via LPC I/O ports. +.Pp +The +.Nm +driver is unusual as it is both a controller driver for a variety of Super I/O +controllers and a bus driver for supported devices in those controllers. +.Sh HARDWARE +The +.Nm +driver supports a multitude of Super I/O controllers produced by Nuvoton, +formerly known as Winbond, and ITE. +.Sh SEE ALSO +.Pp +.Xr superio 9 +.Sh HISTORY +The +.Nm +driver was written by +.An Andriy Gapon Aq Mt avg@FreeBSD.org . Added: head/share/man/man9/superio.9 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man9/superio.9 Thu Oct 10 07:39:41 2019 (r353381) @@ -0,0 +1,190 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" +.\" Copyright (c) 2019 Andriy Gapon +.\" +.\" 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 October 9, 2019 +.Dt SUPERIO 9 +.Os +.Sh NAME +.Nm superio , +.Nm superio_devid , +.Nm superio_dev_disable , +.Nm superio_dev_enable , +.Nm superio_dev_enabled , +.Nm superio_find_dev , +.Nm superio_get_dma , +.Nm superio_get_iobase , +.Nm superio_get_irq , +.Nm superio_get_ldn , +.Nm superio_get_type , +.Nm superio_read , +.Nm superio_revid , +.Nm superio_vendor , +.Nm superio_write +.Nd Super I/O bus interface +.Sh SYNOPSIS +.In sys/bus.h +.In dev/superio/superio.h +.Ft uint16_t +.Fn superio_devid "device_t dev" +.Ft void +.Fn superio_dev_disable "device_t dev" "uint8_t mask" +.Ft void +.Fn superio_dev_enable "device_t dev" "uint8_t mask" +.Ft bool +.Fn superio_dev_enabled "device_t dev" "uint8_t mask" +.Ft device_t +.Fn superio_find_dev "device_t dev" "superio_dev_type_t type" "int ldn" +.Ft uint8_t +.Fn superio_get_dma "device_t dev" +.Ft uint16_t +.Fn superio_get_iobase "device_t dev" +.Ft uint8_t +.Fn superio_get_irq "device_t dev" +.Ft uint8_t +.Fn superio_get_ldn "device_t dev" +.Ft superio_dev_type_t +.Fn superio_get_type "device_t dev" +.Ft uint8_t +.Fn superio_read "device_t dev" "uint8_t reg" +.Ft uint8_t +.Fn superio_revid "device_t dev" +.Ft superio_vendor_t +.Fn superio_vendor "device_t dev" +.Ft void +.Fn superio_write "device_t dev" "uint8_t reg" "uint8_t val" +.Sh DESCRIPTION +The +.Nm +set of functions are used for managing Super I/O devices. +The functions provide support for +raw configuration access, +locating devices, +device information, +and +device configuration. +.Ss The controller interface +The +.Fn superio_vendor +function is used to get a vendor of the Super I/O controller +.Fa dev . +Possible return values are +.Dv SUPERIO_VENDOR_ITE +and +.Dv SUPERIO_VENDOR_NUVOTON . +.Pp +The +.Fn superio_devid +function is used to get a device ID of the Super I/O controller +.Fa dev . +.Pp +The +.Fn superio_revid +function is used to get a revision ID of the Super I/O controller +.Fa dev . +.Pp +The +.Fn superio_find_dev +function is used to find a device on the +.Xr superio 4 +bus, specified by +.Fa dev, +that has the requested type and logical device number. +Either of those, but not both, can be a wildcard. +Supported types are +.Dv SUPERIO_DEV_GPIO , +.Dv SUPERIO_DEV_HWM , +and +.Dv SUPERIO_DEV_WDT. +The wildcard value for +.Fa type +is +.Dv SUPERIO_DEV_NONE. +The wildcard value for +.Fa ldn +is -1. +.Ss The device interface +The +.Fn superio_read +function is used to read data from the Super I/O configuration register +of the device +.Fa dev. +.Pp +The +.Fn superio_write +function is used to write data to the Super I/O configuration register +of the device +.Fa dev. +.Pp +The +.Fn superio_dev_enable , +.Fn superio_dev_disable , +and +.Fn superio_dev_enabled +functions are used to enable, disable, or check status of the device +.Fa dev. +The +.Fa mask +parameter selects sub-functions of a device that supports them. +For devices that do not have sub-functions, +.Fa mask +should be set to 1. +.Ss The accessor interface +The +.Fn superio_get_dma +is used to get a DMA channel number configured for the device +.Fa dev . +.Pp +The +.Fn superio_get_iobase +is used to get a base I/O port configured for the device +.Fa dev . +The device may expose additional or alternative configuration access via +the I/O ports. +.Pp +The +.Fn superio_get_irq +is used to get an interrupt number configured for the device +.Fa dev . +.Pp +The +.Fn superio_get_ldn +is used to get a Logical Device Number of the device +.Fa dev . +.Pp +The +.Fn superio_get_type +is used to get a type of the device +.Fa dev . +.Pp +.Sh SEE ALSO +.Xr superio 4 , +.Xr device 9 , +.Xr driver 9 , +.Sh AUTHORS +This manual page was written by +.An Andriy Gapon Mt avg@FreeBSD.org Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Thu Oct 10 07:39:41 2019 (r353381) @@ -120,9 +120,3 @@ atomic_cas_64(volatile uint64_t *target, uint64_t cmp, return (oldval); } #endif - -void -membar_producer(void) -{ - /* nothing */ -} Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Thu Oct 10 07:39:41 2019 (r353381) @@ -47,7 +47,7 @@ extern uint64_t atomic_cas_64(volatile uint64_t *targe uint64_t newval); #endif -extern void membar_producer(void); +#define membar_producer atomic_thread_fence_rel static __inline uint32_t atomic_add_32_nv(volatile uint32_t *target, int32_t delta) Modified: head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S Thu Oct 10 07:39:41 2019 (r353381) @@ -131,9 +131,3 @@ popl %esi ret SET_SIZE(atomic_load_64) - - ENTRY(membar_producer) - lock - xorl $0, (%esp) - ret - SET_SIZE(membar_producer) Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.amd64 Thu Oct 10 07:39:41 2019 (r353381) @@ -141,7 +141,6 @@ amd64/amd64/vm_machdep.c standard amd64/cloudabi32/cloudabi32_sysvec.c optional compat_cloudabi32 amd64/cloudabi64/cloudabi64_sysvec.c optional compat_cloudabi64 amd64/pci/pci_cfgreg.c optional pci -cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S optional zfs | dtrace compile-with "${ZFS_S}" cddl/dev/dtrace/amd64/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/amd64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" crypto/aesni/aeskeys_amd64.S optional aesni Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.arm Thu Oct 10 07:39:41 2019 (r353381) @@ -94,7 +94,7 @@ board_id.h standard \ compile-with "${AWK} -f $S/arm/conf/genboardid.awk $S/arm/conf/mach-types > board_id.h" \ no-obj no-implicit-rule before-depend \ clean "board_id.h" -cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs | dtrace compile-with "${CDDL_C}" +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional !armv7 !armv6 zfs | !armv7 !armv6 dtrace compile-with "${CDDL_C}" cddl/dev/dtrace/arm/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/arm/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/arm/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.arm64 Thu Oct 10 07:39:41 2019 (r353381) @@ -271,7 +271,6 @@ libkern/bcmp.c standard libkern/memcmp.c standard libkern/memset.c standard libkern/arm64/crc32c_armv8.S standard -cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S optional zfs | dtrace compile-with "${CDDL_C}" cddl/dev/dtrace/aarch64/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/aarch64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/aarch64/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" Modified: head/sys/conf/files.powerpc ============================================================================== --- head/sys/conf/files.powerpc Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.powerpc Thu Oct 10 07:39:41 2019 (r353381) @@ -16,7 +16,6 @@ font.h optional sc \ # # There is only an asm version on ppc64. cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc | dtrace powerpc | zfs powerpcspe | dtrace powerpcspe compile-with "${ZFS_C}" -cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 | dtrace powerpc64 compile-with "${ZFS_S}" cddl/dev/dtrace/powerpc/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/powerpc/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/powerpc/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" Modified: head/sys/conf/files.riscv ============================================================================== --- head/sys/conf/files.riscv Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.riscv Thu Oct 10 07:39:41 2019 (r353381) @@ -1,5 +1,4 @@ # $FreeBSD$ -cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/dev/dtrace/riscv/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/riscv/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/riscv/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" Modified: head/sys/conf/files.sparc64 ============================================================================== --- head/sys/conf/files.sparc64 Thu Oct 10 03:12:17 2019 (r353380) +++ head/sys/conf/files.sparc64 Thu Oct 10 07:39:41 2019 (r353381) @@ -17,7 +17,6 @@ sunkbdmap.h optional sunkbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "sunkbdmap.h" # -cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" crypto/blowfish/bf_enc.c optional crypto | ipsec | ipsec_support crypto/des/des_enc.c optional crypto | ipsec | ipsec_support | netsmb dev/atkbdc/atkbd.c optional atkbd atkbdc From owner-svn-src-head@freebsd.org Thu Oct 10 13:44:13 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2443513893D; Thu, 10 Oct 2019 13:44:13 +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 46pskj050Sz40ky; Thu, 10 Oct 2019 13:44:13 +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 C2F762C21; Thu, 10 Oct 2019 13:44:12 +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 x9ADiC8g030069; Thu, 10 Oct 2019 13:44:12 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ADiCJr030068; Thu, 10 Oct 2019 13:44:12 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101344.x9ADiCJr030068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Thu, 10 Oct 2019 13:44:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353394 - head/contrib/opencsd/decoder/include X-SVN-Group: head X-SVN-Commit-Author: br X-SVN-Commit-Paths: head/contrib/opencsd/decoder/include X-SVN-Commit-Revision: 353394 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 13:44:13 -0000 Author: br Date: Thu Oct 10 13:44:12 2019 New Revision: 353394 URL: https://svnweb.freebsd.org/changeset/base/353394 Log: Remove a stale file left after merging. Sponsored by: DARPA, AFRL Deleted: head/contrib/opencsd/decoder/include/ocsd_if_version.h From owner-svn-src-head@freebsd.org Thu Oct 10 16:29:14 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AB55D14329F; Thu, 10 Oct 2019 16:29:14 +0000 (UTC) (envelope-from brooks@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 46pxP62QsJz4JN3; Thu, 10 Oct 2019 16:29:14 +0000 (UTC) (envelope-from brooks@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 3327C4A17; Thu, 10 Oct 2019 16:29:14 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9AGTDBu024958; Thu, 10 Oct 2019 16:29:13 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AGTDkJ024957; Thu, 10 Oct 2019 16:29:13 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910101629.x9AGTDkJ024957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Thu, 10 Oct 2019 16:29:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353408 - head X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353408 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 16:29:14 -0000 Author: brooks Date: Thu Oct 10 16:29:13 2019 New Revision: 353408 URL: https://svnweb.freebsd.org/changeset/base/353408 Log: Fix -DNO_CLEAN build across r353340 and r353381 opensolaris_atomic.S is now only used on i386 with opensolaris_atomic.c used on other platforms. After r353381 it doesn't exist on those platforms so the stale dependency would result in a build error. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu Oct 10 16:04:43 2019 (r353407) +++ head/Makefile.inc1 Thu Oct 10 16:29:13 2019 (r353408) @@ -949,7 +949,18 @@ _sanity_check: .PHONY .MAKE # replacing generated files. Handle these cases here in an ad-hoc fashion. _cleanobj_fast_depend_hack: .PHONY # Syscall stubs rewritten in C and obsolete MD assembly implementations -# Date SVN Rev Syscalls +# Date SVN Rev Syscalls/Changes +# 20191009 r353340 removal of opensolaris_atomic.S (also r353381) +.if ${MACHINE} != i386 +.for f in opensolaris_atomic + @if [ -e "${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o" ] && \ + egrep -qw 'opensolaris_atomic\.S' ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o; then \ + echo "Removing stale dependencies for opensolaris_atomic"; \ + rm -f ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.* \ + ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/cddl/lib/libzpool/.depend.${f}.*}; \ + fi +.endfor +.endif # 20190925 r352689 removal of obsolete i386 memchr.S .for f in memchr @if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \ From owner-svn-src-head@freebsd.org Thu Oct 10 18:52:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D8D19146BEF; Thu, 10 Oct 2019 18:52:24 +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 46q0ZJ5Pq9z4RgX; Thu, 10 Oct 2019 18:52:24 +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 9CB8D64C6; Thu, 10 Oct 2019 18:52:24 +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 x9AIqOmC013338; Thu, 10 Oct 2019 18:52:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AIqOdt013337; Thu, 10 Oct 2019 18:52:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910101852.x9AIqOdt013337@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 10 Oct 2019 18:52:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353413 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 353413 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 18:52:24 -0000 Author: kib Date: Thu Oct 10 18:52:24 2019 New Revision: 353413 URL: https://svnweb.freebsd.org/changeset/base/353413 Log: Typo out->in. Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/sys/sys/lockf.h Modified: head/sys/sys/lockf.h ============================================================================== --- head/sys/sys/lockf.h Thu Oct 10 18:39:11 2019 (r353412) +++ head/sys/sys/lockf.h Thu Oct 10 18:52:24 2019 (r353413) @@ -81,7 +81,7 @@ struct lockf_entry { struct task *lf_async_task;/* (c) Async lock callback */ LIST_ENTRY(lockf_entry) lf_link; /* (s) Linkage for lock lists */ struct lockf_edge_list lf_outedges; /* (s) list of out-edges */ - struct lockf_edge_list lf_inedges; /* (s) list of out-edges */ + struct lockf_edge_list lf_inedges; /* (s) list of in-edges */ int lf_refs; /* (s) ref count */ }; LIST_HEAD(lockf_entry_list, lockf_entry); From owner-svn-src-head@freebsd.org Thu Oct 10 20:30:55 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CEF97131071; Thu, 10 Oct 2019 20:30:55 +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 46q2lz56CPz4YCg; Thu, 10 Oct 2019 20:30:55 +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 93D9E7528; Thu, 10 Oct 2019 20:30:55 +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 x9AKUtDU070148; Thu, 10 Oct 2019 20:30:55 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AKUtcb070146; Thu, 10 Oct 2019 20:30:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201910102030.x9AKUtcb070146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 10 Oct 2019 20:30:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353415 - head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Commit-Revision: 353415 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 20:30:55 -0000 Author: dim Date: Thu Oct 10 20:30:54 2019 New Revision: 353415 URL: https://svnweb.freebsd.org/changeset/base/353415 Log: Revert r353363 in preparation for applying upstream fix: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. PR: 241137 MFC after: 1 month X-MFC-With: r353358 Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Oct 10 20:28:34 2019 (r353414) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Oct 10 20:30:54 2019 (r353415) @@ -708,7 +708,7 @@ ProcessMonitor::ProcessMonitor( const lldb_private::ProcessLaunchInfo & /* launch_info */, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(), m_monitor_thread(), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; std::unique_ptr args( @@ -735,21 +735,20 @@ ProcessMonitor::ProcessMonitor( } // Finally, start monitoring the child process for change in state. - auto monitor_thread = Host::StartMonitoringChildProcess( + m_monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!monitor_thread || !monitor_thread->IsJoinable()) { + if (!m_monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process launch failed."); return; } - m_monitor_thread = *monitor_thread; } ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(), m_monitor_thread(), m_pid(pid), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(pid), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; sem_init(&m_operation_pending, 0, 0); @@ -774,15 +773,14 @@ ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process } // Finally, start monitoring the child process for change in state. - auto monitor_thread = Host::StartMonitoringChildProcess( + m_monitor_thread = Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!monitor_thread || !monitor_thread->IsJoinable()) { + if (!m_monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process attach failed."); return; } - m_monitor_thread = *monitor_thread; } ProcessMonitor::~ProcessMonitor() { StopMonitor(); } @@ -791,15 +789,13 @@ ProcessMonitor::~ProcessMonitor() { StopMonitor(); } void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread.IsJoinable()) + if (m_operation_thread->IsJoinable()) return; - auto operation_thread = + m_operation_thread = ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args); - if (operation_thread) - m_operation_thread = *operation_thread; - else - error = operation_thread.takeError(); + if (!m_operation_thread) + error = m_operation_thread.takeError(); } void *ProcessMonitor::LaunchOpThread(void *arg) { @@ -961,15 +957,14 @@ void ProcessMonitor::StartAttachOpThread(AttachArgs *a lldb_private::Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread.IsJoinable()) + if (m_operation_thread->IsJoinable()) return; - auto operation_thread = + m_operation_thread = ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args); - if (operation_thread) - m_operation_thread = *operation_thread; - else - error = operation_thread.takeError(); + + if (!m_operation_thread) + error = m_operation_thread.takeError(); } void *ProcessMonitor::AttachOpThread(void *arg) { @@ -1389,10 +1384,10 @@ bool ProcessMonitor::DupDescriptor(const FileSpec &fil } void ProcessMonitor::StopMonitoringChildProcess() { - if (m_monitor_thread.IsJoinable()) { - m_monitor_thread.Cancel(); - m_monitor_thread.Join(nullptr); - m_monitor_thread.Reset(); + if (m_monitor_thread->IsJoinable()) { + m_monitor_thread->Cancel(); + m_monitor_thread->Join(nullptr); + m_monitor_thread->Reset(); } } @@ -1427,10 +1422,10 @@ void ProcessMonitor::StopMonitor() { bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; } void ProcessMonitor::StopOpThread() { - if (!m_operation_thread.IsJoinable()) + if (!m_operation_thread->IsJoinable()) return; - m_operation_thread.Cancel(); - m_operation_thread.Join(nullptr); - m_operation_thread.Reset(); + m_operation_thread->Cancel(); + m_operation_thread->Join(nullptr); + m_operation_thread->Reset(); } Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Thu Oct 10 20:28:34 2019 (r353414) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Thu Oct 10 20:30:54 2019 (r353415) @@ -183,8 +183,8 @@ class ProcessMonitor { (public) private: ProcessFreeBSD *m_process; - lldb_private::HostThread m_operation_thread; - lldb_private::HostThread m_monitor_thread; + llvm::Expected m_operation_thread; + llvm::Expected m_monitor_thread; lldb::pid_t m_pid; int m_terminal_fd; From owner-svn-src-head@freebsd.org Thu Oct 10 20:33:56 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6BC813128D; Thu, 10 Oct 2019 20:33:56 +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 46q2qS5Jz0z4YYf; Thu, 10 Oct 2019 20:33:56 +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 9995976DC; Thu, 10 Oct 2019 20:33:56 +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 x9AKXuFT073421; Thu, 10 Oct 2019 20:33:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AKXueB073420; Thu, 10 Oct 2019 20:33:56 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201910102033.x9AKXueB073420@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 10 Oct 2019 20:33:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353416 - head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD X-SVN-Commit-Revision: 353416 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 20:33:56 -0000 Author: dim Date: Thu Oct 10 20:33:55 2019 New Revision: 353416 URL: https://svnweb.freebsd.org/changeset/base/353416 Log: Pull in r374444 from upstream lldb trunk (by me): Fix process launch failure on FreeBSD after r365761 Summary: After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS` enabled, launching any process on FreeBSD crashes lldb with: ``` Expected must be checked before access or destruction. Expected value was in success state. (Note: Expected values in success mode must still be checked prior to being destroyed). ``` This is because `m_operation_thread` and `m_monitor_thread` were wrapped in `llvm::Expected<>`, but this requires the objects to be correctly initialized before accessing them. To fix the crashes, use `llvm::Optional<>` for the members (as indicated by labath), and use local variables to store the return values of `LaunchThread` and `StartMonitoringChildProcess`. Then, only assign to the member variables after checking if the return values indicated success. Reviewers: devnexen, emaste, MaskRay, mgorny Reviewed By: devnexen Subscribers: jfb, labath, krytarowski, lldb-commits Differential Revision: https://reviews.llvm.org/D68723 PR: 241137 MFC after: 1 month X-MFC-With: r353358 Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Oct 10 20:30:54 2019 (r353415) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp Thu Oct 10 20:33:55 2019 (r353416) @@ -708,7 +708,7 @@ ProcessMonitor::ProcessMonitor( const lldb_private::ProcessLaunchInfo & /* launch_info */, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(), m_monitor_thread(), m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; std::unique_ptr args( @@ -735,20 +735,22 @@ ProcessMonitor::ProcessMonitor( } // Finally, start monitoring the child process for change in state. - m_monitor_thread = Host::StartMonitoringChildProcess( + llvm::Expected monitor_thread = + Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread->IsJoinable()) { + if (!monitor_thread || !monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process launch failed."); return; } + m_monitor_thread = *monitor_thread; } ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid, lldb_private::Status &error) : m_process(static_cast(process)), - m_operation_thread(nullptr), m_monitor_thread(nullptr), m_pid(pid), m_terminal_fd(-1), m_operation(0) { + m_operation_thread(), m_monitor_thread(), m_pid(pid), m_terminal_fd(-1), m_operation(0) { using namespace std::placeholders; sem_init(&m_operation_pending, 0, 0); @@ -773,14 +775,16 @@ ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process } // Finally, start monitoring the child process for change in state. - m_monitor_thread = Host::StartMonitoringChildProcess( + llvm::Expected monitor_thread = + Host::StartMonitoringChildProcess( std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4), GetPID(), true); - if (!m_monitor_thread->IsJoinable()) { + if (!monitor_thread || !monitor_thread->IsJoinable()) { error.SetErrorToGenericError(); error.SetErrorString("Process attach failed."); return; } + m_monitor_thread = *monitor_thread; } ProcessMonitor::~ProcessMonitor() { StopMonitor(); } @@ -789,13 +793,15 @@ ProcessMonitor::~ProcessMonitor() { StopMonitor(); } void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread->IsJoinable()) + if (m_operation_thread && m_operation_thread->IsJoinable()) return; - m_operation_thread = - ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args); - if (!m_operation_thread) - error = m_operation_thread.takeError(); + llvm::Expected operation_thread = + ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args); + if (operation_thread) + m_operation_thread = *operation_thread; + else + error = operation_thread.takeError(); } void *ProcessMonitor::LaunchOpThread(void *arg) { @@ -957,14 +963,15 @@ void ProcessMonitor::StartAttachOpThread(AttachArgs *a lldb_private::Status &error) { static const char *g_thread_name = "freebsd.op"; - if (m_operation_thread->IsJoinable()) + if (m_operation_thread && m_operation_thread->IsJoinable()) return; - m_operation_thread = - ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args); - - if (!m_operation_thread) - error = m_operation_thread.takeError(); + llvm::Expected operation_thread = + ThreadLauncher::LaunchThread(g_thread_name, AttachOpThread, args); + if (operation_thread) + m_operation_thread = *operation_thread; + else + error = operation_thread.takeError(); } void *ProcessMonitor::AttachOpThread(void *arg) { @@ -1384,7 +1391,7 @@ bool ProcessMonitor::DupDescriptor(const FileSpec &fil } void ProcessMonitor::StopMonitoringChildProcess() { - if (m_monitor_thread->IsJoinable()) { + if (m_monitor_thread && m_monitor_thread->IsJoinable()) { m_monitor_thread->Cancel(); m_monitor_thread->Join(nullptr); m_monitor_thread->Reset(); @@ -1422,10 +1429,9 @@ void ProcessMonitor::StopMonitor() { bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; } void ProcessMonitor::StopOpThread() { - if (!m_operation_thread->IsJoinable()) - return; - - m_operation_thread->Cancel(); - m_operation_thread->Join(nullptr); - m_operation_thread->Reset(); + if (m_operation_thread && m_operation_thread->IsJoinable()) { + m_operation_thread->Cancel(); + m_operation_thread->Join(nullptr); + m_operation_thread->Reset(); + } } Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h ============================================================================== --- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Thu Oct 10 20:30:54 2019 (r353415) +++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h Thu Oct 10 20:33:55 2019 (r353416) @@ -183,8 +183,8 @@ class ProcessMonitor { (public) private: ProcessFreeBSD *m_process; - llvm::Expected m_operation_thread; - llvm::Expected m_monitor_thread; + llvm::Optional m_operation_thread; + llvm::Optional m_monitor_thread; lldb::pid_t m_pid; int m_terminal_fd; From owner-svn-src-head@freebsd.org Thu Oct 10 21:27:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE26A132408; Thu, 10 Oct 2019 21:27:39 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 46q41Q5L1Gz4bcW; Thu, 10 Oct 2019 21:27:38 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x9ALRUCm087928; Thu, 10 Oct 2019 14:27:30 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x9ALRU1C087927; Thu, 10 Oct 2019 14:27:30 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201910102127.x9ALRU1C087927@gndrsh.dnsmgr.net> Subject: Re: svn commit: r353365 - head/usr.bin/procstat In-Reply-To: <201910092005.x99K5EMA006261@repo.freebsd.org> To: Jeremie Le Hen Date: Thu, 10 Oct 2019 14:27:30 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 46q41Q5L1Gz4bcW X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of freebsd@gndrsh.dnsmgr.net has no SPF policy when checking 69.59.192.140) smtp.mailfrom=freebsd@gndrsh.dnsmgr.net X-Spamd-Result: default: False [-0.13 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; NEURAL_HAM_MEDIUM(-0.75)[-0.755,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[dnsmgr.net]; AUTH_NA(1.00)[]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; NEURAL_HAM_LONG(-0.31)[-0.314,0]; IP_SCORE(0.04)[ip: (0.14), ipnet: 69.59.192.0/19(0.07), asn: 13868(0.04), country: US(-0.05)]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 21:27:39 -0000 > Author: jlh > Date: Wed Oct 9 20:05:14 2019 > New Revision: 353365 > URL: https://svnweb.freebsd.org/changeset/base/353365 > > Log: > Add a missing macro for the previous commit (IS_INADDR_ANY()). Can we write it the same was as it is 100+ other places? 1022}# find . -type f | xargs grep "== INADDR_ANY" | wc 131 781 9607 > > Modified: > head/usr.bin/procstat/procstat_files.c > > Modified: head/usr.bin/procstat/procstat_files.c > ============================================================================== > --- head/usr.bin/procstat/procstat_files.c Wed Oct 9 20:01:23 2019 (r353364) > +++ head/usr.bin/procstat/procstat_files.c Wed Oct 9 20:05:14 2019 (r353365) > @@ -94,6 +94,7 @@ addr_to_string(struct sockaddr_storage *ss, char *buff > struct sockaddr_in6 *sin6; > struct sockaddr_in *sin; > struct sockaddr_un *sun; > +#define IS_INADDR_ANY(x) ((x).s_addr == INADDR_ANY) > > switch (ss->ss_family) { > case AF_LOCAL: > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Thu Oct 10 22:49:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A54A134366; Thu, 10 Oct 2019 22:49:46 +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 46q5rB0nn9z4g5D; Thu, 10 Oct 2019 22:49:46 +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 EF60D8DF5; Thu, 10 Oct 2019 22:49:45 +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 x9AMnjgC049424; Thu, 10 Oct 2019 22:49:45 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AMnj8x049421; Thu, 10 Oct 2019 22:49:45 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201910102249.x9AMnj8x049421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 10 Oct 2019 22:49:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353417 - head/sys/dev/nvdimm X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/dev/nvdimm X-SVN-Commit-Revision: 353417 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 22:49:46 -0000 Author: cem Date: Thu Oct 10 22:49:45 2019 New Revision: 353417 URL: https://svnweb.freebsd.org/changeset/base/353417 Log: nvdimm(4): Calculate and save memattr once; it never changes Refactor nvdimm_spa_memattr() routine and callers to just save the value at initialization and use the value directly. The reference value from NFIT, MemoryMapping, is read only once, so the associated memattr could never change. No functional change. Sponsored by: Dell EMC Isilon Modified: head/sys/dev/nvdimm/nvdimm_ns.c head/sys/dev/nvdimm/nvdimm_spa.c head/sys/dev/nvdimm/nvdimm_var.h Modified: head/sys/dev/nvdimm/nvdimm_ns.c ============================================================================== --- head/sys/dev/nvdimm/nvdimm_ns.c Thu Oct 10 20:33:55 2019 (r353416) +++ head/sys/dev/nvdimm/nvdimm_ns.c Thu Oct 10 22:49:45 2019 (r353417) @@ -72,6 +72,7 @@ nvdimm_create_namespaces(struct SPA_mapping *spa, ACPI (e->label.dimm_phys_addr - regions[0]->Address); ns->dev.spa_len = num_regions * e->label.raw_size; ns->dev.spa_efi_mem_flags = spa->dev.spa_efi_mem_flags; + ns->dev.spa_memattr = spa->dev.spa_memattr; asprintf(&name, M_NVDIMM, "spa%dns%d", spa->spa_nfit_idx, i); error = nvdimm_spa_dev_init(&ns->dev, name); free(name, M_NVDIMM); Modified: head/sys/dev/nvdimm/nvdimm_spa.c ============================================================================== --- head/sys/dev/nvdimm/nvdimm_spa.c Thu Oct 10 20:33:55 2019 (r353416) +++ head/sys/dev/nvdimm/nvdimm_spa.c Thu Oct 10 22:49:45 2019 (r353417) @@ -156,24 +156,24 @@ nvdimm_spa_type_from_uuid(struct uuid *uuid) } static vm_memattr_t -nvdimm_spa_memattr(struct nvdimm_spa_dev *dev) +nvdimm_spa_memattr(uint64_t efi_mem_flags) { vm_memattr_t mode; - if ((dev->spa_efi_mem_flags & EFI_MD_ATTR_WB) != 0) + if ((efi_mem_flags & EFI_MD_ATTR_WB) != 0) mode = VM_MEMATTR_WRITE_BACK; - else if ((dev->spa_efi_mem_flags & EFI_MD_ATTR_WT) != 0) + else if ((efi_mem_flags & EFI_MD_ATTR_WT) != 0) mode = VM_MEMATTR_WRITE_THROUGH; - else if ((dev->spa_efi_mem_flags & EFI_MD_ATTR_WC) != 0) + else if ((efi_mem_flags & EFI_MD_ATTR_WC) != 0) mode = VM_MEMATTR_WRITE_COMBINING; - else if ((dev->spa_efi_mem_flags & EFI_MD_ATTR_WP) != 0) + else if ((efi_mem_flags & EFI_MD_ATTR_WP) != 0) mode = VM_MEMATTR_WRITE_PROTECTED; - else if ((dev->spa_efi_mem_flags & EFI_MD_ATTR_UC) != 0) + else if ((efi_mem_flags & EFI_MD_ATTR_UC) != 0) mode = VM_MEMATTR_UNCACHEABLE; else { if (bootverbose) printf("SPA mapping attr %#lx unsupported\n", - dev->spa_efi_mem_flags); + efi_mem_flags); mode = VM_MEMATTR_UNCACHEABLE; } return (mode); @@ -189,7 +189,7 @@ nvdimm_spa_uio(struct nvdimm_spa_dev *dev, struct uio error = 0; if (dev->spa_kva == NULL) { - mattr = nvdimm_spa_memattr(dev); + mattr = dev->spa_memattr; bzero(&m, sizeof(m)); vm_page_initfake(&m, 0, mattr); ma = &m; @@ -288,7 +288,7 @@ nvdimm_spa_g_all_unmapped(struct nvdimm_spa_dev *dev, vm_memattr_t mattr; int i; - mattr = nvdimm_spa_memattr(dev); + mattr = dev->spa_memattr; for (i = 0; i < nitems(ma); i++) { bzero(&maa[i], sizeof(maa[i])); vm_page_initfake(&maa[i], dev->spa_phys_base + @@ -345,8 +345,7 @@ nvdimm_spa_g_thread(void *arg) pmap_flush_cache_phys_range( (vm_paddr_t)sc->dev->spa_phys_base, (vm_paddr_t)sc->dev->spa_phys_base + - sc->dev->spa_len, - nvdimm_spa_memattr(sc->dev)); + sc->dev->spa_len, sc->dev->spa_memattr); } /* * XXX flush IMC @@ -458,6 +457,7 @@ nvdimm_spa_init(struct SPA_mapping *spa, ACPI_NFIT_SYS nvdimm_SPA_uuid_list[spa_type].u_name, spa->dev.spa_efi_mem_flags); } + spa->dev.spa_memattr = nvdimm_spa_memattr(nfitaddr->MemoryMapping); if (!nvdimm_SPA_uuid_list[spa_type].u_usr_acc) return (0); @@ -476,7 +476,7 @@ nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const int error, error1; error1 = pmap_large_map(dev->spa_phys_base, dev->spa_len, - &dev->spa_kva, nvdimm_spa_memattr(dev)); + &dev->spa_kva, dev->spa_memattr); if (error1 != 0) { printf("NVDIMM %s cannot map into KVA, error %d\n", name, error1); Modified: head/sys/dev/nvdimm/nvdimm_var.h ============================================================================== --- head/sys/dev/nvdimm/nvdimm_var.h Thu Oct 10 20:33:55 2019 (r353416) +++ head/sys/dev/nvdimm/nvdimm_var.h Thu Oct 10 22:49:45 2019 (r353417) @@ -114,6 +114,7 @@ enum SPA_mapping_type { struct nvdimm_spa_dev { int spa_domain; + vm_memattr_t spa_memattr; uint64_t spa_phys_base; uint64_t spa_len; uint64_t spa_efi_mem_flags; From owner-svn-src-head@freebsd.org Thu Oct 10 23:42:57 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0FFD51352BE; Thu, 10 Oct 2019 23:42: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 46q71X6j3Cz3DZK; Thu, 10 Oct 2019 23:42:56 +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 AF62F987F; Thu, 10 Oct 2019 23:42:56 +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 x9ANguVZ083991; Thu, 10 Oct 2019 23:42:56 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANguvu083989; Thu, 10 Oct 2019 23:42:56 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102342.x9ANguvu083989@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:42:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353419 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353419 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:42:57 -0000 Author: glebius Date: Thu Oct 10 23:42:55 2019 New Revision: 353419 URL: https://svnweb.freebsd.org/changeset/base/353419 Log: Provide new KPI for network drivers to access lists of interface addresses. The KPI doesn't reveal neither how addresses are stored, how the access to them is synchronized, neither reveal struct ifaddr and struct ifmaddr. Reviewed by: gallatin, erj, hselasky, philip, stevek Differential Revision: https://reviews.freebsd.org/D21943 Modified: head/sys/net/if.c head/sys/net/if_var.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Thu Oct 10 23:27:02 2019 (r353418) +++ head/sys/net/if.c Thu Oct 10 23:42:55 2019 (r353419) @@ -4263,6 +4263,55 @@ if_getmtu_family(if_t ifp, int family) return (((struct ifnet *)ifp)->if_mtu); } +/* + * Methods for drivers to access interface unicast and multicast + * link level addresses. Driver shall not know 'struct ifaddr' neither + * 'struct ifmultiaddr'. + */ +u_int +if_foreach_lladdr(if_t ifp, iflladdr_cb_t cb, void *cb_arg) +{ + struct epoch_tracker et; + struct ifaddr *ifa; + u_int count; + + MPASS(cb); + + count = 0; + NET_EPOCH_ENTER(et); + CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + count += (*cb)(cb_arg, (struct sockaddr_dl *)ifa->ifa_addr, + count); + } + NET_EPOCH_EXIT(et); + + return (count); +} + +u_int +if_foreach_llmaddr(if_t ifp, iflladdr_cb_t cb, void *cb_arg) +{ + struct epoch_tracker et; + struct ifmultiaddr *ifma; + u_int count; + + MPASS(cb); + + count = 0; + NET_EPOCH_ENTER(et); + CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + count += (*cb)(cb_arg, (struct sockaddr_dl *)ifma->ifma_addr, + count); + } + NET_EPOCH_EXIT(et); + + return (count); +} + int if_setsoftc(if_t ifp, void *softc) { Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Thu Oct 10 23:27:02 2019 (r353418) +++ head/sys/net/if_var.h Thu Oct 10 23:42:55 2019 (r353419) @@ -765,11 +765,20 @@ void if_bpfmtap(if_t ifp, struct mbuf *m); void if_etherbpfmtap(if_t ifp, struct mbuf *m); void if_vlancap(if_t ifp); -int if_setupmultiaddr(if_t ifp, void *mta, int *cnt, int max); -int if_multiaddr_array(if_t ifp, void *mta, int *cnt, int max); +/* + * Traversing through interface address lists. + */ +struct sockaddr_dl; +typedef u_int iflladdr_cb_t(void *, struct sockaddr_dl *, u_int); +u_int if_foreach_lladdr(if_t, iflladdr_cb_t, void *); +u_int if_foreach_llmaddr(if_t, iflladdr_cb_t, void *); int if_multiaddr_count(if_t ifp, int max); +/* Obsoleted multicast management functions. */ +int if_setupmultiaddr(if_t ifp, void *mta, int *cnt, int max); +int if_multiaddr_array(if_t ifp, void *mta, int *cnt, int max); int if_multi_apply(struct ifnet *ifp, int (*filter)(void *, struct ifmultiaddr *, int), void *arg); + int if_getamcount(if_t ifp); struct ifaddr * if_getifaddr(if_t ifp); From owner-svn-src-head@freebsd.org Thu Oct 10 23:44:57 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 53AF71353A5; Thu, 10 Oct 2019 23:44: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 46q73s1Mrtz3DnB; Thu, 10 Oct 2019 23:44: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 125F998C9; Thu, 10 Oct 2019 23:44: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 x9ANiuvZ084149; Thu, 10 Oct 2019 23:44:56 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANiuoI084146; Thu, 10 Oct 2019 23:44:56 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102344.x9ANiuoI084146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:44:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353420 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353420 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:44:57 -0000 Author: glebius Date: Thu Oct 10 23:44:56 2019 New Revision: 353420 URL: https://svnweb.freebsd.org/changeset/base/353420 Log: Add two extra functions that basically give count of addresses on interface. Such function could been implemented on top of the if_foreach_llm?addr(), but several drivers need counting, so avoid copy-n-paste inside the drivers. Modified: head/sys/net/if.c head/sys/net/if_var.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Thu Oct 10 23:42:55 2019 (r353419) +++ head/sys/net/if.c Thu Oct 10 23:44:56 2019 (r353420) @@ -4269,6 +4269,23 @@ if_getmtu_family(if_t ifp, int family) * 'struct ifmultiaddr'. */ u_int +if_lladdr_count(if_t ifp) +{ + struct epoch_tracker et; + struct ifaddr *ifa; + u_int count; + + count = 0; + NET_EPOCH_ENTER(et); + CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) + if (ifa->ifa_addr->sa_family == AF_LINK) + count++; + NET_EPOCH_EXIT(et); + + return (count); +} + +u_int if_foreach_lladdr(if_t ifp, iflladdr_cb_t cb, void *cb_arg) { struct epoch_tracker et; @@ -4285,6 +4302,23 @@ if_foreach_lladdr(if_t ifp, iflladdr_cb_t cb, void *cb count += (*cb)(cb_arg, (struct sockaddr_dl *)ifa->ifa_addr, count); } + NET_EPOCH_EXIT(et); + + return (count); +} + +u_int +if_llmaddr_count(if_t ifp) +{ + struct epoch_tracker et; + struct ifmultiaddr *ifma; + int count; + + count = 0; + NET_EPOCH_ENTER(et); + CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) + if (ifma->ifma_addr->sa_family == AF_LINK) + count++; NET_EPOCH_EXIT(et); return (count); Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Thu Oct 10 23:42:55 2019 (r353419) +++ head/sys/net/if_var.h Thu Oct 10 23:44:56 2019 (r353420) @@ -772,6 +772,8 @@ struct sockaddr_dl; typedef u_int iflladdr_cb_t(void *, struct sockaddr_dl *, u_int); u_int if_foreach_lladdr(if_t, iflladdr_cb_t, void *); u_int if_foreach_llmaddr(if_t, iflladdr_cb_t, void *); +u_int if_lladdr_count(if_t); +u_int if_llmaddr_count(if_t); int if_multiaddr_count(if_t ifp, int max); /* Obsoleted multicast management functions. */ From owner-svn-src-head@freebsd.org Thu Oct 10 23:47:15 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6974013546B; Thu, 10 Oct 2019 23:47: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 46q76W2BBXz3Dwp; Thu, 10 Oct 2019 23:47: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 2F4AD98CC; Thu, 10 Oct 2019 23:47: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 x9ANlET3084315; Thu, 10 Oct 2019 23:47:14 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANlESP084314; Thu, 10 Oct 2019 23:47:14 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102347.x9ANlESP084314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:47:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353421 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 353421 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:47:15 -0000 Author: glebius Date: Thu Oct 10 23:47:14 2019 New Revision: 353421 URL: https://svnweb.freebsd.org/changeset/base/353421 Log: Don't use if_maddr_rlock() in ng_ether(4), use epoch(9) directly instead. Modified: head/sys/netgraph/ng_ether.c Modified: head/sys/netgraph/ng_ether.c ============================================================================== --- head/sys/netgraph/ng_ether.c Thu Oct 10 23:44:56 2019 (r353420) +++ head/sys/netgraph/ng_ether.c Thu Oct 10 23:47:14 2019 (r353421) @@ -578,6 +578,7 @@ ng_ether_rcvmsg(node_p node, item_p item, hook_p lasth case NGM_ETHER_ADD_MULTI: { struct sockaddr_dl sa_dl; + struct epoch_tracker et; struct ifmultiaddr *ifma; if (msg->header.arglen != ETHER_ADDR_LEN) { @@ -597,10 +598,10 @@ ng_ether_rcvmsg(node_p node, item_p item, hook_p lasth * lose a race while we check if the membership * already exists. */ - if_maddr_rlock(priv->ifp); + NET_EPOCH_ENTER(et); ifma = if_findmulti(priv->ifp, (struct sockaddr *)&sa_dl); - if_maddr_runlock(priv->ifp); + NET_EPOCH_EXIT(et); if (ifma != NULL) { error = EADDRINUSE; } else { From owner-svn-src-head@freebsd.org Thu Oct 10 23:48:43 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9290013553A; Thu, 10 Oct 2019 23:48:43 +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 46q78C3KXfz3F5S; Thu, 10 Oct 2019 23:48:43 +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 5694698CD; Thu, 10 Oct 2019 23:48:43 +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 x9ANmhj6084431; Thu, 10 Oct 2019 23:48:43 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANmhUv084430; Thu, 10 Oct 2019 23:48:43 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102348.x9ANmhUv084430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:48:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353422 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353422 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:48:43 -0000 Author: glebius Date: Thu Oct 10 23:48:42 2019 New Revision: 353422 URL: https://svnweb.freebsd.org/changeset/base/353422 Log: The divert(4) module must always be running in network epoch, thus call to if_addr_rlock() isn't needed. Modified: head/sys/netinet/ip_divert.c Modified: head/sys/netinet/ip_divert.c ============================================================================== --- head/sys/netinet/ip_divert.c Thu Oct 10 23:47:14 2019 (r353421) +++ head/sys/netinet/ip_divert.c Thu Oct 10 23:48:42 2019 (r353422) @@ -231,10 +231,10 @@ divert_packet(struct mbuf *m, bool incoming) /* Sanity check */ M_ASSERTPKTHDR(m); + NET_EPOCH_ASSERT(); /* Find IP address for receive interface */ ifp = m->m_pkthdr.rcvif; - if_addr_rlock(ifp); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_INET) continue; @@ -242,7 +242,6 @@ divert_packet(struct mbuf *m, bool incoming) ((struct sockaddr_in *) ifa->ifa_addr)->sin_addr; break; } - if_addr_runlock(ifp); } /* * Record the incoming interface name whenever we have one. From owner-svn-src-head@freebsd.org Thu Oct 10 23:49:20 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 401C21355C3; Thu, 10 Oct 2019 23:49:20 +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 46q78w0vDTz3FDQ; Thu, 10 Oct 2019 23:49:20 +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 0371698CF; Thu, 10 Oct 2019 23:49:20 +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 x9ANnJf5084505; Thu, 10 Oct 2019 23:49:19 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANnJ3r084504; Thu, 10 Oct 2019 23:49:19 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102349.x9ANnJ3r084504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:49:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353423 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 353423 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:49:20 -0000 Author: glebius Date: Thu Oct 10 23:49:19 2019 New Revision: 353423 URL: https://svnweb.freebsd.org/changeset/base/353423 Log: Don't use if_maddr_rlock() in ng_eiface(4), use epoch(9) directly instead. Modified: head/sys/netgraph/ng_eiface.c Modified: head/sys/netgraph/ng_eiface.c ============================================================================== --- head/sys/netgraph/ng_eiface.c Thu Oct 10 23:48:42 2019 (r353422) +++ head/sys/netgraph/ng_eiface.c Thu Oct 10 23:49:19 2019 (r353423) @@ -506,18 +506,19 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p last case NGM_EIFACE_GET_IFADDRS: { + struct epoch_tracker et; struct ifaddr *ifa; caddr_t ptr; int buflen; /* Determine size of response and allocate it */ buflen = 0; - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) buflen += SA_SIZE(ifa->ifa_addr); NG_MKRESPONSE(resp, msg, buflen, M_NOWAIT); if (resp == NULL) { - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); error = ENOMEM; break; } @@ -536,7 +537,7 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p last ptr += len; buflen -= len; } - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); break; } From owner-svn-src-head@freebsd.org Thu Oct 10 23:50:33 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 025DA135684; Thu, 10 Oct 2019 23:50: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 46q7BJ640Pz3FTk; Thu, 10 Oct 2019 23:50: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 B2B5B98D4; Thu, 10 Oct 2019 23:50: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 x9ANoWUO086697; Thu, 10 Oct 2019 23:50:32 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANoWp8086696; Thu, 10 Oct 2019 23:50:32 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102350.x9ANoWp8086696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:50:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353424 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353424 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:50:33 -0000 Author: glebius Date: Thu Oct 10 23:50:32 2019 New Revision: 353424 URL: https://svnweb.freebsd.org/changeset/base/353424 Log: Interface output method must be executed in network epoch, so if_addr_rlock() isn't needed here. Modified: head/sys/net/if_stf.c Modified: head/sys/net/if_stf.c ============================================================================== --- head/sys/net/if_stf.c Thu Oct 10 23:49:19 2019 (r353423) +++ head/sys/net/if_stf.c Thu Oct 10 23:50:32 2019 (r353424) @@ -374,7 +374,8 @@ stf_getsrcifa6(struct ifnet *ifp, struct in6_addr *add struct sockaddr_in6 *sin6; struct in_addr in; - if_addr_rlock(ifp); + NET_EPOCH_ASSERT(); + CK_STAILQ_FOREACH(ia, &ifp->if_addrhead, ifa_link) { if (ia->ifa_addr->sa_family != AF_INET6) continue; @@ -395,10 +396,8 @@ stf_getsrcifa6(struct ifnet *ifp, struct in6_addr *add *addr = sin6->sin6_addr; *mask = ia6->ia_prefixmask.sin6_addr; - if_addr_runlock(ifp); return (0); } - if_addr_runlock(ifp); return (ENOENT); } From owner-svn-src-head@freebsd.org Thu Oct 10 23:51:15 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2348413571D; Thu, 10 Oct 2019 23:51: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 46q7C703KVz3Fjw; Thu, 10 Oct 2019 23:51: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 D727D992F; Thu, 10 Oct 2019 23:51:14 +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 x9ANpECl086954; Thu, 10 Oct 2019 23:51:14 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANpEkv086953; Thu, 10 Oct 2019 23:51:14 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102351.x9ANpEkv086953@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:51:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353425 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353425 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:51:15 -0000 Author: glebius Date: Thu Oct 10 23:51:14 2019 New Revision: 353425 URL: https://svnweb.freebsd.org/changeset/base/353425 Log: Don't use if_maddr_rlock() in tuntap(4), use epoch(9) directly instead. Modified: head/sys/net/if_tuntap.c Modified: head/sys/net/if_tuntap.c ============================================================================== --- head/sys/net/if_tuntap.c Thu Oct 10 23:50:32 2019 (r353424) +++ head/sys/net/if_tuntap.c Thu Oct 10 23:51:14 2019 (r353425) @@ -1151,6 +1151,7 @@ tuninit(struct ifnet *ifp) { struct tuntap_softc *tp = ifp->if_softc; #ifdef INET + struct epoch_tracker et; struct ifaddr *ifa; #endif @@ -1162,7 +1163,7 @@ tuninit(struct ifnet *ifp) ifp->if_flags |= IFF_UP; getmicrotime(&ifp->if_lastchange); #ifdef INET - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family == AF_INET) { struct sockaddr_in *si; @@ -1176,7 +1177,7 @@ tuninit(struct ifnet *ifp) tp->tun_flags |= TUN_DSTADDR; } } - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); #endif TUN_UNLOCK(tp); } else { From owner-svn-src-head@freebsd.org Thu Oct 10 23:54:37 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE56E13598B; Thu, 10 Oct 2019 23:54:37 +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 46q7H157Qpz3G5C; Thu, 10 Oct 2019 23:54:37 +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 93D1A9ABB; Thu, 10 Oct 2019 23:54:37 +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 x9ANsbFu090026; Thu, 10 Oct 2019 23:54:37 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANsbRZ090025; Thu, 10 Oct 2019 23:54:37 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102354.x9ANsbRZ090025@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:54:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353426 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 353426 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:54:37 -0000 Author: glebius Date: Thu Oct 10 23:54:37 2019 New Revision: 353426 URL: https://svnweb.freebsd.org/changeset/base/353426 Log: Don't use if_maddr_rlock() in sppp(4), use epoch(9) directly instead. Modified: head/sys/net/if_spppsubr.c Modified: head/sys/net/if_spppsubr.c ============================================================================== --- head/sys/net/if_spppsubr.c Thu Oct 10 23:51:14 2019 (r353425) +++ head/sys/net/if_spppsubr.c Thu Oct 10 23:54:37 2019 (r353426) @@ -4818,6 +4818,7 @@ out: void sppp_get_ip_addrs(struct sppp *sp, u_long *src, u_long *dst, u_long *srcmask) { + struct epoch_tracker et; struct ifnet *ifp = SP2IFP(sp); struct ifaddr *ifa; struct sockaddr_in *si, *sm; @@ -4830,7 +4831,7 @@ sppp_get_ip_addrs(struct sppp *sp, u_long *src, u_long * aliases don't make any sense on a p2p link anyway. */ si = NULL; - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) if (ifa->ifa_addr->sa_family == AF_INET) { si = (struct sockaddr_in *)ifa->ifa_addr; @@ -4849,7 +4850,7 @@ sppp_get_ip_addrs(struct sppp *sp, u_long *src, u_long if (si && si->sin_addr.s_addr) ddst = si->sin_addr.s_addr; } - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); if (dst) *dst = ntohl(ddst); if (src) *src = ntohl(ssrc); @@ -4863,6 +4864,7 @@ static void sppp_set_ip_addr(struct sppp *sp, u_long src) { STDDCL; + struct epoch_tracker et; struct ifaddr *ifa; struct sockaddr_in *si; struct in_ifaddr *ia; @@ -4872,7 +4874,7 @@ sppp_set_ip_addr(struct sppp *sp, u_long src) * aliases don't make any sense on a p2p link anyway. */ si = NULL; - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family == AF_INET) { si = (struct sockaddr_in *)ifa->ifa_addr; @@ -4882,7 +4884,7 @@ sppp_set_ip_addr(struct sppp *sp, u_long src) } } } - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); if (ifa != NULL) { int error; @@ -4921,6 +4923,7 @@ static void sppp_get_ip6_addrs(struct sppp *sp, struct in6_addr *src, struct in6_addr *dst, struct in6_addr *srcmask) { + struct epoch_tracker et; struct ifnet *ifp = SP2IFP(sp); struct ifaddr *ifa; struct sockaddr_in6 *si, *sm; @@ -4934,7 +4937,7 @@ sppp_get_ip6_addrs(struct sppp *sp, struct in6_addr *s * aliases don't make any sense on a p2p link anyway. */ si = NULL; - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) if (ifa->ifa_addr->sa_family == AF_INET6) { si = (struct sockaddr_in6 *)ifa->ifa_addr; @@ -4960,7 +4963,7 @@ sppp_get_ip6_addrs(struct sppp *sp, struct in6_addr *s bcopy(&ddst, dst, sizeof(*dst)); if (src) bcopy(&ssrc, src, sizeof(*src)); - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); } #ifdef IPV6CP_MYIFID_DYN @@ -4980,6 +4983,7 @@ static void sppp_set_ip6_addr(struct sppp *sp, const struct in6_addr *src) { STDDCL; + struct epoch_tracker et; struct ifaddr *ifa; struct sockaddr_in6 *sin6; @@ -4989,7 +4993,7 @@ sppp_set_ip6_addr(struct sppp *sp, const struct in6_ad */ sin6 = NULL; - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family == AF_INET6) { sin6 = (struct sockaddr_in6 *)ifa->ifa_addr; @@ -4999,7 +5003,7 @@ sppp_set_ip6_addr(struct sppp *sp, const struct in6_ad } } } - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); if (ifa != NULL) { int error; From owner-svn-src-head@freebsd.org Thu Oct 10 23:55:34 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 18046135A3B; Thu, 10 Oct 2019 23:55:34 +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 46q7J56Vjpz3GDx; Thu, 10 Oct 2019 23:55: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 C36FE9ABD; Thu, 10 Oct 2019 23:55: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 x9ANtXZT090149; Thu, 10 Oct 2019 23:55:33 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANtX3u090148; Thu, 10 Oct 2019 23:55:33 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910102355.x9ANtX3u090148@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 10 Oct 2019 23:55:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353427 - head/sys/net80211 X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net80211 X-SVN-Commit-Revision: 353427 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:55:34 -0000 Author: glebius Date: Thu Oct 10 23:55:33 2019 New Revision: 353427 URL: https://svnweb.freebsd.org/changeset/base/353427 Log: Don't use if_maddr_rlock() in 802.11, use epoch(9) directly instead. Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Thu Oct 10 23:54:37 2019 (r353426) +++ head/sys/net80211/ieee80211_ioctl.c Thu Oct 10 23:55:33 2019 (r353427) @@ -3583,6 +3583,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t IEEE80211_UNLOCK(ic); /* Wait for parent ioctl handler if it was queued */ if (wait) { + struct epoch_tracker et; + ieee80211_waitfor_parent(ic); /* @@ -3592,13 +3594,13 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t * NB: device may be detached during initialization; * use if_ioctl for existence check. */ - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); if (ifp->if_ioctl == ieee80211_ioctl && (ifp->if_flags & IFF_UP) == 0 && !IEEE80211_ADDR_EQ(vap->iv_myaddr, IF_LLADDR(ifp))) IEEE80211_ADDR_COPY(vap->iv_myaddr, IF_LLADDR(ifp)); - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); } break; case SIOCADDMULTI: From owner-svn-src-head@freebsd.org Fri Oct 11 01:31:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B8D1137EFB; Fri, 11 Oct 2019 01:31:32 +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 46q9Qq6gJSz3Kvk; Fri, 11 Oct 2019 01:31:31 +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 C9B17ABE6; Fri, 11 Oct 2019 01:31:31 +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 x9B1VVu4047984; Fri, 11 Oct 2019 01:31:31 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9B1VV1R047982; Fri, 11 Oct 2019 01:31:31 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201910110131.x9B1VV1R047982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Fri, 11 Oct 2019 01:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353429 - in head: share/man/man4 sys/kern sys/vm X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head: share/man/man4 sys/kern sys/vm X-SVN-Commit-Revision: 353429 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 01:31:32 -0000 Author: cem Date: Fri Oct 11 01:31:31 2019 New Revision: 353429 URL: https://svnweb.freebsd.org/changeset/base/353429 Log: ddb: Add CSV option, sorting to 'show (malloc|uma)' Add /i option for machine-parseable CSV output. This allows ready copy/ pasting into more sophisticated tooling outside of DDB. Add total zone size ("Memory Use") as a new column for UMA. For both, sort the displayed list on size (print the largest zones/types first). This is handy for quickly diagnosing "where has my memory gone?" at a high level. Submitted by: Emily Pettigrew (earlier version) Sponsored by: Dell EMC Isilon Modified: head/share/man/man4/ddb.4 head/sys/kern/kern_malloc.c head/sys/vm/uma_core.c Modified: head/share/man/man4/ddb.4 ============================================================================== --- head/share/man/man4/ddb.4 Fri Oct 11 00:02:00 2019 (r353428) +++ head/share/man/man4/ddb.4 Fri Oct 11 01:31:31 2019 (r353429) @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 9, 2019 +.Dd October 10, 2019 .Dt DDB 4 .Os .Sh NAME @@ -806,11 +806,15 @@ is included in the kernel. .It Ic show Cm locktree .\" .Pp -.It Ic show Cm malloc +.It Ic show Cm malloc Ns Op Li / Ns Cm i Prints .Xr malloc 9 memory allocator statistics. -The output format is as follows: +If the +.Cm i +modifier is specified, format output as machine-parseable comma-separated +values ("CSV"). +The output columns are as follows: .Pp .Bl -tag -compact -offset indent -width "Requests" .It Ic Type @@ -1076,11 +1080,15 @@ Currently, those are: .Xr rmlock 9 . .\" .Pp -.It Ic show Cm uma +.It Ic show Cm uma Ns Op Li / Ns Cm i Show UMA allocator statistics. -Output consists five columns: +If the +.Cm i +modifier is specified, format output as machine-parseable comma-separated +values ("CSV"). +The output contains the following columns: .Pp -.Bl -tag -compact -offset indent -width "Requests" +.Bl -tag -compact -offset indent -width "Total Mem" .It Cm "Zone" Name of the UMA zone. The same string that was passed to @@ -1094,9 +1102,18 @@ Number of slabs being currently used. Number of free slabs within the UMA zone. .It Cm "Requests" Number of allocations requests to the given zone. +.It Cm "Total Mem" +Total memory in use (either allocated or free) by a zone, in bytes. +.It Cm "XFree" +Number of free slabs within the UMA zone that were freed on a different NUMA +domain than allocated. +(The count in the +.Cm "Free" +column is inclusive of +.Cm "XFree" . ) .El .Pp -The very same information might be gathered in the userspace +The same information might be gathered in the userspace with the help of .Dq Nm vmstat Fl z . .\" Modified: head/sys/kern/kern_malloc.c ============================================================================== --- head/sys/kern/kern_malloc.c Fri Oct 11 00:02:00 2019 (r353428) +++ head/sys/kern/kern_malloc.c Fri Oct 11 01:31:31 2019 (r353429) @@ -1205,35 +1205,90 @@ restart: } #ifdef DDB +static int64_t +get_malloc_stats(const struct malloc_type_internal *mtip, uint64_t *allocs, + uint64_t *inuse) +{ + const struct malloc_type_stats *mtsp; + uint64_t frees, alloced, freed; + int i; + + *allocs = 0; + frees = 0; + alloced = 0; + freed = 0; + for (i = 0; i <= mp_maxid; i++) { + mtsp = zpcpu_get_cpu(mtip->mti_stats, i); + + *allocs += mtsp->mts_numallocs; + frees += mtsp->mts_numfrees; + alloced += mtsp->mts_memalloced; + freed += mtsp->mts_memfreed; + } + *inuse = *allocs - frees; + return (alloced - freed); +} + DB_SHOW_COMMAND(malloc, db_show_malloc) { - struct malloc_type_internal *mtip; - struct malloc_type_stats *mtsp; + const char *fmt_hdr, *fmt_entry; struct malloc_type *mtp; - uint64_t allocs, frees; - uint64_t alloced, freed; - int i; + uint64_t allocs, inuse; + int64_t size; + /* variables for sorting */ + struct malloc_type *last_mtype, *cur_mtype; + int64_t cur_size, last_size; + int ties; - db_printf("%18s %12s %12s %12s\n", "Type", "InUse", "MemUse", - "Requests"); - for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) { - mtip = (struct malloc_type_internal *)mtp->ks_handle; - allocs = 0; - frees = 0; - alloced = 0; - freed = 0; - for (i = 0; i <= mp_maxid; i++) { - mtsp = zpcpu_get_cpu(mtip->mti_stats, i); - allocs += mtsp->mts_numallocs; - frees += mtsp->mts_numfrees; - alloced += mtsp->mts_memalloced; - freed += mtsp->mts_memfreed; + if (modif[0] == 'i') { + fmt_hdr = "%s,%s,%s,%s\n"; + fmt_entry = "\"%s\",%ju,%jdK,%ju\n"; + } else { + fmt_hdr = "%18s %12s %12s %12s\n"; + fmt_entry = "%18s %12ju %12jdK %12ju\n"; + } + + db_printf(fmt_hdr, "Type", "InUse", "MemUse", "Requests"); + + /* Select sort, largest size first. */ + last_mtype = NULL; + last_size = INT64_MAX; + for (;;) { + cur_mtype = NULL; + cur_size = -1; + ties = 0; + + for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) { + /* + * In the case of size ties, print out mtypes + * in the order they are encountered. That is, + * when we encounter the most recently output + * mtype, we have already printed all preceding + * ties, and we must print all following ties. + */ + if (mtp == last_mtype) { + ties = 1; + continue; + } + size = get_malloc_stats(mtp->ks_handle, &allocs, + &inuse); + if (size > cur_size && size < last_size + ties) { + cur_size = size; + cur_mtype = mtp; + } } - db_printf("%18s %12ju %12juK %12ju\n", - mtp->ks_shortdesc, allocs - frees, - (alloced - freed + 1023) / 1024, allocs); + if (cur_mtype == NULL) + break; + + size = get_malloc_stats(cur_mtype->ks_handle, &allocs, &inuse); + db_printf(fmt_entry, cur_mtype->ks_shortdesc, inuse, + howmany(size, 1024), allocs); + if (db_pager_quit) break; + + last_mtype = cur_mtype; + last_size = cur_size; } } Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Fri Oct 11 00:02:00 2019 (r353428) +++ head/sys/vm/uma_core.c Fri Oct 11 01:31:31 2019 (r353429) @@ -4341,39 +4341,100 @@ uma_dbg_free(uma_zone_t zone, uma_slab_t slab, void *i #endif /* INVARIANTS */ #ifdef DDB +static int64_t +get_uma_stats(uma_keg_t kz, uma_zone_t z, uint64_t *allocs, uint64_t *used, + uint64_t *sleeps, uint64_t *xdomain, long *cachefree) +{ + uint64_t frees; + int i; + + if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { + *allocs = counter_u64_fetch(z->uz_allocs); + frees = counter_u64_fetch(z->uz_frees); + *sleeps = z->uz_sleeps; + *cachefree = 0; + *xdomain = 0; + } else + uma_zone_sumstat(z, cachefree, allocs, &frees, sleeps, + xdomain); + if (!((z->uz_flags & UMA_ZONE_SECONDARY) && + (LIST_FIRST(&kz->uk_zones) != z))) + *cachefree += kz->uk_free; + for (i = 0; i < vm_ndomains; i++) + *cachefree += z->uz_domain[i].uzd_nitems; + *used = *allocs - frees; + return (((int64_t)*used + *cachefree) * kz->uk_size); +} + DB_SHOW_COMMAND(uma, db_show_uma) { + const char *fmt_hdr, *fmt_entry; uma_keg_t kz; uma_zone_t z; - uint64_t allocs, frees, sleeps, xdomain; + uint64_t allocs, used, sleeps, xdomain; long cachefree; - int i; + /* variables for sorting */ + uma_keg_t cur_keg; + uma_zone_t cur_zone, last_zone; + int64_t cur_size, last_size, size; + int ties; - db_printf("%18s %8s %8s %8s %12s %8s %8s %8s\n", "Zone", "Size", "Used", - "Free", "Requests", "Sleeps", "Bucket", "XFree"); - LIST_FOREACH(kz, &uma_kegs, uk_link) { - LIST_FOREACH(z, &kz->uk_zones, uz_link) { - if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { - allocs = counter_u64_fetch(z->uz_allocs); - frees = counter_u64_fetch(z->uz_frees); - sleeps = z->uz_sleeps; - cachefree = 0; - } else - uma_zone_sumstat(z, &cachefree, &allocs, - &frees, &sleeps, &xdomain); - if (!((z->uz_flags & UMA_ZONE_SECONDARY) && - (LIST_FIRST(&kz->uk_zones) != z))) - cachefree += kz->uk_free; - for (i = 0; i < vm_ndomains; i++) - cachefree += z->uz_domain[i].uzd_nitems; + /* /i option produces machine-parseable CSV output */ + if (modif[0] == 'i') { + fmt_hdr = "%s,%s,%s,%s,%s,%s,%s,%s,%s\n"; + fmt_entry = "\"%s\",%ju,%jd,%ld,%ju,%ju,%u,%jd,%ju\n"; + } else { + fmt_hdr = "%18s %6s %7s %7s %11s %7s %7s %10s %8s\n"; + fmt_entry = "%18s %6ju %7jd %7ld %11ju %7ju %7u %10jd %8ju\n"; + } - db_printf("%18s %8ju %8jd %8ld %12ju %8ju %8u %8ju\n", - z->uz_name, (uintmax_t)kz->uk_size, - (intmax_t)(allocs - frees), cachefree, - (uintmax_t)allocs, sleeps, z->uz_count, xdomain); - if (db_pager_quit) - return; + db_printf(fmt_hdr, "Zone", "Size", "Used", "Free", "Requests", + "Sleeps", "Bucket", "Total Mem", "XFree"); + + /* Sort the zones with largest size first. */ + last_zone = NULL; + last_size = INT64_MAX; + for (;;) { + cur_zone = NULL; + cur_size = -1; + ties = 0; + LIST_FOREACH(kz, &uma_kegs, uk_link) { + LIST_FOREACH(z, &kz->uk_zones, uz_link) { + /* + * In the case of size ties, print out zones + * in the order they are encountered. That is, + * when we encounter the most recently output + * zone, we have already printed all preceding + * ties, and we must print all following ties. + */ + if (z == last_zone) { + ties = 1; + continue; + } + size = get_uma_stats(kz, z, &allocs, &used, + &sleeps, &cachefree, &xdomain); + if (size > cur_size && size < last_size + ties) + { + cur_size = size; + cur_zone = z; + cur_keg = kz; + } + } } + if (cur_zone == NULL) + break; + + size = get_uma_stats(cur_keg, cur_zone, &allocs, &used, + &sleeps, &cachefree, &xdomain); + db_printf(fmt_entry, cur_zone->uz_name, + (uintmax_t)cur_keg->uk_size, (intmax_t)used, cachefree, + (uintmax_t)allocs, (uintmax_t)sleeps, + (unsigned)cur_zone->uz_count, (intmax_t)size, xdomain); + + if (db_pager_quit) + return; + last_zone = cur_zone; + last_size = cur_size; } } From owner-svn-src-head@freebsd.org Fri Oct 11 04:20:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B850B13C3D9; Fri, 11 Oct 2019 04:20:51 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.9]) (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 46qFBC03VNz3xfX; Fri, 11 Oct 2019 04:20:50 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id ImQ2i0fQuUIS2ImQ3i3fFB; Thu, 10 Oct 2019 22:20:48 -0600 X-Authority-Analysis: v=2.3 cv=N41X6F1B c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=XobE76Q3jBoA:10 a=6I5d2MoRAAAA:8 a=5aufQkHnAAAA:8 a=YxBL1-UpAAAA:8 a=U6ALD4cZ6_xjBTtgq30A:9 a=M7yIAYGdQk2ME6YH:21 a=4Vng0BGWIae9Y-f7:21 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=5jWFXopkL0B9C0XP6NHj:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 7754A15B; Thu, 10 Oct 2019 21:20:45 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x9B4Kjvh006131; Thu, 10 Oct 2019 21:20:45 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x9B4KinB006128; Thu, 10 Oct 2019 21:20:44 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201910110420.x9B4KinB006128@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Conrad Meyer cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353429 - in head: share/man/man4 sys/kern sys/vm In-reply-to: <201910110131.x9B1VV1R047982@repo.freebsd.org> References: <201910110131.x9B1VV1R047982@repo.freebsd.org> Comments: In-reply-to Conrad Meyer message dated "Fri, 11 Oct 2019 01:31:31 -0000." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 10 Oct 2019 21:20:44 -0700 X-CMAE-Envelope: MS4wfGi7mrgHe7goGbHyKMNUKWcqRv4RMCCMTgUbuCbtkzsZ2IRnv6QeqPE8jvEBFNDji0NaR/kgmItZ2MQKoLc2FCtI2a1ecidJcaO45+gs+uUCEhQwBp1X T/w7aAZ/6dyU8VCXG/PzDYD9mzhx90DdEBw0Gtwt7JNyvX9VhWzQcxqNTbMRXPs6ML9IqkpRqeFwLAT8vcou3VMVDa56iCkPp7KLYyXZ079/xwfM0V572nJK RpHBTL2x9N7ogA0vXdt0tKeBFiFdc/EvYuIx2v+d4FpNLQ6bhzjsC2YBFSTndxay X-Rspamd-Queue-Id: 46qFBC03VNz3xfX 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)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 04:20:51 -0000 In message <201910110131.x9B1VV1R047982@repo.freebsd.org>, Conrad Meyer writes: > Author: cem > Date: Fri Oct 11 01:31:31 2019 > New Revision: 353429 > URL: https://svnweb.freebsd.org/changeset/base/353429 > > Log: > ddb: Add CSV option, sorting to 'show (malloc|uma)' > > Add /i option for machine-parseable CSV output. This allows ready copy/ > pasting into more sophisticated tooling outside of DDB. > > Add total zone size ("Memory Use") as a new column for UMA. > > For both, sort the displayed list on size (print the largest zones/types > first). This is handy for quickly diagnosing "where has my memory gone?" a > t > a high level. > > Submitted by: Emily Pettigrew (earlie > r version) > Sponsored by: Dell EMC Isilon > > Modified: > head/share/man/man4/ddb.4 > head/sys/kern/kern_malloc.c > head/sys/vm/uma_core.c > > Modified: head/share/man/man4/ddb.4 > ============================================================================= > = > --- head/share/man/man4/ddb.4 Fri Oct 11 00:02:00 2019 (r353428) > +++ head/share/man/man4/ddb.4 Fri Oct 11 01:31:31 2019 (r353429) > @@ -60,7 +60,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd September 9, 2019 > +.Dd October 10, 2019 > .Dt DDB 4 > .Os > .Sh NAME > @@ -806,11 +806,15 @@ is included in the kernel. > .It Ic show Cm locktree > .\" > .Pp > -.It Ic show Cm malloc > +.It Ic show Cm malloc Ns Op Li / Ns Cm i > Prints > .Xr malloc 9 > memory allocator statistics. > -The output format is as follows: > +If the > +.Cm i > +modifier is specified, format output as machine-parseable comma-separated > +values ("CSV"). > +The output columns are as follows: > .Pp > .Bl -tag -compact -offset indent -width "Requests" > .It Ic Type > @@ -1076,11 +1080,15 @@ Currently, those are: > .Xr rmlock 9 . > .\" > .Pp > -.It Ic show Cm uma > +.It Ic show Cm uma Ns Op Li / Ns Cm i > Show UMA allocator statistics. > -Output consists five columns: > +If the > +.Cm i > +modifier is specified, format output as machine-parseable comma-separated > +values ("CSV"). > +The output contains the following columns: > .Pp > -.Bl -tag -compact -offset indent -width "Requests" > +.Bl -tag -compact -offset indent -width "Total Mem" > .It Cm "Zone" > Name of the UMA zone. > The same string that was passed to > @@ -1094,9 +1102,18 @@ Number of slabs being currently used. > Number of free slabs within the UMA zone. > .It Cm "Requests" > Number of allocations requests to the given zone. > +.It Cm "Total Mem" > +Total memory in use (either allocated or free) by a zone, in bytes. > +.It Cm "XFree" > +Number of free slabs within the UMA zone that were freed on a different NUMA > +domain than allocated. > +(The count in the > +.Cm "Free" > +column is inclusive of > +.Cm "XFree" . ) > .El > .Pp > -The very same information might be gathered in the userspace > +The same information might be gathered in the userspace > with the help of > .Dq Nm vmstat Fl z . > .\" > > Modified: head/sys/kern/kern_malloc.c > ============================================================================= > = > --- head/sys/kern/kern_malloc.c Fri Oct 11 00:02:00 2019 (r35342 > 8) > +++ head/sys/kern/kern_malloc.c Fri Oct 11 01:31:31 2019 (r35342 > 9) > @@ -1205,35 +1205,90 @@ restart: > } > > #ifdef DDB > +static int64_t > +get_malloc_stats(const struct malloc_type_internal *mtip, uint64_t *allocs, > + uint64_t *inuse) > +{ > + const struct malloc_type_stats *mtsp; > + uint64_t frees, alloced, freed; > + int i; > + > + *allocs = 0; > + frees = 0; > + alloced = 0; > + freed = 0; > + for (i = 0; i <= mp_maxid; i++) { > + mtsp = zpcpu_get_cpu(mtip->mti_stats, i); > + > + *allocs += mtsp->mts_numallocs; > + frees += mtsp->mts_numfrees; > + alloced += mtsp->mts_memalloced; > + freed += mtsp->mts_memfreed; > + } > + *inuse = *allocs - frees; > + return (alloced - freed); > +} > + > DB_SHOW_COMMAND(malloc, db_show_malloc) > { > - struct malloc_type_internal *mtip; > - struct malloc_type_stats *mtsp; > + const char *fmt_hdr, *fmt_entry; > struct malloc_type *mtp; > - uint64_t allocs, frees; > - uint64_t alloced, freed; > - int i; > + uint64_t allocs, inuse; > + int64_t size; > + /* variables for sorting */ > + struct malloc_type *last_mtype, *cur_mtype; > + int64_t cur_size, last_size; > + int ties; > > - db_printf("%18s %12s %12s %12s\n", "Type", "InUse", "MemUse", > - "Requests"); > - for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) { > - mtip = (struct malloc_type_internal *)mtp->ks_handle; > - allocs = 0; > - frees = 0; > - alloced = 0; > - freed = 0; > - for (i = 0; i <= mp_maxid; i++) { > - mtsp = zpcpu_get_cpu(mtip->mti_stats, i); > - allocs += mtsp->mts_numallocs; > - frees += mtsp->mts_numfrees; > - alloced += mtsp->mts_memalloced; > - freed += mtsp->mts_memfreed; > + if (modif[0] == 'i') { > + fmt_hdr = "%s,%s,%s,%s\n"; > + fmt_entry = "\"%s\",%ju,%jdK,%ju\n"; > + } else { > + fmt_hdr = "%18s %12s %12s %12s\n"; > + fmt_entry = "%18s %12ju %12jdK %12ju\n"; > + } > + > + db_printf(fmt_hdr, "Type", "InUse", "MemUse", "Requests"); > + > + /* Select sort, largest size first. */ > + last_mtype = NULL; > + last_size = INT64_MAX; > + for (;;) { > + cur_mtype = NULL; > + cur_size = -1; > + ties = 0; > + > + for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) { > + /* > + * In the case of size ties, print out mtypes > + * in the order they are encountered. That is, > + * when we encounter the most recently output > + * mtype, we have already printed all preceding > + * ties, and we must print all following ties. > + */ > + if (mtp == last_mtype) { > + ties = 1; > + continue; > + } > + size = get_malloc_stats(mtp->ks_handle, &allocs, > + &inuse); > + if (size > cur_size && size < last_size + ties) { > + cur_size = size; > + cur_mtype = mtp; > + } > } > - db_printf("%18s %12ju %12juK %12ju\n", > - mtp->ks_shortdesc, allocs - frees, > - (alloced - freed + 1023) / 1024, allocs); > + if (cur_mtype == NULL) > + break; > + > + size = get_malloc_stats(cur_mtype->ks_handle, &allocs, &inuse); > + db_printf(fmt_entry, cur_mtype->ks_shortdesc, inuse, > + howmany(size, 1024), allocs); > + > if (db_pager_quit) > break; > + > + last_mtype = cur_mtype; > + last_size = cur_size; > } > } > > > Modified: head/sys/vm/uma_core.c > ============================================================================= > = > --- head/sys/vm/uma_core.c Fri Oct 11 00:02:00 2019 (r353428) > +++ head/sys/vm/uma_core.c Fri Oct 11 01:31:31 2019 (r353429) > @@ -4341,39 +4341,100 @@ uma_dbg_free(uma_zone_t zone, uma_slab_t slab, void > *i > #endif /* INVARIANTS */ > > #ifdef DDB > +static int64_t > +get_uma_stats(uma_keg_t kz, uma_zone_t z, uint64_t *allocs, uint64_t *used, > + uint64_t *sleeps, uint64_t *xdomain, long *cachefree) xdomain and cachefree are reversed by callers of this function. Probably simpler to change the definition here than the two use instances below. > +{ > + uint64_t frees; > + int i; > + > + if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { > + *allocs = counter_u64_fetch(z->uz_allocs); > + frees = counter_u64_fetch(z->uz_frees); > + *sleeps = z->uz_sleeps; > + *cachefree = 0; > + *xdomain = 0; > + } else > + uma_zone_sumstat(z, cachefree, allocs, &frees, sleeps, > + xdomain); > + if (!((z->uz_flags & UMA_ZONE_SECONDARY) && > + (LIST_FIRST(&kz->uk_zones) != z))) > + *cachefree += kz->uk_free; > + for (i = 0; i < vm_ndomains; i++) > + *cachefree += z->uz_domain[i].uzd_nitems; > + *used = *allocs - frees; > + return (((int64_t)*used + *cachefree) * kz->uk_size); > +} > + > DB_SHOW_COMMAND(uma, db_show_uma) > { > + const char *fmt_hdr, *fmt_entry; > uma_keg_t kz; > uma_zone_t z; > - uint64_t allocs, frees, sleeps, xdomain; > + uint64_t allocs, used, sleeps, xdomain; > long cachefree; > - int i; > + /* variables for sorting */ > + uma_keg_t cur_keg; > + uma_zone_t cur_zone, last_zone; > + int64_t cur_size, last_size, size; > + int ties; > > - db_printf("%18s %8s %8s %8s %12s %8s %8s %8s\n", "Zone", "Size", "Used" > , > - "Free", "Requests", "Sleeps", "Bucket", "XFree"); > - LIST_FOREACH(kz, &uma_kegs, uk_link) { > - LIST_FOREACH(z, &kz->uk_zones, uz_link) { > - if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { > - allocs = counter_u64_fetch(z->uz_allocs); > - frees = counter_u64_fetch(z->uz_frees); > - sleeps = z->uz_sleeps; > - cachefree = 0; > - } else > - uma_zone_sumstat(z, &cachefree, &allocs, > - &frees, &sleeps, &xdomain); > - if (!((z->uz_flags & UMA_ZONE_SECONDARY) && > - (LIST_FIRST(&kz->uk_zones) != z))) > - cachefree += kz->uk_free; > - for (i = 0; i < vm_ndomains; i++) > - cachefree += z->uz_domain[i].uzd_nitems; > + /* /i option produces machine-parseable CSV output */ > + if (modif[0] == 'i') { > + fmt_hdr = "%s,%s,%s,%s,%s,%s,%s,%s,%s\n"; > + fmt_entry = "\"%s\",%ju,%jd,%ld,%ju,%ju,%u,%jd,%ju\n"; > + } else { > + fmt_hdr = "%18s %6s %7s %7s %11s %7s %7s %10s %8s\n"; > + fmt_entry = "%18s %6ju %7jd %7ld %11ju %7ju %7u %10jd %8ju\n"; > + } > > - db_printf("%18s %8ju %8jd %8ld %12ju %8ju %8u %8ju\n", > - z->uz_name, (uintmax_t)kz->uk_size, > - (intmax_t)(allocs - frees), cachefree, > - (uintmax_t)allocs, sleeps, z->uz_count, xdomain); > - if (db_pager_quit) > - return; > + db_printf(fmt_hdr, "Zone", "Size", "Used", "Free", "Requests", > + "Sleeps", "Bucket", "Total Mem", "XFree"); > + > + /* Sort the zones with largest size first. */ > + last_zone = NULL; > + last_size = INT64_MAX; > + for (;;) { > + cur_zone = NULL; > + cur_size = -1; > + ties = 0; > + LIST_FOREACH(kz, &uma_kegs, uk_link) { > + LIST_FOREACH(z, &kz->uk_zones, uz_link) { > + /* > + * In the case of size ties, print out zones > + * in the order they are encountered. That is, > + * when we encounter the most recently output > + * zone, we have already printed all preceding > + * ties, and we must print all following ties. > + */ > + if (z == last_zone) { > + ties = 1; > + continue; > + } > + size = get_uma_stats(kz, z, &allocs, &used, > + &sleeps, &cachefree, &xdomain); cachefree and xdomain are reversed from the function header above. > + if (size > cur_size && size < last_size + ties) > + { > + cur_size = size; > + cur_zone = z; > + cur_keg = kz; > + } > + } > } > + if (cur_zone == NULL) > + break; > + > + size = get_uma_stats(cur_keg, cur_zone, &allocs, &used, > + &sleeps, &cachefree, &xdomain); cachefree and xdomain are reversed from the function header above. > + db_printf(fmt_entry, cur_zone->uz_name, > + (uintmax_t)cur_keg->uk_size, (intmax_t)used, cachefree, > + (uintmax_t)allocs, (uintmax_t)sleeps, > + (unsigned)cur_zone->uz_count, (intmax_t)size, xdomain); > + > + if (db_pager_quit) > + return; > + last_zone = cur_zone; > + last_size = cur_size; > } > } > > -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Fri Oct 11 06:02:04 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9EB1A13E30B; Fri, 11 Oct 2019 06:02:04 +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 46qHR03mb5z42Hf; Fri, 11 Oct 2019 06:02:04 +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 64B35DE21; Fri, 11 Oct 2019 06:02:04 +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 x9B624w6006675; Fri, 11 Oct 2019 06:02:04 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9B624uZ006674; Fri, 11 Oct 2019 06:02:04 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201910110602.x9B624uZ006674@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Fri, 11 Oct 2019 06:02:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353430 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 353430 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 06:02:04 -0000 Author: cem Date: Fri Oct 11 06:02:03 2019 New Revision: 353430 URL: https://svnweb.freebsd.org/changeset/base/353430 Log: Fix braino in r353429 cy@ points out that I got parameter order backwards between definition and invocation of the helper function. He is totally correct. The earlier version of this patch predated the XFree column so this is one I introduced, rather than the original author. Submitted by: cy Reported by: cy X-MFC-With: r353429 Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Fri Oct 11 01:31:31 2019 (r353429) +++ head/sys/vm/uma_core.c Fri Oct 11 06:02:03 2019 (r353430) @@ -4343,7 +4343,7 @@ uma_dbg_free(uma_zone_t zone, uma_slab_t slab, void *i #ifdef DDB static int64_t get_uma_stats(uma_keg_t kz, uma_zone_t z, uint64_t *allocs, uint64_t *used, - uint64_t *sleeps, uint64_t *xdomain, long *cachefree) + uint64_t *sleeps, long *cachefree, uint64_t *xdomain) { uint64_t frees; int i; From owner-svn-src-head@freebsd.org Fri Oct 11 06:03:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B0BC113E3BA; Fri, 11 Oct 2019 06:03:46 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) (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 46qHSx5bJjz42Sv; Fri, 11 Oct 2019 06:03:45 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f45.google.com with SMTP id g13so6985423otp.8; Thu, 10 Oct 2019 23:03:45 -0700 (PDT) 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=7me31K5xElyVDBbydSJdiLEgz6pnnGYVY4Tsrj8ETAM=; b=qdvQWGowdU0fMfwETQa13kl9E+vwiBA8Icj3HP965EQ/TQppzS+DsttHcJOFKHX5Se kDrs7qOrVb1ozS708SuP3tHB/u7IkSLMzTCnMWR6Kg3XF/xUeD43wB3n2QW4Yn6GKzVa XqX3zggrB8JfgbN3qCyrHFgE5Zmg1/gK4iY5lsTbsEsHKabsP0eZmSds1yL/3azcvfmP iJEFOUOXiT32Uf/VrQCNfvKe9eV/oak8GW6aGINTRslCDmdfEcaM2C1qnpG1hB0lEfJ7 TzqwWOoBWSYlVlh9ZZRQO8MRNs2fvITU3/47lTa1XG+oyp+alPtgVJSBMA1Rzw5iKyNH gtFA== X-Gm-Message-State: APjAAAWqC9tSnAuAf+uCoR5gfz6iYSPnUEYpKXLhhA+fkDV3Z39PM5mc F2LV6aewwUSVna7wiw7hkRbRwnqM X-Google-Smtp-Source: APXvYqyXpUPa0Rpz3TdLPV+mDL1JRsl1RO/SiZmyVv9Ca8uPcqWjDzZucMWKyQ/H4yfe7ahy6wBUUg== X-Received: by 2002:a9d:6c10:: with SMTP id f16mr11506364otq.35.1570773824084; Thu, 10 Oct 2019 23:03:44 -0700 (PDT) Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com. [209.85.210.51]) by smtp.gmail.com with ESMTPSA id t18sm2445924otd.60.2019.10.10.23.03.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Oct 2019 23:03:43 -0700 (PDT) Received: by mail-ot1-f51.google.com with SMTP id c10so6992304otd.9; Thu, 10 Oct 2019 23:03:43 -0700 (PDT) X-Received: by 2002:a05:6830:1154:: with SMTP id x20mr10495645otq.219.1570773823416; Thu, 10 Oct 2019 23:03:43 -0700 (PDT) MIME-Version: 1.0 References: <201910110131.x9B1VV1R047982@repo.freebsd.org> <201910110420.x9B4KinB006128@slippy.cwsent.com> In-Reply-To: <201910110420.x9B4KinB006128@slippy.cwsent.com> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 10 Oct 2019 23:03:32 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r353429 - in head: share/man/man4 sys/kern sys/vm To: Cy Schubert Cc: Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 46qHSx5bJjz42Sv 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.210.45 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-3.10 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; RWL_MAILSPIKE_GOOD(0.00)[45.210.85.209.rep.mailspike.net : 127.0.0.18]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[4]; MIME_BASE64_TEXT(0.10)[]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; 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)[cem@freebsd.org,csecem@gmail.com]; TAGGED_FROM(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[45.210.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-1.20)[ip: (-0.55), ipnet: 209.85.128.0/17(-3.25), asn: 15169(-2.13), country: US(-0.05)]; RCVD_TLS_ALL(0.00)[] 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 06:03:46 -0000 Thanks Cy, you=E2=80=99re totally right. That explains the crazy cachefree/= xfree numbers I was seeing. Should be fixed in 353430. Thanks, Conrad On Thu, Oct 10, 2019 at 21:20 Cy Schubert wrote= : > In message <201910110131.x9B1VV1R047982@repo.freebsd.org>, Conrad Meyer > writes: > > Author: cem > > Date: Fri Oct 11 01:31:31 2019 > > New Revision: 353429 > > URL: https://svnweb.freebsd.org/changeset/base/353429 > > > > Log: > > ddb: Add CSV option, sorting to 'show (malloc|uma)' > > > > Add /i option for machine-parseable CSV output. This allows ready > copy/ > > pasting into more sophisticated tooling outside of DDB. > > > > Add total zone size ("Memory Use") as a new column for UMA. > > > > For both, sort the displayed list on size (print the largest > zones/types > > first). This is handy for quickly diagnosing "where has my memory > gone?" a > > t > > a high level. > > > > Submitted by: Emily Pettigrew > (earlie > > r version) > > Sponsored by: Dell EMC Isilon > > > > Modified: > > head/share/man/man4/ddb.4 > > head/sys/kern/kern_malloc.c > > head/sys/vm/uma_core.c > > > > Modified: head/share/man/man4/ddb.4 > > > =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/share/man/man4/ddb.4 Fri Oct 11 00:02:00 2019 (r353428) > > +++ head/share/man/man4/ddb.4 Fri Oct 11 01:31:31 2019 (r353429) > > @@ -60,7 +60,7 @@ > > .\" > > .\" $FreeBSD$ > > .\" > > -.Dd September 9, 2019 > > +.Dd October 10, 2019 > > .Dt DDB 4 > > .Os > > .Sh NAME > > @@ -806,11 +806,15 @@ is included in the kernel. > > .It Ic show Cm locktree > > .\" > > .Pp > > -.It Ic show Cm malloc > > +.It Ic show Cm malloc Ns Op Li / Ns Cm i > > Prints > > .Xr malloc 9 > > memory allocator statistics. > > -The output format is as follows: > > +If the > > +.Cm i > > +modifier is specified, format output as machine-parseable > comma-separated > > +values ("CSV"). > > +The output columns are as follows: > > .Pp > > .Bl -tag -compact -offset indent -width "Requests" > > .It Ic Type > > @@ -1076,11 +1080,15 @@ Currently, those are: > > .Xr rmlock 9 . > > .\" > > .Pp > > -.It Ic show Cm uma > > +.It Ic show Cm uma Ns Op Li / Ns Cm i > > Show UMA allocator statistics. > > -Output consists five columns: > > +If the > > +.Cm i > > +modifier is specified, format output as machine-parseable > comma-separated > > +values ("CSV"). > > +The output contains the following columns: > > .Pp > > -.Bl -tag -compact -offset indent -width "Requests" > > +.Bl -tag -compact -offset indent -width "Total Mem" > > .It Cm "Zone" > > Name of the UMA zone. > > The same string that was passed to > > @@ -1094,9 +1102,18 @@ Number of slabs being currently used. > > Number of free slabs within the UMA zone. > > .It Cm "Requests" > > Number of allocations requests to the given zone. > > +.It Cm "Total Mem" > > +Total memory in use (either allocated or free) by a zone, in bytes. > > +.It Cm "XFree" > > +Number of free slabs within the UMA zone that were freed on a differen= t > NUMA > > +domain than allocated. > > +(The count in the > > +.Cm "Free" > > +column is inclusive of > > +.Cm "XFree" . ) > > .El > > .Pp > > -The very same information might be gathered in the userspace > > +The same information might be gathered in the userspace > > with the help of > > .Dq Nm vmstat Fl z . > > .\" > > > > Modified: head/sys/kern/kern_malloc.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/sys/kern/kern_malloc.c Fri Oct 11 00:02:00 2019 > (r35342 > > 8) > > +++ head/sys/kern/kern_malloc.c Fri Oct 11 01:31:31 2019 > (r35342 > > 9) > > @@ -1205,35 +1205,90 @@ restart: > > } > > > > #ifdef DDB > > +static int64_t > > +get_malloc_stats(const struct malloc_type_internal *mtip, uint64_t > *allocs, > > + uint64_t *inuse) > > +{ > > + const struct malloc_type_stats *mtsp; > > + uint64_t frees, alloced, freed; > > + int i; > > + > > + *allocs =3D 0; > > + frees =3D 0; > > + alloced =3D 0; > > + freed =3D 0; > > + for (i =3D 0; i <=3D mp_maxid; i++) { > > + mtsp =3D zpcpu_get_cpu(mtip->mti_stats, i); > > + > > + *allocs +=3D mtsp->mts_numallocs; > > + frees +=3D mtsp->mts_numfrees; > > + alloced +=3D mtsp->mts_memalloced; > > + freed +=3D mtsp->mts_memfreed; > > + } > > + *inuse =3D *allocs - frees; > > + return (alloced - freed); > > +} > > + > > DB_SHOW_COMMAND(malloc, db_show_malloc) > > { > > - struct malloc_type_internal *mtip; > > - struct malloc_type_stats *mtsp; > > + const char *fmt_hdr, *fmt_entry; > > struct malloc_type *mtp; > > - uint64_t allocs, frees; > > - uint64_t alloced, freed; > > - int i; > > + uint64_t allocs, inuse; > > + int64_t size; > > + /* variables for sorting */ > > + struct malloc_type *last_mtype, *cur_mtype; > > + int64_t cur_size, last_size; > > + int ties; > > > > - db_printf("%18s %12s %12s %12s\n", "Type", "InUse", "MemUse", > > - "Requests"); > > - for (mtp =3D kmemstatistics; mtp !=3D NULL; mtp =3D mtp->ks_next)= { > > - mtip =3D (struct malloc_type_internal *)mtp->ks_handle; > > - allocs =3D 0; > > - frees =3D 0; > > - alloced =3D 0; > > - freed =3D 0; > > - for (i =3D 0; i <=3D mp_maxid; i++) { > > - mtsp =3D zpcpu_get_cpu(mtip->mti_stats, i); > > - allocs +=3D mtsp->mts_numallocs; > > - frees +=3D mtsp->mts_numfrees; > > - alloced +=3D mtsp->mts_memalloced; > > - freed +=3D mtsp->mts_memfreed; > > + if (modif[0] =3D=3D 'i') { > > + fmt_hdr =3D "%s,%s,%s,%s\n"; > > + fmt_entry =3D "\"%s\",%ju,%jdK,%ju\n"; > > + } else { > > + fmt_hdr =3D "%18s %12s %12s %12s\n"; > > + fmt_entry =3D "%18s %12ju %12jdK %12ju\n"; > > + } > > + > > + db_printf(fmt_hdr, "Type", "InUse", "MemUse", "Requests"); > > + > > + /* Select sort, largest size first. */ > > + last_mtype =3D NULL; > > + last_size =3D INT64_MAX; > > + for (;;) { > > + cur_mtype =3D NULL; > > + cur_size =3D -1; > > + ties =3D 0; > > + > > + for (mtp =3D kmemstatistics; mtp !=3D NULL; mtp =3D > mtp->ks_next) { > > + /* > > + * In the case of size ties, print out mtypes > > + * in the order they are encountered. That is, > > + * when we encounter the most recently output > > + * mtype, we have already printed all preceding > > + * ties, and we must print all following ties. > > + */ > > + if (mtp =3D=3D last_mtype) { > > + ties =3D 1; > > + continue; > > + } > > + size =3D get_malloc_stats(mtp->ks_handle, &allocs= , > > + &inuse); > > + if (size > cur_size && size < last_size + ties) { > > + cur_size =3D size; > > + cur_mtype =3D mtp; > > + } > > } > > - db_printf("%18s %12ju %12juK %12ju\n", > > - mtp->ks_shortdesc, allocs - frees, > > - (alloced - freed + 1023) / 1024, allocs); > > + if (cur_mtype =3D=3D NULL) > > + break; > > + > > + size =3D get_malloc_stats(cur_mtype->ks_handle, &allocs, > &inuse); > > + db_printf(fmt_entry, cur_mtype->ks_shortdesc, inuse, > > + howmany(size, 1024), allocs); > > + > > if (db_pager_quit) > > break; > > + > > + last_mtype =3D cur_mtype; > > + last_size =3D cur_size; > > } > > } > > > > > > Modified: head/sys/vm/uma_core.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/sys/vm/uma_core.c Fri Oct 11 00:02:00 2019 (r353428) > > +++ head/sys/vm/uma_core.c Fri Oct 11 01:31:31 2019 (r353429) > > @@ -4341,39 +4341,100 @@ uma_dbg_free(uma_zone_t zone, uma_slab_t slab, > void > > *i > > #endif /* INVARIANTS */ > > > > #ifdef DDB > > +static int64_t > > +get_uma_stats(uma_keg_t kz, uma_zone_t z, uint64_t *allocs, uint64_t > *used, > > + uint64_t *sleeps, uint64_t *xdomain, long *cachefree) > > xdomain and cachefree are reversed by callers of this function. Probably > simpler to change the definition here than the two use instances below. > > > +{ > > + uint64_t frees; > > + int i; > > + > > + if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { > > + *allocs =3D counter_u64_fetch(z->uz_allocs); > > + frees =3D counter_u64_fetch(z->uz_frees); > > + *sleeps =3D z->uz_sleeps; > > + *cachefree =3D 0; > > + *xdomain =3D 0; > > + } else > > + uma_zone_sumstat(z, cachefree, allocs, &frees, sleeps, > > + xdomain); > > + if (!((z->uz_flags & UMA_ZONE_SECONDARY) && > > + (LIST_FIRST(&kz->uk_zones) !=3D z))) > > + *cachefree +=3D kz->uk_free; > > + for (i =3D 0; i < vm_ndomains; i++) > > + *cachefree +=3D z->uz_domain[i].uzd_nitems; > > + *used =3D *allocs - frees; > > + return (((int64_t)*used + *cachefree) * kz->uk_size); > > +} > > + > > DB_SHOW_COMMAND(uma, db_show_uma) > > { > > + const char *fmt_hdr, *fmt_entry; > > uma_keg_t kz; > > uma_zone_t z; > > - uint64_t allocs, frees, sleeps, xdomain; > > + uint64_t allocs, used, sleeps, xdomain; > > long cachefree; > > - int i; > > + /* variables for sorting */ > > + uma_keg_t cur_keg; > > + uma_zone_t cur_zone, last_zone; > > + int64_t cur_size, last_size, size; > > + int ties; > > > > - db_printf("%18s %8s %8s %8s %12s %8s %8s %8s\n", "Zone", "Size", > "Used" > > , > > - "Free", "Requests", "Sleeps", "Bucket", "XFree"); > > - LIST_FOREACH(kz, &uma_kegs, uk_link) { > > - LIST_FOREACH(z, &kz->uk_zones, uz_link) { > > - if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { > > - allocs =3D counter_u64_fetch(z->uz_allocs= ); > > - frees =3D counter_u64_fetch(z->uz_frees); > > - sleeps =3D z->uz_sleeps; > > - cachefree =3D 0; > > - } else > > - uma_zone_sumstat(z, &cachefree, &allocs, > > - &frees, &sleeps, &xdomain); > > - if (!((z->uz_flags & UMA_ZONE_SECONDARY) && > > - (LIST_FIRST(&kz->uk_zones) !=3D z))) > > - cachefree +=3D kz->uk_free; > > - for (i =3D 0; i < vm_ndomains; i++) > > - cachefree +=3D z->uz_domain[i].uzd_nitems= ; > > + /* /i option produces machine-parseable CSV output */ > > + if (modif[0] =3D=3D 'i') { > > + fmt_hdr =3D "%s,%s,%s,%s,%s,%s,%s,%s,%s\n"; > > + fmt_entry =3D "\"%s\",%ju,%jd,%ld,%ju,%ju,%u,%jd,%ju\n"; > > + } else { > > + fmt_hdr =3D "%18s %6s %7s %7s %11s %7s %7s %10s %8s\n"; > > + fmt_entry =3D "%18s %6ju %7jd %7ld %11ju %7ju %7u %10jd > %8ju\n"; > > + } > > > > - db_printf("%18s %8ju %8jd %8ld %12ju %8ju %8u > %8ju\n", > > - z->uz_name, (uintmax_t)kz->uk_size, > > - (intmax_t)(allocs - frees), cachefree, > > - (uintmax_t)allocs, sleeps, z->uz_count, > xdomain); > > - if (db_pager_quit) > > - return; > > + db_printf(fmt_hdr, "Zone", "Size", "Used", "Free", "Requests", > > + "Sleeps", "Bucket", "Total Mem", "XFree"); > > + > > + /* Sort the zones with largest size first. */ > > + last_zone =3D NULL; > > + last_size =3D INT64_MAX; > > + for (;;) { > > + cur_zone =3D NULL; > > + cur_size =3D -1; > > + ties =3D 0; > > + LIST_FOREACH(kz, &uma_kegs, uk_link) { > > + LIST_FOREACH(z, &kz->uk_zones, uz_link) { > > + /* > > + * In the case of size ties, print out > zones > > + * in the order they are encountered. > That is, > > + * when we encounter the most recently > output > > + * zone, we have already printed all > preceding > > + * ties, and we must print all following > ties. > > + */ > > + if (z =3D=3D last_zone) { > > + ties =3D 1; > > + continue; > > + } > > + size =3D get_uma_stats(kz, z, &allocs, &u= sed, > > + &sleeps, &cachefree, &xdomain); > > cachefree and xdomain are reversed from the function header above. > > > + if (size > cur_size && size < last_size + > ties) > > + { > > + cur_size =3D size; > > + cur_zone =3D z; > > + cur_keg =3D kz; > > + } > > + } > > } > > + if (cur_zone =3D=3D NULL) > > + break; > > + > > + size =3D get_uma_stats(cur_keg, cur_zone, &allocs, &used, > > + &sleeps, &cachefree, &xdomain); > > cachefree and xdomain are reversed from the function header above. > > > + db_printf(fmt_entry, cur_zone->uz_name, > > + (uintmax_t)cur_keg->uk_size, (intmax_t)used, cachefre= e, > > + (uintmax_t)allocs, (uintmax_t)sleeps, > > + (unsigned)cur_zone->uz_count, (intmax_t)size, xdomain= ); > > + > > + if (db_pager_quit) > > + return; > > + last_zone =3D cur_zone; > > + last_size =3D cur_size; > > } > > } > > > > > > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > From owner-svn-src-head@freebsd.org Fri Oct 11 06:08:05 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E3B713E49E; Fri, 11 Oct 2019 06:08:05 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.171]) (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 46qHYx2jbJz42d3; Fri, 11 Oct 2019 06:08:05 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f171.google.com with SMTP id i16so7058205oie.4; Thu, 10 Oct 2019 23:08:05 -0700 (PDT) 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=iJ/9Vwm7iQlVqFQXN4dfdAyWQc3W+orWESRAGNV1biU=; b=k3evkgo8pm+SJQ0WlEEj0E8wTv15ddh36+/ObKjVBCUsQABSixAweQbL2eYhI7UW+Q gtok+95xG7Zz30dJGoSvHkAMhKyUqlg6AUj+RC8+nnDdwITRomgGeCvI/rYugVn4TUS4 IeJOHRM0ZBM7IaKmhsO1gg5p+NWbr1FURm622oRfJ2fJs3CXpvP6NN0Ksm5UYJjQ3CWm Q3KhoYGKhGUnXtm5b7lI76uLODU46mc4/zVkb2rT03XovfEyxVBsXuCN59Jima2gAxLQ GPyMRSBkgavRJVst+FjYVILT6Qk3Kev2tAIBN+39wM6sY7UpA5lxaxjWFy5jPhxVLBfJ Jm0A== X-Gm-Message-State: APjAAAXCUMDcNBxGK8rZO4CC+h9iuSouWULIKjTOakdS/8eRfFG69+zU xRfSY61xrMukK2s5yhBlSowlGi1z X-Google-Smtp-Source: APXvYqz77HglZ4AQMFDFqSEtHckFEnxsBcUDBGzCxzorfBfl9bE2Lt8Jwxf5A/glU47MI0r+rdgo4A== X-Received: by 2002:aca:5ed4:: with SMTP id s203mr10494129oib.149.1570774083834; Thu, 10 Oct 2019 23:08:03 -0700 (PDT) Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com. [209.85.210.41]) by smtp.gmail.com with ESMTPSA id 13sm2270761oij.25.2019.10.10.23.08.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Oct 2019 23:08:03 -0700 (PDT) Received: by mail-ot1-f41.google.com with SMTP id 41so6986554oti.12; Thu, 10 Oct 2019 23:08:03 -0700 (PDT) X-Received: by 2002:a9d:708e:: with SMTP id l14mr11155531otj.135.1570774083440; Thu, 10 Oct 2019 23:08:03 -0700 (PDT) MIME-Version: 1.0 References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> In-Reply-To: <201910101629.x9AGTDkJ024957@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 10 Oct 2019 23:07:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r353408 - head To: Brooks Davis Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 46qHYx2jbJz42d3 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)[]; TAGGED_FROM(0.00)[] 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 06:08:05 -0000 Fwiw, this doesn=E2=80=99t seem to fix the NO_CLEAN build for amd64-xtoolch= ain-gcc. On Thu, Oct 10, 2019 at 09:29 Brooks Davis wrote: > Author: brooks > Date: Thu Oct 10 16:29:13 2019 > New Revision: 353408 > URL: https://svnweb.freebsd.org/changeset/base/353408 > > Log: > Fix -DNO_CLEAN build across r353340 and r353381 > > opensolaris_atomic.S is now only used on i386 with opensolaris_atomic.c > used on other platforms. After r353381 it doesn't exist on those > platforms so the stale dependency would result in a build error. > > Modified: > head/Makefile.inc1 > > Modified: head/Makefile.inc1 > > =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/Makefile.inc1 Thu Oct 10 16:04:43 2019 (r353407) > +++ head/Makefile.inc1 Thu Oct 10 16:29:13 2019 (r353408) > @@ -949,7 +949,18 @@ _sanity_check: .PHONY .MAKE > # replacing generated files. Handle these cases here in an ad-hoc > fashion. > _cleanobj_fast_depend_hack: .PHONY > # Syscall stubs rewritten in C and obsolete MD assembly implementations > -# Date SVN Rev Syscalls > +# Date SVN Rev Syscalls/Changes > +# 20191009 r353340 removal of opensolaris_atomic.S (also r353381) > +.if ${MACHINE} !=3D i386 > +.for f in opensolaris_atomic > + @if [ -e "${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o" ] && \ > + egrep -qw 'opensolaris_atomic\.S' > ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o; then \ > + echo "Removing stale dependencies for opensolaris_atomic"= ; > \ > + rm -f ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.* \ > + > ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/cddl/lib/libzpool/.depend.${f}.*}; \ > + fi > +.endfor > +.endif > # 20190925 r352689 removal of obsolete i386 memchr.S > .for f in memchr > @if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \ > From owner-svn-src-head@freebsd.org Fri Oct 11 06:22:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E883A13EFF8; Fri, 11 Oct 2019 06:22:10 +0000 (UTC) (envelope-from agapon@gmail.com) Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) (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 46qHt95cPGz43PN; Fri, 11 Oct 2019 06:22:09 +0000 (UTC) (envelope-from agapon@gmail.com) Received: by mail-lj1-f173.google.com with SMTP id d1so8568107ljl.13; Thu, 10 Oct 2019 23:22:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=3ulh3n4BblJJQo0SDzRYN/tQBa5Jmpb2BfIuTPdSRQM=; b=FTGc8AxaTIVT/2H7jGfYatCuKlq15BJD9EU0567/Ytlo6b+PhZMBFdssJmFADT7DuT 3nL1Ywk7aZ7wH+RQR16a9KuqcLfeciYoWnh4D9X7VJxfcurataWPcpTst+UueHwrnrDG xOBuDpacKFxpknI6Ridu4RTBDt81WBxwqjBk5sPzPPRrV/C9S5+XMa/ncTshdtdjl9/w j0huUMjvIRi6Xdp+fk9u03HCsoIFo6Np+zJHML5Bwv8bv/WDY3oUGAMycgnDrhjNQjJM +FaXvqVV155umZ484SrRtZMvYC7YP9QnBoe6L34qDf24CgxsowhdDzhEJgAVFYQHiBGM u88g== X-Gm-Message-State: APjAAAXhCHQ212nexTKvrDXtjVYZOoCxUzcUURuX/bvT+V4Sf4WTbrN9 yMwa2YcYVZgY3FcMoXl2UNbmeabz0/g= X-Google-Smtp-Source: APXvYqwXiPTXyAoShbnYT/S9XXju9/6CnwkWG1phR4EKM1WLAeDab6LnDMauJPk45ive2OVyzEvlUw== X-Received: by 2002:a2e:9a88:: with SMTP id p8mr7556917lji.249.1570774927298; Thu, 10 Oct 2019 23:22:07 -0700 (PDT) Received: from [192.168.0.88] (east.meadow.volia.net. [93.72.151.96]) by smtp.googlemail.com with ESMTPSA id y4sm1784973ljd.82.2019.10.10.23.22.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Oct 2019 23:22:06 -0700 (PDT) Subject: Re: svn commit: r353408 - head To: Brooks Davis , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> From: Andriy Gapon Openpgp: preference=signencrypt Autocrypt: addr=avg@FreeBSD.org; prefer-encrypt=mutual; keydata= mQINBFm4LIgBEADNB/3lT7f15UKeQ52xCFQx/GqHkSxEdVyLFZTmY3KyNPQGBtyvVyBfprJ7 mAeXZWfhat6cKNRAGZcL5EmewdQuUfQfBdYmKjbw3a9GFDsDNuhDA2QwFt8BmkiVMRYyvI7l N0eVzszWCUgdc3qqM6qqcgBaqsVmJluwpvwp4ZBXmch5BgDDDb1MPO8AZ2QZfIQmplkj8Y6Z AiNMknkmgaekIINSJX8IzRzKD5WwMsin70psE8dpL/iBsA2cpJGzWMObVTtCxeDKlBCNqM1i gTXta1ukdUT7JgLEFZk9ceYQQMJJtUwzWu1UHfZn0Fs29HTqawfWPSZVbulbrnu5q55R4PlQ /xURkWQUTyDpqUvb4JK371zhepXiXDwrrpnyyZABm3SFLkk2bHlheeKU6Yql4pcmSVym1AS4 dV8y0oHAfdlSCF6tpOPf2+K9nW1CFA8b/tw4oJBTtfZ1kxXOMdyZU5fiG7xb1qDgpQKgHUX8 7Rd2T1UVLVeuhYlXNw2F+a2ucY+cMoqz3LtpksUiBppJhw099gEXehcN2JbUZ2TueJdt1FdS ztnZmsHUXLxrRBtGwqnFL7GSd6snpGIKuuL305iaOGODbb9c7ne1JqBbkw1wh8ci6vvwGlzx rexzimRaBzJxlkjNfMx8WpCvYebGMydNoeEtkWldtjTNVsUAtQARAQABtB5BbmRyaXkgR2Fw b24gPGF2Z0BGcmVlQlNELm9yZz6JAlQEEwEIAD4WIQS+LEO7ngQnXA4Bjr538m7TUc1yjwUC WbgsiAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRB38m7TUc1yj+JAEACV l9AK/nOWAt/9cufV2fRj0hdOqB1aCshtSrwHk/exXsDa4/FkmegxXQGY+3GWX3deIyesbVRL rYdtdK0dqJyT1SBqXK1h3/at9rxr9GQA6KWOxTjUFURsU7ok/6SIlm8uLRPNKO+yq0GDjgaO LzN+xykuBA0FlhQAXJnpZLcVfPJdWv7sSHGedL5ln8P8rxR+XnmsA5TUaaPcbhTB+mG+iKFj GghASDSfGqLWFPBlX/fpXikBDZ1gvOr8nyMY9nXhgfXpq3B6QCRYKPy58ChrZ5weeJZ29b7/ QdEO8NFNWHjSD9meiLdWQaqo9Y7uUxN3wySc/YUZxtS0bhAd8zJdNPsJYG8sXgKjeBQMVGuT eCAJFEYJqbwWvIXMfVWop4+O4xB+z2YE3jAbG/9tB/GSnQdVSj3G8MS80iLS58frnt+RSEw/ psahrfh0dh6SFHttE049xYiC+cM8J27Aaf0i9RflyITq57NuJm+AHJoU9SQUkIF0nc6lfA+o JRiyRlHZHKoRQkIg4aiKaZSWjQYRl5Txl0IZUP1dSWMX4s3XTMurC/pnja45dge/4ESOtJ9R 8XuIWg45Oq6MeIWdjKddGhRj3OohsltKgkEU3eLKYtB6qRTQypHHUawCXz88uYt5e3w4V16H lCpSTZV/EVHnNe45FVBlvK7k7HFfDDkryLkCDQRZuCyIARAAlq0slcsVboY/+IUJdcbEiJRW be9HKVz4SUchq0z9MZPX/0dcnvz/gkyYA+OuM78dNS7Mbby5dTvOqfpLJfCuhaNYOhlE0wY+ 1T6Tf1f4c/uA3U/YiadukQ3+6TJuYGAdRZD5EqYFIkreARTVWg87N9g0fT9BEqLw9lJtEGDY EWUE7L++B8o4uu3LQFEYxcrb4K/WKmgtmFcm77s0IKDrfcX4doV92QTIpLiRxcOmCC/OCYuO jB1oaaqXQzZrCutXRK0L5XN1Y1PYjIrEzHMIXmCDlLYnpFkK+itlXwlE2ZQxkfMruCWdQXye syl2fynAe8hvp7Mms9qU2r2K9EcJiR5N1t1C2/kTKNUhcRv7Yd/vwusK7BqJbhlng5ZgRx0m WxdntU/JLEntz3QBsBsWM9Y9wf2V4tLv6/DuDBta781RsCB/UrU2zNuOEkSixlUiHxw1dccI 6CVlaWkkJBxmHX22GdDFrcjvwMNIbbyfQLuBq6IOh8nvu9vuItup7qemDG3Ms6TVwA7BD3j+ 3fGprtyW8Fd/RR2bW2+LWkMrqHffAr6Y6V3h5kd2G9Q8ZWpEJk+LG6Mk3fhZhmCnHhDu6CwN MeUvxXDVO+fqc3JjFm5OxhmfVeJKrbCEUJyM8ESWLoNHLqjywdZga4Q7P12g8DUQ1mRxYg/L HgZY3zfKOqcAEQEAAYkCPAQYAQgAJhYhBL4sQ7ueBCdcDgGOvnfybtNRzXKPBQJZuCyIAhsM BQkFo5qAAAoJEHfybtNRzXKPBVwQAKfFy9P7N3OsLDMB56A4Kf+ZT+d5cIx0Yiaf4n6w7m3i ImHHHk9FIetI4Xe54a2IXh4Bq5UkAGY0667eIs+Z1Ea6I2i27Sdo7DxGwq09Qnm/Y65ADvXs 3aBvokCcm7FsM1wky395m8xUos1681oV5oxgqeRI8/76qy0hD9WR65UW+HQgZRIcIjSel9vR XDaD2HLGPTTGr7u4v00UeTMs6qvPsa2PJagogrKY8RXdFtXvweQFz78NbXhluwix2Tb9ETPk LIpDrtzV73CaE2aqBG/KrboXT2C67BgFtnk7T7Y7iKq4/XvEdDWscz2wws91BOXuMMd4c/c4 OmGW9m3RBLufFrOag1q5yUS9QbFfyqL6dftJP3Zq/xe+mr7sbWbhPVCQFrH3r26mpmy841ym dwQnNcsbIGiBASBSKksOvIDYKa2Wy8htPmWFTEOPRpFXdGQ27awcjjnB42nngyCK5ukZDHi6 w0qK5DNQQCkiweevCIC6wc3p67jl1EMFY5+z+zdTPb3h7LeVnGqW0qBQl99vVFgzLxchKcl0 R/paSFgwqXCZhAKMuUHncJuynDOP7z5LirUeFI8qsBAJi1rXpQoLJTVcW72swZ42IdPiboqx NbTMiNOiE36GqMcTPfKylCbF45JNX4nF9ElM0E+Y8gi4cizJYBRr2FBJgay0b9Cp Message-ID: <3f2670d8-2192-1ba4-a653-96f9dda58c6a@FreeBSD.org> Date: Fri, 11 Oct 2019 09:22:05 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <201910101629.x9AGTDkJ024957@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46qHt95cPGz43PN X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of agapon@gmail.com designates 209.85.208.173 as permitted sender) smtp.mailfrom=agapon@gmail.com X-Spamd-Result: default: False [-3.19 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[FreeBSD.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-1.19)[ip: (-0.52), ipnet: 209.85.128.0/17(-3.25), asn: 15169(-2.13), country: US(-0.05)]; RCVD_IN_DNSWL_NONE(0.00)[173.208.85.209.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FORGED_SENDER(0.30)[avg@FreeBSD.org,agapon@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[173.208.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; 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)[avg@FreeBSD.org,agapon@gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[96.151.72.93.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 06:22:11 -0000 On 10/10/2019 19:29, Brooks Davis wrote: > Author: brooks > Date: Thu Oct 10 16:29:13 2019 > New Revision: 353408 > URL: https://svnweb.freebsd.org/changeset/base/353408 > > Log: > Fix -DNO_CLEAN build across r353340 and r353381 > > opensolaris_atomic.S is now only used on i386 with opensolaris_atomic.c > used on other platforms. After r353381 it doesn't exist on those > platforms so the stale dependency would result in a build error. Thank you very much! I didn't realize this was needed. It would be nice if the build system could remove or ignore depend files for missing source files. -- Andriy Gapon From owner-svn-src-head@freebsd.org Fri Oct 11 06:25:01 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 73D1C13F0E8; Fri, 11 Oct 2019 06:25:01 +0000 (UTC) (envelope-from agapon@gmail.com) Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) (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 46qHxS0rfVz43Yb; Fri, 11 Oct 2019 06:24:59 +0000 (UTC) (envelope-from agapon@gmail.com) Received: by mail-lj1-f177.google.com with SMTP id v24so8640096ljj.3; Thu, 10 Oct 2019 23:24:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=YAcbQecofw9aVjwH4Eu32R12E4sQkjDg2uqCGRqhEj0=; b=Uw3bvNQtA9Gp685bldiBlVu68AnCzPf0ozpItQ6c22mYnAR5IVRulpqjQVsLH1gqaS s/RdFmRq5s2Mxg+dbJMe0uHfze9UBspmlXrwCo4jESlI7OGtdn4QUY0s+abTCp27S+Wk q93v09gpbD+E14XDMMAlPC5UGykWFKJj1PEBkT2wyR6n167zZ2c4IMZh+6EeTMMfUdbf Fe0/adNJ0q79sytOag5ywF66lwc/ySwnW2+lDWw2W3FC5BVlPIbeJBHRtb6zNpadi6xX Een9ix/U4LLASwMfokh39QMw8rDWLuIsYxVB8NGaulRKaMNLeq2oaXkwAVvKmu4KsgxJ a6rA== X-Gm-Message-State: APjAAAWIXajPgKoJUX8dZTsdOZzwBDerkoliFicQ4FvBWmUy3y4/pMMn +D/lYytAcAXtIDWGipiaOPxjzH/xHLo= X-Google-Smtp-Source: APXvYqybyiGuWohiZskP9f8bO+CrAGYEpjfHOzVrIIQgwZsFDtvZXf8zgyQ3m3KqaloRxfAC5JnszQ== X-Received: by 2002:a2e:87ca:: with SMTP id v10mr8218826ljj.43.1570775098018; Thu, 10 Oct 2019 23:24:58 -0700 (PDT) Received: from [192.168.0.88] (east.meadow.volia.net. [93.72.151.96]) by smtp.googlemail.com with ESMTPSA id f6sm1872805lfl.78.2019.10.10.23.24.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Oct 2019 23:24:57 -0700 (PDT) Subject: Re: svn commit: r353408 - head To: cem@freebsd.org, Brooks Davis Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> From: Andriy Gapon Openpgp: preference=signencrypt Autocrypt: addr=avg@FreeBSD.org; prefer-encrypt=mutual; keydata= mQINBFm4LIgBEADNB/3lT7f15UKeQ52xCFQx/GqHkSxEdVyLFZTmY3KyNPQGBtyvVyBfprJ7 mAeXZWfhat6cKNRAGZcL5EmewdQuUfQfBdYmKjbw3a9GFDsDNuhDA2QwFt8BmkiVMRYyvI7l N0eVzszWCUgdc3qqM6qqcgBaqsVmJluwpvwp4ZBXmch5BgDDDb1MPO8AZ2QZfIQmplkj8Y6Z AiNMknkmgaekIINSJX8IzRzKD5WwMsin70psE8dpL/iBsA2cpJGzWMObVTtCxeDKlBCNqM1i gTXta1ukdUT7JgLEFZk9ceYQQMJJtUwzWu1UHfZn0Fs29HTqawfWPSZVbulbrnu5q55R4PlQ /xURkWQUTyDpqUvb4JK371zhepXiXDwrrpnyyZABm3SFLkk2bHlheeKU6Yql4pcmSVym1AS4 dV8y0oHAfdlSCF6tpOPf2+K9nW1CFA8b/tw4oJBTtfZ1kxXOMdyZU5fiG7xb1qDgpQKgHUX8 7Rd2T1UVLVeuhYlXNw2F+a2ucY+cMoqz3LtpksUiBppJhw099gEXehcN2JbUZ2TueJdt1FdS ztnZmsHUXLxrRBtGwqnFL7GSd6snpGIKuuL305iaOGODbb9c7ne1JqBbkw1wh8ci6vvwGlzx rexzimRaBzJxlkjNfMx8WpCvYebGMydNoeEtkWldtjTNVsUAtQARAQABtB5BbmRyaXkgR2Fw b24gPGF2Z0BGcmVlQlNELm9yZz6JAlQEEwEIAD4WIQS+LEO7ngQnXA4Bjr538m7TUc1yjwUC WbgsiAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRB38m7TUc1yj+JAEACV l9AK/nOWAt/9cufV2fRj0hdOqB1aCshtSrwHk/exXsDa4/FkmegxXQGY+3GWX3deIyesbVRL rYdtdK0dqJyT1SBqXK1h3/at9rxr9GQA6KWOxTjUFURsU7ok/6SIlm8uLRPNKO+yq0GDjgaO LzN+xykuBA0FlhQAXJnpZLcVfPJdWv7sSHGedL5ln8P8rxR+XnmsA5TUaaPcbhTB+mG+iKFj GghASDSfGqLWFPBlX/fpXikBDZ1gvOr8nyMY9nXhgfXpq3B6QCRYKPy58ChrZ5weeJZ29b7/ QdEO8NFNWHjSD9meiLdWQaqo9Y7uUxN3wySc/YUZxtS0bhAd8zJdNPsJYG8sXgKjeBQMVGuT eCAJFEYJqbwWvIXMfVWop4+O4xB+z2YE3jAbG/9tB/GSnQdVSj3G8MS80iLS58frnt+RSEw/ psahrfh0dh6SFHttE049xYiC+cM8J27Aaf0i9RflyITq57NuJm+AHJoU9SQUkIF0nc6lfA+o JRiyRlHZHKoRQkIg4aiKaZSWjQYRl5Txl0IZUP1dSWMX4s3XTMurC/pnja45dge/4ESOtJ9R 8XuIWg45Oq6MeIWdjKddGhRj3OohsltKgkEU3eLKYtB6qRTQypHHUawCXz88uYt5e3w4V16H lCpSTZV/EVHnNe45FVBlvK7k7HFfDDkryLkCDQRZuCyIARAAlq0slcsVboY/+IUJdcbEiJRW be9HKVz4SUchq0z9MZPX/0dcnvz/gkyYA+OuM78dNS7Mbby5dTvOqfpLJfCuhaNYOhlE0wY+ 1T6Tf1f4c/uA3U/YiadukQ3+6TJuYGAdRZD5EqYFIkreARTVWg87N9g0fT9BEqLw9lJtEGDY EWUE7L++B8o4uu3LQFEYxcrb4K/WKmgtmFcm77s0IKDrfcX4doV92QTIpLiRxcOmCC/OCYuO jB1oaaqXQzZrCutXRK0L5XN1Y1PYjIrEzHMIXmCDlLYnpFkK+itlXwlE2ZQxkfMruCWdQXye syl2fynAe8hvp7Mms9qU2r2K9EcJiR5N1t1C2/kTKNUhcRv7Yd/vwusK7BqJbhlng5ZgRx0m WxdntU/JLEntz3QBsBsWM9Y9wf2V4tLv6/DuDBta781RsCB/UrU2zNuOEkSixlUiHxw1dccI 6CVlaWkkJBxmHX22GdDFrcjvwMNIbbyfQLuBq6IOh8nvu9vuItup7qemDG3Ms6TVwA7BD3j+ 3fGprtyW8Fd/RR2bW2+LWkMrqHffAr6Y6V3h5kd2G9Q8ZWpEJk+LG6Mk3fhZhmCnHhDu6CwN MeUvxXDVO+fqc3JjFm5OxhmfVeJKrbCEUJyM8ESWLoNHLqjywdZga4Q7P12g8DUQ1mRxYg/L HgZY3zfKOqcAEQEAAYkCPAQYAQgAJhYhBL4sQ7ueBCdcDgGOvnfybtNRzXKPBQJZuCyIAhsM BQkFo5qAAAoJEHfybtNRzXKPBVwQAKfFy9P7N3OsLDMB56A4Kf+ZT+d5cIx0Yiaf4n6w7m3i ImHHHk9FIetI4Xe54a2IXh4Bq5UkAGY0667eIs+Z1Ea6I2i27Sdo7DxGwq09Qnm/Y65ADvXs 3aBvokCcm7FsM1wky395m8xUos1681oV5oxgqeRI8/76qy0hD9WR65UW+HQgZRIcIjSel9vR XDaD2HLGPTTGr7u4v00UeTMs6qvPsa2PJagogrKY8RXdFtXvweQFz78NbXhluwix2Tb9ETPk LIpDrtzV73CaE2aqBG/KrboXT2C67BgFtnk7T7Y7iKq4/XvEdDWscz2wws91BOXuMMd4c/c4 OmGW9m3RBLufFrOag1q5yUS9QbFfyqL6dftJP3Zq/xe+mr7sbWbhPVCQFrH3r26mpmy841ym dwQnNcsbIGiBASBSKksOvIDYKa2Wy8htPmWFTEOPRpFXdGQ27awcjjnB42nngyCK5ukZDHi6 w0qK5DNQQCkiweevCIC6wc3p67jl1EMFY5+z+zdTPb3h7LeVnGqW0qBQl99vVFgzLxchKcl0 R/paSFgwqXCZhAKMuUHncJuynDOP7z5LirUeFI8qsBAJi1rXpQoLJTVcW72swZ42IdPiboqx NbTMiNOiE36GqMcTPfKylCbF45JNX4nF9ElM0E+Y8gi4cizJYBRr2FBJgay0b9Cp Message-ID: <1ba0202e-698d-7cc4-1907-59d75cfe4332@FreeBSD.org> Date: Fri, 11 Oct 2019 09:24:56 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46qHxS0rfVz43Yb X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of agapon@gmail.com designates 209.85.208.177 as permitted sender) smtp.mailfrom=agapon@gmail.com X-Spamd-Result: default: False [-3.18 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(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]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[FreeBSD.org]; RCPT_COUNT_FIVE(0.00)[5]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-1.18)[ip: (-0.44), ipnet: 209.85.128.0/17(-3.25), asn: 15169(-2.13), country: US(-0.05)]; RCVD_IN_DNSWL_NONE(0.00)[177.208.85.209.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FORGED_SENDER(0.30)[avg@FreeBSD.org,agapon@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[177.208.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)[avg@FreeBSD.org,agapon@gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[96.151.72.93.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 06:25:01 -0000 On 11/10/2019 09:07, Conrad Meyer wrote: > Fwiw, this doesn’t seem to fix the NO_CLEAN build for amd64-xtoolchain-gcc. Does a clean build work for that configuration? I looked at one of CI builds and it had this: In file included from /workspace/src/contrib/libc++/include/__debug:26:0, from /workspace/src/contrib/libc++/include/utility:206, from /workspace/src/contrib/libc++/include/algorithm:642, from /workspace/src/contrib/libc++/src/algorithm.cpp:9: /workspace/src/contrib/libc++/include/cstdio:156:9: error: '::gets' has not been declared using ::gets; I recall seeing a similar problem for riscv too. -- Andriy Gapon From owner-svn-src-head@freebsd.org Fri Oct 11 08:04:22 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2114E142153; Fri, 11 Oct 2019 08:04:22 +0000 (UTC) (envelope-from dim@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 46qL856z4gz48GQ; Fri, 11 Oct 2019 08:04:21 +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 B7F3C718B; Fri, 11 Oct 2019 08:04:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [192.168.1.58] (92-111-45-100.static.v4.ziggozakelijk.nl [92.111.45.100]) (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 9EF25E47E; Fri, 11 Oct 2019 10:04:19 +0200 (CEST) From: Dimitry Andric Message-Id: <137352B5-82C6-4953-9233-282A92FCAFC8@FreeBSD.org> Content-Type: multipart/signed; boundary="Apple-Mail=_AD378BAC-57C5-4AEB-A26A-5432458F29B1"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r353408 - head Date: Fri, 11 Oct 2019 10:04:11 +0200 In-Reply-To: <1ba0202e-698d-7cc4-1907-59d75cfe4332@FreeBSD.org> Cc: cem@freebsd.org, Brooks Davis , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Andriy Gapon References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> <1ba0202e-698d-7cc4-1907-59d75cfe4332@FreeBSD.org> X-Mailer: Apple Mail (2.3445.104.11) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 08:04:22 -0000 --Apple-Mail=_AD378BAC-57C5-4AEB-A26A-5432458F29B1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On 11 Oct 2019, at 08:24, Andriy Gapon wrote: >=20 > On 11/10/2019 09:07, Conrad Meyer wrote: >> Fwiw, this doesn=E2=80=99t seem to fix the NO_CLEAN build for = amd64-xtoolchain-gcc. >=20 > Does a clean build work for that configuration? > I looked at one of CI builds and it had this: > In file included from = /workspace/src/contrib/libc++/include/__debug:26:0, > from = /workspace/src/contrib/libc++/include/utility:206, > from = /workspace/src/contrib/libc++/include/algorithm:642, > from = /workspace/src/contrib/libc++/src/algorithm.cpp:9: > /workspace/src/contrib/libc++/include/cstdio:156:9: error: '::gets' = has not been > declared > using ::gets; >=20 > I recall seeing a similar problem for riscv too. Yes, this is an issue with the external toolchains, which pass the wrong version of __FreeBSD__. They should set the value to 13, not 12. -Dimitry --Apple-Mail=_AD378BAC-57C5-4AEB-A26A-5432458F29B1 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 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXaA3ewAKCRCwXqMKLiCW o0HZAJsF0Gc92LHGZ9cTMGItqxjSEk1kegCdGjc0rZTLIkKLMf2oAnlbT10d2tw= =9F/3 -----END PGP SIGNATURE----- --Apple-Mail=_AD378BAC-57C5-4AEB-A26A-5432458F29B1-- From owner-svn-src-head@freebsd.org Fri Oct 11 08:23:26 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D692C142842; Fri, 11 Oct 2019 08:23:26 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) (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 46qLZ65GNGz49lY; Fri, 11 Oct 2019 08:23:26 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f196.google.com with SMTP id x3so7325361oig.2; Fri, 11 Oct 2019 01:23:26 -0700 (PDT) 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:content-transfer-encoding; bh=0tKYLRVQpDo/Rln0uRa8GkLWzJSmPykJqd3P0dDf2ck=; b=hoPJtuJLe6nspHFkCDXvr9CsvLNCpiiUJI62FS+/B/mv7L3P4eM/LX1xKj8yYjwAcq MRlLozKZ1vhvgXKsd9HbcxNinyc8tjB0VXXHhypJ+eZj72wnXUgL9vsyQOP1RAzq4t4r jCzQ4IIfLD4ifnH355GhMUr/sBKKa88W9SnjBSxGyh2UEwT21M0PQfcv7cC/2dTTrgrq BPfsDKSiXnd6udrnIpfqNYp6Im80MvUaLscZXr3rAb2HQzCILJVPh70UiLvvK0cm9+vu Z20PSGK+TDmTlVW0eAcSNEuh7bvDZdg+6iOgEJMrKpZnzukvbc3qOrVCvfxkl+HHz7gm 6QGQ== X-Gm-Message-State: APjAAAXB73uegK+IjfEzPpHVazi7x8ziqfU1rtHj3+eyeeSRTsamVMI0 rhcoLuT97ROTj5vz6L12sz2k39CW X-Google-Smtp-Source: APXvYqztVO5rq1JzJpIpGcmQJkIaVrCYNb4h9lifTrJHiiHz7gCObGe5a4LyF6FUCAXIsX8RFeqaXw== X-Received: by 2002:aca:53d0:: with SMTP id h199mr11296460oib.13.1570782203593; Fri, 11 Oct 2019 01:23:23 -0700 (PDT) Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com. [209.85.210.43]) by smtp.gmail.com with ESMTPSA id r7sm2473128oih.41.2019.10.11.01.23.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 11 Oct 2019 01:23:23 -0700 (PDT) Received: by mail-ot1-f43.google.com with SMTP id o44so7242169ota.10; Fri, 11 Oct 2019 01:23:23 -0700 (PDT) X-Received: by 2002:a9d:6c99:: with SMTP id c25mr9886116otr.157.1570782203143; Fri, 11 Oct 2019 01:23:23 -0700 (PDT) MIME-Version: 1.0 References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> <1ba0202e-698d-7cc4-1907-59d75cfe4332@FreeBSD.org> <137352B5-82C6-4953-9233-282A92FCAFC8@FreeBSD.org> In-Reply-To: <137352B5-82C6-4953-9233-282A92FCAFC8@FreeBSD.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Fri, 11 Oct 2019 01:23:11 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r353408 - head To: Dimitry Andric Cc: Andriy Gapon , Brooks Davis , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 46qLZ65GNGz49lY 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)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 08:23:26 -0000 That might be the problem in the CI rig, but xtoolchain on CURRENT doesn't appear to provide the incorrect "12" value, and it's still broken =E2=80=94 nothing to do with gets(3). $ x86_64-unknown-freebsd13.0-gcc-6.4.0 -std=3Dc99 -dM -E - < /dev/null | grep FreeBSD #define __FreeBSD__ 13 The error I hit is the one ostensibly fixed by 353408: make[4]: /obj/usr/home/conrad/src/freebsd/amd64.amd64/sys/GENERIC/modules/u= sr/home/conrad/src/freebsd/sys/modules/opensolaris/.depend.opensolaris_atom= ic.o, 5: ignoring stale .depend for /usr/home/conrad/src/freebsd/sys/cddl/contrib/opensolaris/common/atomic/amd= 64/opensolaris_atomic.S x86_64-unknown-freebsd13.0-gcc: error: /usr/home/conrad/src/freebsd/sys/cddl/contrib/opensolaris/common/atomic/amd= 64/opensolaris_atomic.S: No such file or directory x86_64-unknown-freebsd13.0-gcc: fatal error: no input files Best, Conrad On Fri, Oct 11, 2019 at 1:04 AM Dimitry Andric wrote: > > On 11 Oct 2019, at 08:24, Andriy Gapon wrote: > > > > On 11/10/2019 09:07, Conrad Meyer wrote: > >> Fwiw, this doesn=E2=80=99t seem to fix the NO_CLEAN build for amd64-xt= oolchain-gcc. > > > > Does a clean build work for that configuration? > > I looked at one of CI builds and it had this: > > In file included from /workspace/src/contrib/libc++/include/__debug:26:= 0, > > from /workspace/src/contrib/libc++/include/utility:206, > > from /workspace/src/contrib/libc++/include/algorithm:64= 2, > > from /workspace/src/contrib/libc++/src/algorithm.cpp:9: > > /workspace/src/contrib/libc++/include/cstdio:156:9: error: '::gets' has= not been > > declared > > using ::gets; > > > > I recall seeing a similar problem for riscv too. > > Yes, this is an issue with the external toolchains, which pass the wrong > version of __FreeBSD__. They should set the value to 13, not 12. > > -Dimitry > From owner-svn-src-head@freebsd.org Fri Oct 11 09:18:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 19CFC144C1B; Fri, 11 Oct 2019 09:18:46 +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 46qMnx6wyKz4FNM; Fri, 11 Oct 2019 09:18:45 +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 CA5BC18069; Fri, 11 Oct 2019 09:18:45 +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 x9B9Ijpx019787; Fri, 11 Oct 2019 09:18:45 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9B9IjGG019786; Fri, 11 Oct 2019 09:18:45 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910110918.x9B9IjGG019786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 11 Oct 2019 09:18:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353431 - head/lib/libopencsd X-SVN-Group: head X-SVN-Commit-Author: br X-SVN-Commit-Paths: head/lib/libopencsd X-SVN-Commit-Revision: 353431 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 09:18:46 -0000 Author: br Date: Fri Oct 11 09:18:45 2019 New Revision: 353431 URL: https://svnweb.freebsd.org/changeset/base/353431 Log: Install the libopencsd version header (other headers now depend on it). Sponsored by: DARPA, AFRL Modified: head/lib/libopencsd/Makefile Modified: head/lib/libopencsd/Makefile ============================================================================== --- head/lib/libopencsd/Makefile Fri Oct 11 06:02:03 2019 (r353430) +++ head/lib/libopencsd/Makefile Fri Oct 11 09:18:45 2019 (r353431) @@ -105,6 +105,7 @@ CFLAGS+= \ INCS= \ ocsd_if_types.h \ + ocsd_if_version.h \ trc_gen_elem_types.h \ trc_pkt_types.h From owner-svn-src-head@freebsd.org Fri Oct 11 11:13:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6516C148A84; Fri, 11 Oct 2019 11:13:48 +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 46qQLh241jz4NJx; Fri, 11 Oct 2019 11:13:48 +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 2B84E1959A; Fri, 11 Oct 2019 11:13:48 +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 x9BBDmvP090979; Fri, 11 Oct 2019 11:13:48 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BBDluH090975; Fri, 11 Oct 2019 11:13:47 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910111113.x9BBDluH090975@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 11 Oct 2019 11:13:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353432 - in head/share/man: man4 man9 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in head/share/man: man4 man9 X-SVN-Commit-Revision: 353432 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 11:13:48 -0000 Author: avg Date: Fri Oct 11 11:13:47 2019 New Revision: 353432 URL: https://svnweb.freebsd.org/changeset/base/353432 Log: add superio.4 and superio.9 manual pages This adds basic documentation on what the superio driver is and how other drivers can interact with it. I decided to also document superio's ivar accessors. Reviewed by: bcr, brueffer (both manual contents only) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21958 Added: head/share/man/man4/superio.4 (contents, props changed) head/share/man/man9/superio.9 (contents, props changed) Modified: head/share/man/man4/Makefile head/share/man/man9/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Fri Oct 11 09:18:45 2019 (r353431) +++ head/share/man/man4/Makefile Fri Oct 11 11:13:47 2019 (r353432) @@ -504,6 +504,7 @@ MAN= aac.4 \ ste.4 \ stf.4 \ stge.4 \ + ${_superio.4} \ sym.4 \ syncache.4 \ syncer.4 \ @@ -816,6 +817,7 @@ _padlock.4= padlock.4 _rr232x.4= rr232x.4 _speaker.4= speaker.4 _spkr.4= spkr.4 +_superio.4= superio.4 _tpm.4= tpm.4 _urtw.4= urtw.4 _viawd.4= viawd.4 Added: head/share/man/man4/superio.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/superio.4 Fri Oct 11 11:13:47 2019 (r353432) @@ -0,0 +1,111 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" +.\" Copyright (c) 2019 Andriy Gapon +.\" +.\" 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 October 11, 2019 +.Dt SUPERIO 4 +.Os +.Sh NAME +.Nm superio +.Nd Super I/O controller and bus driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device superio" +.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 +superio_load="YES" +.Ed +.Sh DESCRIPTION +Super I/O is an I/O controller that combines various low-bandwidth devices +that can be functionally unrelated otherwise. +A typical Super I/O can contain devices such as +.Bl -bullet -compact +.It +a floppy disk controller +.It +a parallel port +.It +a serial port +.It +a PS/2 mouse and keyboard controller +.It +a hardware monitoring controller +.It +a watchdog timer +.It +a controller for general purpose input-output +.El +.Pp +The +.Nm +driver provides support for devices residing in the Super I/O controller +that can only be accessed or discovered using the controller's interface. +Some of the Super I/O devices have standardized interfaces. +Such devices either use well-known legacy resources or they are advertised +via ACPI or both. +They can be configured either using ISA bus hints or they are auto-aconfigured by +.Xr acpi 4 . +The +.Nm +driver is not designed to interact with that kind of devices. +They can be handled by their respective drivers without any knowledge of the +Super I/O specifics. +For instance, +.Xr fdc 4 +provides access to the floppy disk controller. +.Pp +There are other Super I/O devices that do not have any standardized interface. +Drivers for those devices can be written using facilities of the +.Nm +driver. +.Pp +The driver itself attaches to the ISA bus as all supported controllers are +accessed via LPC I/O ports. +.Pp +The +.Nm +driver is unusual as it is both a controller driver for a variety of Super I/O +controllers and a bus driver for supported devices in those controllers. +.Sh HARDWARE +The +.Nm +driver supports a multitude of Super I/O controllers produced by Nuvoton, +formerly known as Winbond, and ITE. +.Sh SEE ALSO +.Xr superio 9 +.Sh HISTORY +The +.Nm +driver was written by +.An Andriy Gapon Aq Mt avg@FreeBSD.org . Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Fri Oct 11 09:18:45 2019 (r353431) +++ head/share/man/man9/Makefile Fri Oct 11 11:13:47 2019 (r353432) @@ -301,6 +301,7 @@ MAN= accept_filter.9 \ store.9 \ style.9 \ style.lua.9 \ + ${_superio.9} \ swi.9 \ sx.9 \ syscall_helper_register.9 \ @@ -2308,5 +2309,24 @@ MLINKS+=zone.9 uma.9 \ zone.9 uma_zone_set_maxcache.9 \ zone.9 uma_zone_set_warning.9 \ zone.9 uma_zsecond_create.9 + +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" +_superio.9= superio.9 +MLINKS+=superio.9 superio_devid.9 \ + superio.9 superio_dev_disable.9 \ + superio.9 superio_dev_enable.9 \ + superio.9 superio_dev_enabled.9 \ + superio.9 superio_find_dev.9 \ + superio.9 superio_find_dev.9 \ + superio.9 superio_get_dma.9 \ + superio.9 superio_get_iobase.9 \ + superio.9 superio_get_irq.9 \ + superio.9 superio_get_ldn.9 \ + superio.9 superio_get_type.9 \ + superio.9 superio_read.9 \ + superio.9 superio_revid.9 \ + superio.9 superio_vendor.9 \ + superio.9 superio_write.9 +.endif .include Added: head/share/man/man9/superio.9 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man9/superio.9 Fri Oct 11 11:13:47 2019 (r353432) @@ -0,0 +1,189 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" +.\" Copyright (c) 2019 Andriy Gapon +.\" +.\" 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 October 11, 2019 +.Dt SUPERIO 9 +.Os +.Sh NAME +.Nm superio , +.Nm superio_devid , +.Nm superio_dev_disable , +.Nm superio_dev_enable , +.Nm superio_dev_enabled , +.Nm superio_find_dev , +.Nm superio_get_dma , +.Nm superio_get_iobase , +.Nm superio_get_irq , +.Nm superio_get_ldn , +.Nm superio_get_type , +.Nm superio_read , +.Nm superio_revid , +.Nm superio_vendor , +.Nm superio_write +.Nd Super I/O bus interface +.Sh SYNOPSIS +.In sys/bus.h +.In dev/superio/superio.h +.Ft uint16_t +.Fn superio_devid "device_t dev" +.Ft void +.Fn superio_dev_disable "device_t dev" "uint8_t mask" +.Ft void +.Fn superio_dev_enable "device_t dev" "uint8_t mask" +.Ft bool +.Fn superio_dev_enabled "device_t dev" "uint8_t mask" +.Ft device_t +.Fn superio_find_dev "device_t dev" "superio_dev_type_t type" "int ldn" +.Ft uint8_t +.Fn superio_get_dma "device_t dev" +.Ft uint16_t +.Fn superio_get_iobase "device_t dev" +.Ft uint8_t +.Fn superio_get_irq "device_t dev" +.Ft uint8_t +.Fn superio_get_ldn "device_t dev" +.Ft superio_dev_type_t +.Fn superio_get_type "device_t dev" +.Ft uint8_t +.Fn superio_read "device_t dev" "uint8_t reg" +.Ft uint8_t +.Fn superio_revid "device_t dev" +.Ft superio_vendor_t +.Fn superio_vendor "device_t dev" +.Ft void +.Fn superio_write "device_t dev" "uint8_t reg" "uint8_t val" +.Sh DESCRIPTION +The +.Nm +set of functions are used for managing Super I/O devices. +The functions provide support for +raw configuration access, +locating devices, +device information, +and +device configuration. +.Ss The controller interface +The +.Fn superio_vendor +function is used to get a vendor of the Super I/O controller +.Fa dev . +Possible return values are +.Dv SUPERIO_VENDOR_ITE +and +.Dv SUPERIO_VENDOR_NUVOTON . +.Pp +The +.Fn superio_devid +function is used to get a device ID of the Super I/O controller +.Fa dev . +.Pp +The +.Fn superio_revid +function is used to get a revision ID of the Super I/O controller +.Fa dev . +.Pp +The +.Fn superio_find_dev +function is used to find a device on the +.Xr superio 4 +bus, specified by +.Fa dev , +that has the requested type and logical device number. +Either of those, but not both, can be a wildcard. +Supported types are +.Dv SUPERIO_DEV_GPIO , +.Dv SUPERIO_DEV_HWM , +and +.Dv SUPERIO_DEV_WDT . +The wildcard value for +.Fa type +is +.Dv SUPERIO_DEV_NONE . +The wildcard value for +.Fa ldn +is -1. +.Ss The device interface +The +.Fn superio_read +function is used to read data from the Super I/O configuration register +of the device +.Fa dev . +.Pp +The +.Fn superio_write +function is used to write data to the Super I/O configuration register +of the device +.Fa dev . +.Pp +The +.Fn superio_dev_enable , +.Fn superio_dev_disable , +and +.Fn superio_dev_enabled +functions are used to enable, disable, or check status of the device +.Fa dev . +The +.Fa mask +parameter selects sub-functions of a device that supports them. +For devices that do not have sub-functions, +.Fa mask +should be set to 1. +.Ss The accessor interface +The +.Fn superio_get_dma +is used to get a DMA channel number configured for the device +.Fa dev . +.Pp +The +.Fn superio_get_iobase +is used to get a base I/O port configured for the device +.Fa dev . +The device may expose additional or alternative configuration access via +the I/O ports. +.Pp +The +.Fn superio_get_irq +is used to get an interrupt number configured for the device +.Fa dev . +.Pp +The +.Fn superio_get_ldn +is used to get a Logical Device Number of the device +.Fa dev . +.Pp +The +.Fn superio_get_type +is used to get a type of the device +.Fa dev . +.Sh SEE ALSO +.Xr superio 4 , +.Xr device 9 , +.Xr driver 9 +.Sh AUTHORS +This manual page was written by +.An Andriy Gapon Mt avg@FreeBSD.org From owner-svn-src-head@freebsd.org Fri Oct 11 11:31:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 652E9149A7B; Fri, 11 Oct 2019 11:31:46 +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 46qQlQ1kcyz4Pjs; Fri, 11 Oct 2019 11:31:46 +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 1E23A1990B; Fri, 11 Oct 2019 11:31:46 +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 x9BBVj3g099586; Fri, 11 Oct 2019 11:31:45 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BBVjWZ099585; Fri, 11 Oct 2019 11:31:45 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910111131.x9BBVjWZ099585@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 11 Oct 2019 11:31:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353433 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 353433 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 11:31:46 -0000 Author: avg Date: Fri Oct 11 11:31:45 2019 New Revision: 353433 URL: https://svnweb.freebsd.org/changeset/base/353433 Log: fix a typo in superio.4 Reported by: bjk MFC after: 2 weeks X-MFC with: r353432 Modified: head/share/man/man4/superio.4 Modified: head/share/man/man4/superio.4 ============================================================================== --- head/share/man/man4/superio.4 Fri Oct 11 11:13:47 2019 (r353432) +++ head/share/man/man4/superio.4 Fri Oct 11 11:31:45 2019 (r353433) @@ -74,7 +74,7 @@ that can only be accessed or discovered using the cont Some of the Super I/O devices have standardized interfaces. Such devices either use well-known legacy resources or they are advertised via ACPI or both. -They can be configured either using ISA bus hints or they are auto-aconfigured by +They can be configured either using ISA bus hints or they are auto-configured by .Xr acpi 4 . The .Nm From owner-svn-src-head@freebsd.org Fri Oct 11 12:04:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AECDC14B755; Fri, 11 Oct 2019 12:04:39 +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 46qRTM3DH6z4Rn5; Fri, 11 Oct 2019 12:04:39 +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 52D0D19EB1; Fri, 11 Oct 2019 12:04:39 +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 x9BC4dsJ020236; Fri, 11 Oct 2019 12:04:39 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BC4dR7020235; Fri, 11 Oct 2019 12:04:39 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910111204.x9BC4dR7020235@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 11 Oct 2019 12:04:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353434 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 353434 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 12:04:39 -0000 Author: avg Date: Fri Oct 11 12:04:38 2019 New Revision: 353434 URL: https://svnweb.freebsd.org/changeset/base/353434 Log: man4/Makefile: fix sorting for a number of entries starting with 'v' MFC after: 1 week Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Fri Oct 11 11:31:45 2019 (r353433) +++ head/share/man/man4/Makefile Fri Oct 11 12:04:38 2019 (r353434) @@ -805,14 +805,6 @@ _ntb_transport.4=ntb_transport.4 _nvd.4= nvd.4 _nvme.4= nvme.4 _nvram.4= nvram.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 -_vmx.4= vmx.4 -_vtnet.4= vtnet.4 _padlock.4= padlock.4 _rr232x.4= rr232x.4 _speaker.4= speaker.4 @@ -821,7 +813,15 @@ _superio.4= superio.4 _tpm.4= tpm.4 _urtw.4= urtw.4 _viawd.4= viawd.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 _vmci.4= vmci.4 +_vmx.4= vmx.4 +_vtnet.4= vtnet.4 _wbwd.4= wbwd.4 _wpi.4= wpi.4 _xen.4= xen.4 From owner-svn-src-head@freebsd.org Fri Oct 11 13:34:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F40F514F267; Fri, 11 Oct 2019 13:34:09 +0000 (UTC) (envelope-from cognet@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 46qTSd655Wz4YVn; Fri, 11 Oct 2019 13:34:09 +0000 (UTC) (envelope-from cognet@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 B5C781AE85; Fri, 11 Oct 2019 13:34:09 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9BDY9dp073031; Fri, 11 Oct 2019 13:34:09 GMT (envelope-from cognet@FreeBSD.org) Received: (from cognet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BDY9kA073030; Fri, 11 Oct 2019 13:34:09 GMT (envelope-from cognet@FreeBSD.org) Message-Id: <201910111334.x9BDY9kA073030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cognet set sender to cognet@FreeBSD.org using -f From: Olivier Houchard Date: Fri, 11 Oct 2019 13:34:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353435 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: cognet X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 353435 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 13:34:10 -0000 Author: cognet Date: Fri Oct 11 13:34:09 2019 New Revision: 353435 URL: https://svnweb.freebsd.org/changeset/base/353435 Log: Document that aarch64 can now run armv6/armv7 binaries, but won't however run armv5 binaries. Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Fri Oct 11 12:04:38 2019 (r353434) +++ head/share/man/man7/arch.7 Fri Oct 11 13:34:09 2019 (r353435) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 9, 2019 +.Dd October 11, 2019 .Dt ARCH 7 .Os .Sh NAME @@ -161,15 +161,18 @@ Examples are: .It Dv amd64 Ta Dv i386 .It Dv powerpc64 Ta Dv powerpc .It Dv mips64* Ta Dv mips* +.It Dv aarch64 Ta Dv armv6/armv7 .El .Dv aarch64 -currently does not support execution of +will support execution of .Dv armv6 or .Dv armv7 -binaries, even if the CPU implements +binaries if the CPU implements .Dv AArch32 -execution state. +execution state, however +.Dv armv5 +binaries aren't supported. .Pp On all supported architectures: .Bl -column -offset -indent "long long" "Size" From owner-svn-src-head@freebsd.org Fri Oct 11 14:15:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 951DF150B49; Fri, 11 Oct 2019 14:15:51 +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 46qVNl3Q1Hz4cJr; Fri, 11 Oct 2019 14:15:51 +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 554E91B5A0; Fri, 11 Oct 2019 14:15:51 +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 x9BEFpLM097203; Fri, 11 Oct 2019 14:15:51 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BEFoMV097201; Fri, 11 Oct 2019 14:15:50 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910111415.x9BEFoMV097201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 11 Oct 2019 14:15:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353436 - in head: sys/arm64/include usr.bin/gcore X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head: sys/arm64/include usr.bin/gcore X-SVN-Commit-Revision: 353436 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 14:15:51 -0000 Author: jhibbits Date: Fri Oct 11 14:15:50 2019 New Revision: 353436 URL: https://svnweb.freebsd.org/changeset/base/353436 Log: gcore: Add aarch64 32-bit core support Summary: Add trivial 32-bit arm cores on aarch64 support for gcore. This doesn't handle fpregs. Reviewed by: #arm, andrew Sponsored by: Juniper Networks, Inc Differential Revision: https://reviews.freebsd.org/D21947 Modified: head/sys/arm64/include/elf.h head/usr.bin/gcore/Makefile head/usr.bin/gcore/elf32core.c Modified: head/sys/arm64/include/elf.h ============================================================================== --- head/sys/arm64/include/elf.h Fri Oct 11 13:34:09 2019 (r353435) +++ head/sys/arm64/include/elf.h Fri Oct 11 14:15:50 2019 (r353436) @@ -64,7 +64,11 @@ typedef struct { /* Auxiliary vector entry on initial __ElfType(Auxinfo); +#ifdef _MACHINE_ELF_WANT_32BIT +#define ELF_ARCH EM_ARM +#else #define ELF_ARCH EM_AARCH64 +#endif #define ELF_MACHINE_OK(x) ((x) == (ELF_ARCH)) Modified: head/usr.bin/gcore/Makefile ============================================================================== --- head/usr.bin/gcore/Makefile Fri Oct 11 13:34:09 2019 (r353435) +++ head/usr.bin/gcore/Makefile Fri Oct 11 14:15:50 2019 (r353436) @@ -5,7 +5,7 @@ PROG= gcore SRCS= elfcore.c gcore.c LIBADD= sbuf util -.if ${MACHINE_ARCH} == "amd64" +.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" SRCS+= elf32core.c .endif Modified: head/usr.bin/gcore/elf32core.c ============================================================================== --- head/usr.bin/gcore/elf32core.c Fri Oct 11 13:34:09 2019 (r353435) +++ head/usr.bin/gcore/elf32core.c Fri Oct 11 14:15:50 2019 (r353436) @@ -32,7 +32,15 @@ elf_convert_gregset(elfcore_gregset_t *rd, struct reg rd->r_eflags = rs->r_rflags; rd->r_esp = rs->r_rsp; rd->r_ss = rs->r_ss; -#else +#elif defined(__aarch64__) + int i; + + for (i = 0; i < 13; i++) + rd->r[i] = rs->x[i]; + rd->r_sp = rs->x[13]; + rd->r_lr = rs->x[14]; + rd->r_pc = rs->elr; + rd->r_cpsr = rs->spsr; #error Unsupported architecture #endif } @@ -43,6 +51,8 @@ elf_convert_fpregset(elfcore_fpregset_t *rd, struct fp #ifdef __amd64__ /* XXX this is wrong... */ memcpy(rd, rs, sizeof(*rd)); +#elif defined(__aarch64__) + /* ARM64TODO */ #else #error Unsupported architecture #endif From owner-svn-src-head@freebsd.org Fri Oct 11 14:17:31 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7459150D31; Fri, 11 Oct 2019 14:17:31 +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 46qVQg5sPpz4cVg; Fri, 11 Oct 2019 14:17:31 +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 AAE381B5B0; Fri, 11 Oct 2019 14:17:31 +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 x9BEHVsd097330; Fri, 11 Oct 2019 14:17:31 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BEHVdl097328; Fri, 11 Oct 2019 14:17:31 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910111417.x9BEHVdl097328@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 11 Oct 2019 14:17:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353437 - head/usr.bin/gcore X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/usr.bin/gcore X-SVN-Commit-Revision: 353437 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 14:17:32 -0000 Author: jhibbits Date: Fri Oct 11 14:17:31 2019 New Revision: 353437 URL: https://svnweb.freebsd.org/changeset/base/353437 Log: gcore: Add powerpc64 32-bit gcore support Summary: Add the necessary bits for taking 32-bit gcore coredumps on powerpc64. Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D21954 Modified: head/usr.bin/gcore/Makefile head/usr.bin/gcore/elf32core.c Modified: head/usr.bin/gcore/Makefile ============================================================================== --- head/usr.bin/gcore/Makefile Fri Oct 11 14:15:50 2019 (r353436) +++ head/usr.bin/gcore/Makefile Fri Oct 11 14:17:31 2019 (r353437) @@ -5,7 +5,8 @@ PROG= gcore SRCS= elfcore.c gcore.c LIBADD= sbuf util -.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" +.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \ + ${MACHINE_ARCH} == "powerpc64" SRCS+= elf32core.c .endif Modified: head/usr.bin/gcore/elf32core.c ============================================================================== --- head/usr.bin/gcore/elf32core.c Fri Oct 11 14:15:50 2019 (r353436) +++ head/usr.bin/gcore/elf32core.c Fri Oct 11 14:17:31 2019 (r353437) @@ -41,6 +41,17 @@ elf_convert_gregset(elfcore_gregset_t *rd, struct reg rd->r_lr = rs->x[14]; rd->r_pc = rs->elr; rd->r_cpsr = rs->spsr; +#elif defined(__powerpc64__) + int i; + + for (i = 0; i < 32; i++) + rd->fixreg[i] = rs->fixreg[i]; + rd->lr = rs->lr; + rd->cr = rs->cr; + rd->xer = rs->xer; + rd->ctr = rs->ctr; + rd->pc = rs->pc; +#else #error Unsupported architecture #endif } @@ -53,6 +64,8 @@ elf_convert_fpregset(elfcore_fpregset_t *rd, struct fp memcpy(rd, rs, sizeof(*rd)); #elif defined(__aarch64__) /* ARM64TODO */ +#elif defined(__powerpc64__) + memcpy(rd, rs, sizeof(*rd)); #else #error Unsupported architecture #endif From owner-svn-src-head@freebsd.org Fri Oct 11 14:57:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16D7B152522; Fri, 11 Oct 2019 14:57:48 +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 46qWK76ssRz4g3y; Fri, 11 Oct 2019 14:57:47 +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 B4B721BCDF; Fri, 11 Oct 2019 14:57:47 +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 x9BEvl8T021081; Fri, 11 Oct 2019 14:57:47 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BEvlxh021080; Fri, 11 Oct 2019 14:57:47 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201910111457.x9BEvlxh021080@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 11 Oct 2019 14:57:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353438 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 353438 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 14:57:48 -0000 Author: mjg Date: Fri Oct 11 14:57:47 2019 New Revision: 353438 URL: https://svnweb.freebsd.org/changeset/base/353438 Log: amd64 pmap: handle fictitious mappigns with addresses beyond pv_table There are provisions to do it already with pv_dummy, but new locking code did not account for it. Previous one did not have the problem because it hashed the address into the lock array. While here annotate common vars with __read_mostly and __exclusive_cache_line. Reported by: Thomas Laus Tesetd by: jkim, Thomas Laus Fixes: r353149 ("amd64 pmap: implement per-superpage locks") Sponsored by: The FreeBSD Foundation Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Fri Oct 11 14:17:31 2019 (r353437) +++ head/sys/amd64/amd64/pmap.c Fri Oct 11 14:57:47 2019 (r353438) @@ -325,8 +325,14 @@ pmap_pku_mask_bit(pmap_t pmap) #if VM_NRESERVLEVEL > 0 #define pa_to_pmdp(pa) (&pv_table[pa_index(pa)]) #define pa_to_pvh(pa) (&(pa_to_pmdp(pa)->pv_page)) -#define PHYS_TO_PV_LIST_LOCK(pa) \ - (&(pa_to_pmdp(pa)->pv_lock)) +#define PHYS_TO_PV_LIST_LOCK(pa) ({ \ + struct rwlock *_lock; \ + if (__predict_false((pa) > pmap_last_pa)) \ + _lock = &pv_dummy_large.pv_lock; \ + else \ + _lock = &(pa_to_pmdp(pa)->pv_lock); \ + _lock; \ +}) #else #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) @@ -422,13 +428,16 @@ struct pmap_large_md_page { struct md_page pv_page; u_long pv_invl_gen; }; -static struct pmap_large_md_page *pv_table; +__exclusive_cache_line static struct pmap_large_md_page pv_dummy_large; +#define pv_dummy pv_dummy_large.pv_page +__read_mostly static struct pmap_large_md_page *pv_table; +__read_mostly vm_paddr_t pmap_last_pa; #else static struct rwlock __exclusive_cache_line pv_list_locks[NPV_LIST_LOCKS]; static u_long pv_invl_gen[NPV_LIST_LOCKS]; static struct md_page *pv_table; -#endif static struct md_page pv_dummy; +#endif /* * All those kernel PT submaps that BSD is so fond of @@ -1851,7 +1860,8 @@ pmap_init_pv_table(void) /* * Calculate the size of the array. */ - pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); + pmap_last_pa = vm_phys_segs[vm_phys_nsegs - 1].end; + pv_npg = howmany(pmap_last_pa, NBPDR); s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page); s = round_page(s); pv_table = (struct pmap_large_md_page *)kva_alloc(s); @@ -1894,7 +1904,12 @@ pmap_init_pv_table(void) pvd++; } } - TAILQ_INIT(&pv_dummy.pv_list); + pvd = &pv_dummy_large; + rw_init_flags(&pvd->pv_lock, "pmap pv list dummy", RW_NEW); + TAILQ_INIT(&pvd->pv_page.pv_list); + pvd->pv_page.pv_gen = 0; + pvd->pv_page.pat_mode = 0; + pvd->pv_invl_gen = 0; } #else static void From owner-svn-src-head@freebsd.org Fri Oct 11 14:59:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5333D1525AB; Fri, 11 Oct 2019 14:59:29 +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 46qWM51Pmlz4gC0; Fri, 11 Oct 2019 14:59:29 +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 0F4CD1BCE0; Fri, 11 Oct 2019 14:59:29 +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 x9BExSFb021209; Fri, 11 Oct 2019 14:59:28 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BExSGP021208; Fri, 11 Oct 2019 14:59:28 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201910111459.x9BExSGP021208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 11 Oct 2019 14:59:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353439 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 353439 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 14:59:29 -0000 Author: asomers Date: Fri Oct 11 14:59:28 2019 New Revision: 353439 URL: https://svnweb.freebsd.org/changeset/base/353439 Log: MFZol: Fix performance of "zfs recv" with many deletions This patch fixes 2 issues with the DMU free throttle implemented in dmu_free_long_range(). The first issue is that get_next_chunk() was calculating the number of L1 blocks the free would dirty incorrectly. In some cases involving extremely large files, this code would greatly overestimate the number of affected L1 blocks, causing excessive calls to txg_wait_open(). This patch corrects the calculation. The second issue is that the free throttle uses the total number of free'd blocks in all (open, quiescing, and syncing) txgs to determine whether to throttle. This causes large frees (such as those created by the first issue) to cause 4 txg syncs before any further frees were allowed to proceed. This patch ensures that the accounting is done entirely in a per-txg fashion, so that frees from a given txg don't affect those that immediately follow it. Reviewed-by: Brian Behlendorf Reviewed-by: Matthew Ahrens Signed-off-by: Tom Caputi zfsonlinux/zfs@f4c594da94d856c422512a54e48070f890b2685b Freeing throttle should account for holes Deletion throttle currently does not account for holes in a file. This means that it can activate when it shouldn't. To fix it we switch the throttle to be based on the number of L1 blocks we will have to dirty when freeing Reviewed-by: Tom Caputi Reviewed-by: Matt Ahrens Reviewed-by: Brian Behlendorf Signed-off-by: Alek Pinchuk zfsonlinux/zfs@65282ee9e06b130f1f0169baf5d9bf0dd8fc1ef9 Submitted by: Alek Pinchuk Reviewed by: allanjude MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D21895 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Fri Oct 11 14:57:47 2019 (r353438) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Fri Oct 11 14:59:28 2019 (r353439) @@ -21,6 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2017 by Delphix. All rights reserved. + * Copyright (c) 2019 Datto Inc. */ /* Copyright (c) 2013 by Saso Kiselkov. All rights reserved. */ /* Copyright (c) 2013, Joyent, Inc. All rights reserved. */ @@ -62,14 +63,15 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, nopwrite_enabled, CTLFL &zfs_nopwrite_enabled, 0, "Enable nopwrite feature"); /* - * Tunable to control percentage of dirtied blocks from frees in one TXG. - * After this threshold is crossed, additional dirty blocks from frees - * wait until the next TXG. + * Tunable to control percentage of dirtied L1 blocks from frees allowed into + * one TXG. After this threshold is crossed, additional dirty blocks from frees + * will wait until the next TXG. * A value of zero will disable this throttle. */ -uint32_t zfs_per_txg_dirty_frees_percent = 30; +uint32_t zfs_per_txg_dirty_frees_percent = 5; SYSCTL_INT(_vfs_zfs, OID_AUTO, per_txg_dirty_frees_percent, CTLFLAG_RWTUN, - &zfs_per_txg_dirty_frees_percent, 0, "Percentage of dirtied blocks from frees in one txg"); + &zfs_per_txg_dirty_frees_percent, 0, + "Percentage of dirtied indirect blocks from frees allowed in one txg"); /* * This can be used for testing, to ensure that certain actions happen @@ -683,11 +685,13 @@ dmu_prefetch(objset_t *os, uint64_t object, int64_t le * * On input, *start should be the first offset that does not need to be * freed (e.g. "offset + length"). On return, *start will be the first - * offset that should be freed. + * offset that should be freed and l1blks is set to the number of level 1 + * indirect blocks found within the chunk. */ static int -get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t minimum) +get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t minimum, uint64_t *l1blks) { + uint64_t blks; uint64_t maxblks = DMU_MAX_ACCESS >> (dn->dn_indblkshift + 1); /* bytes of data covered by a level-1 indirect block */ uint64_t iblkrange = @@ -695,13 +699,23 @@ get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t ASSERT3U(minimum, <=, *start); - if (*start - minimum <= iblkrange * maxblks) { + /* + * Check if we can free the entire range assuming that all of the + * L1 blocks in this range have data. If we can, we use this + * worst case value as an estimate so we can avoid having to look + * at the object's actual data. + */ + uint64_t total_l1blks = + (roundup(*start, iblkrange) - (minimum / iblkrange * iblkrange)) / + iblkrange; + if (total_l1blks <= maxblks) { + *l1blks = total_l1blks; *start = minimum; return (0); } ASSERT(ISP2(iblkrange)); - for (uint64_t blks = 0; *start > minimum && blks < maxblks; blks++) { + for (blks = 0; *start > minimum && blks < maxblks; blks++) { int err; /* @@ -711,6 +725,7 @@ get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t * to search. */ (*start)--; + err = dnode_next_offset(dn, DNODE_FIND_BACKWARDS, start, 2, 1, 0); @@ -719,6 +734,7 @@ get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t *start = minimum; break; } else if (err != 0) { + *l1blks = blks; return (err); } @@ -727,6 +743,8 @@ get_next_chunk(dnode_t *dn, uint64_t *start, uint64_t } if (*start < minimum) *start = minimum; + *l1blks = blks; + return (0); } @@ -762,14 +780,14 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, ui dirty_frees_threshold = zfs_per_txg_dirty_frees_percent * zfs_dirty_data_max / 100; else - dirty_frees_threshold = zfs_dirty_data_max / 4; + dirty_frees_threshold = zfs_dirty_data_max / 20; if (length == DMU_OBJECT_END || offset + length > object_size) length = object_size - offset; while (length != 0) { uint64_t chunk_end, chunk_begin, chunk_len; - uint64_t long_free_dirty_all_txgs = 0; + uint64_t l1blks; dmu_tx_t *tx; if (dmu_objset_zfs_unmounting(dn->dn_objset)) @@ -778,7 +796,7 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, ui chunk_end = chunk_begin = offset + length; /* move chunk_begin backwards to the beginning of this chunk */ - err = get_next_chunk(dn, &chunk_begin, offset); + err = get_next_chunk(dn, &chunk_begin, offset, &l1blks); if (err) return (err); ASSERT3U(chunk_begin, >=, offset); @@ -786,24 +804,6 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, ui chunk_len = chunk_end - chunk_begin; - mutex_enter(&dp->dp_lock); - for (int t = 0; t < TXG_SIZE; t++) { - long_free_dirty_all_txgs += - dp->dp_long_free_dirty_pertxg[t]; - } - mutex_exit(&dp->dp_lock); - - /* - * To avoid filling up a TXG with just frees wait for - * the next TXG to open before freeing more chunks if - * we have reached the threshold of frees - */ - if (dirty_frees_threshold != 0 && - long_free_dirty_all_txgs >= dirty_frees_threshold) { - txg_wait_open(dp, 0); - continue; - } - tx = dmu_tx_create(os); dmu_tx_hold_free(tx, dn->dn_object, chunk_begin, chunk_len); @@ -818,13 +818,42 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, ui return (err); } + uint64_t txg = dmu_tx_get_txg(tx); + mutex_enter(&dp->dp_lock); - dp->dp_long_free_dirty_pertxg[dmu_tx_get_txg(tx) & TXG_MASK] += - chunk_len; + uint64_t long_free_dirty = + dp->dp_long_free_dirty_pertxg[txg & TXG_MASK]; mutex_exit(&dp->dp_lock); + + /* + * To avoid filling up a TXG with just frees, wait for + * the next TXG to open before freeing more chunks if + * we have reached the threshold of frees. + */ + if (dirty_frees_threshold != 0 && + long_free_dirty >= dirty_frees_threshold) { + dmu_tx_commit(tx); + txg_wait_open(dp, 0); + continue; + } + + /* + * In order to prevent unnecessary write throttling, for each + * TXG, we track the cumulative size of L1 blocks being dirtied + * in dnode_free_range() below. We compare this number to a + * tunable threshold, past which we prevent new L1 dirty freeing + * blocks from being added into the open TXG. See + * dmu_free_long_range_impl() for details. The threshold + * prevents write throttle activation due to dirty freeing L1 + * blocks taking up a large percentage of zfs_dirty_data_max. + */ + mutex_enter(&dp->dp_lock); + dp->dp_long_free_dirty_pertxg[txg & TXG_MASK] += + l1blks << dn->dn_indblkshift; + mutex_exit(&dp->dp_lock); DTRACE_PROBE3(free__long__range, - uint64_t, long_free_dirty_all_txgs, uint64_t, chunk_len, - uint64_t, dmu_tx_get_txg(tx)); + uint64_t, long_free_dirty, uint64_t, chunk_len, + uint64_t, txg); dnode_free_range(dn, chunk_begin, chunk_len, tx); dmu_tx_commit(tx); From owner-svn-src-head@freebsd.org Fri Oct 11 16:01:31 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7EAD5153DE2; Fri, 11 Oct 2019 16:01:31 +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 46qXkg2sp1z3Fqx; Fri, 11 Oct 2019 16:01:31 +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 45E9F1C7CF; Fri, 11 Oct 2019 16:01:31 +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 x9BG1Vbd059072; Fri, 11 Oct 2019 16:01:31 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BG1V4d059071; Fri, 11 Oct 2019 16:01:31 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910111601.x9BG1V4d059071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 11 Oct 2019 16:01:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353440 - head/release X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release X-SVN-Commit-Revision: 353440 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 16:01:31 -0000 Author: gjb Date: Fri Oct 11 16:01:30 2019 New Revision: 353440 URL: https://svnweb.freebsd.org/changeset/base/353440 Log: Increase the default VMSIZE for raw, qcow2, vhd, and vmdk virtual machine images due to 'filesystem full' failures. Sponsored by: Rubicon Communications, LLC (Netgate) Modified: head/release/Makefile.vm Modified: head/release/Makefile.vm ============================================================================== --- head/release/Makefile.vm Fri Oct 11 14:59:28 2019 (r353439) +++ head/release/Makefile.vm Fri Oct 11 16:01:30 2019 (r353440) @@ -7,7 +7,7 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw -VMSIZE?= 3072M +VMSIZE?= 4096M SWAPSIZE?= 1G VMBASE?= vm From owner-svn-src-head@freebsd.org Fri Oct 11 16:28:47 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43A56155299; Fri, 11 Oct 2019 16:28:47 +0000 (UTC) (envelope-from philip@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 46qYL717yLz3JkG; Fri, 11 Oct 2019 16:28:47 +0000 (UTC) (envelope-from philip@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 03CD51CCC5; Fri, 11 Oct 2019 16:28:47 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9BGSkHB074723; Fri, 11 Oct 2019 16:28:46 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BGSkWT074722; Fri, 11 Oct 2019 16:28:46 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910111628.x9BGSkWT074722@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Fri, 11 Oct 2019 16:28:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353441 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: philip X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 353441 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 16:28:47 -0000 Author: philip Date: Fri Oct 11 16:28:46 2019 New Revision: 353441 URL: https://svnweb.freebsd.org/changeset/base/353441 Log: Call devmap_bootstrap in RISC-V machine dependent code to actually create the static device mappings. While RISC-V support was added to subr_devmap.c in r298631, it was never actually initialised in the machine dependent code. Submitted by: Nicholas O'Brien Reviewed by: br, kp Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D21975 Modified: head/sys/riscv/riscv/machdep.c Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Fri Oct 11 16:01:30 2019 (r353440) +++ head/sys/riscv/riscv/machdep.c Fri Oct 11 16:28:46 2019 (r353441) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -897,6 +898,9 @@ initriscv(struct riscv_bootparams *rvbp) /* Bootstrap enough of pmap to enter the kernel proper */ kernlen = (lastaddr - KERNBASE); pmap_bootstrap(rvbp->kern_l1pt, mem_regions[0].mr_start, kernlen); + + /* Establish static device mappings */ + devmap_bootstrap(0, NULL); cninit(); From owner-svn-src-head@freebsd.org Fri Oct 11 16:54:47 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 79A1D155A8A; Fri, 11 Oct 2019 16:54:47 +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 46qYw64tQcz3Kwc; Fri, 11 Oct 2019 16:54:46 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id 432E93C0199; Fri, 11 Oct 2019 16:54:40 +0000 (UTC) Date: Fri, 11 Oct 2019 16:54:40 +0000 From: Brooks Davis To: Conrad Meyer Cc: Brooks Davis , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353408 - head Message-ID: <20191011165440.GA53377@spindle.one-eyed-alien.net> References: <201910101629.x9AGTDkJ024957@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="opJtzjQTFsWo+cga" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Queue-Id: 46qYw64tQcz3Kwc X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of brooks@spindle.one-eyed-alien.net has no SPF policy when checking 199.48.129.229) smtp.mailfrom=brooks@spindle.one-eyed-alien.net X-Spamd-Result: default: False [-6.50 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; DMARC_NA(0.00)[freebsd.org]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE(-3.60)[ip: (-9.39), ipnet: 199.48.128.0/22(-4.68), asn: 36236(-3.85), country: US(-0.05)]; R_SPF_NA(0.00)[]; SIGNED_PGP(-2.00)[]; FORGED_SENDER(0.30)[brooks@freebsd.org,brooks@spindle.one-eyed-alien.net]; RCVD_COUNT_ZERO(0.00)[0]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:36236, ipnet:199.48.128.0/22, country:US]; FROM_NEQ_ENVFROM(0.00)[brooks@freebsd.org,brooks@spindle.one-eyed-alien.net] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 16:54:47 -0000 --opJtzjQTFsWo+cga Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable It worked for a default non-CROSS_TOOLCHAIN build, but I didn't test for repeatably or in other configurations. Enhancements welcome. -- Brooks On Thu, Oct 10, 2019 at 11:07:52PM -0700, Conrad Meyer wrote: > Fwiw, this doesn???t seem to fix the NO_CLEAN build for amd64-xtoolchain-= gcc. >=20 > On Thu, Oct 10, 2019 at 09:29 Brooks Davis wrote: >=20 > > Author: brooks > > Date: Thu Oct 10 16:29:13 2019 > > New Revision: 353408 > > URL: https://svnweb.freebsd.org/changeset/base/353408 > > > > Log: > > Fix -DNO_CLEAN build across r353340 and r353381 > > > > opensolaris_atomic.S is now only used on i386 with opensolaris_atomic= =2Ec > > used on other platforms. After r353381 it doesn't exist on those > > platforms so the stale dependency would result in a build error. > > > > Modified: > > head/Makefile.inc1 > > > > Modified: head/Makefile.inc1 > > > > =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/Makefile.inc1 Thu Oct 10 16:04:43 2019 (r353407) > > +++ head/Makefile.inc1 Thu Oct 10 16:29:13 2019 (r353408) > > @@ -949,7 +949,18 @@ _sanity_check: .PHONY .MAKE > > # replacing generated files. Handle these cases here in an ad-hoc > > fashion. > > _cleanobj_fast_depend_hack: .PHONY > > # Syscall stubs rewritten in C and obsolete MD assembly implementations > > -# Date SVN Rev Syscalls > > +# Date SVN Rev Syscalls/Changes > > +# 20191009 r353340 removal of opensolaris_atomic.S (also r353381) > > +.if ${MACHINE} !=3D i386 > > +.for f in opensolaris_atomic > > + @if [ -e "${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o" ] && \ > > + egrep -qw 'opensolaris_atomic\.S' > > ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.o; then \ > > + echo "Removing stale dependencies for opensolaris_atomi= c"; > > \ > > + rm -f ${OBJTOP}/cddl/lib/libzpool/.depend.${f}.* \ > > + > > ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/cddl/lib/libzpool/.depend.${f}.*}; \ > > + fi > > +.endfor > > +.endif > > # 20190925 r352689 removal of obsolete i386 memchr.S > > .for f in memchr > > @if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \ > > --opJtzjQTFsWo+cga Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJdoLPPAAoJEKzQXbSebgfAzdYH/0dMYbC//UXyYo1ot8ZdkI19 LLZR8koIL+6NtzucaIdUsrcp6LUiXsgAHi2kMqTEtbT31CvRaDKJaxcHfqz7HrxD Bq4OIRVnEzkI9qYyCCHbW8Jl/O/37pDj4J9KN0XyxP9+5nUHga9W7YqEx6expTly z/ltFi4jKDAkYeCyT56+lVTIQtsaA9JuqZ4bUl3srmSQ6Gxj0JpyHsWJJcZ9uf0P 8fCRMxP9CkyfU5jV6fZx3/0psN37dGIKQKJDgusP48RmjE9ZdqPPKrk0I3xO2cuk MmQzq0tjY+Jz9Ou6VkPaxd2NjOgW+BPd3C+nbU7SnNsZ13Ke0zPXR9wRRheHmyw= =49vw -----END PGP SIGNATURE----- --opJtzjQTFsWo+cga-- From owner-svn-src-head@freebsd.org Fri Oct 11 17:01:03 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 949FB155C51; Fri, 11 Oct 2019 17:01:03 +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 46qZ3M38Djz3LFS; Fri, 11 Oct 2019 17:01:03 +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 4B6391D390; Fri, 11 Oct 2019 17:01:03 +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 x9BH13po093369; Fri, 11 Oct 2019 17:01:03 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BH13wd093368; Fri, 11 Oct 2019 17:01:03 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910111701.x9BH13wd093368@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 11 Oct 2019 17:01:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353442 - head/sys/cddl/compat/opensolaris/sys X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/cddl/compat/opensolaris/sys X-SVN-Commit-Revision: 353442 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 17:01:03 -0000 Author: avg Date: Fri Oct 11 17:01:02 2019 New Revision: 353442 URL: https://svnweb.freebsd.org/changeset/base/353442 Log: fix up r353340, don't assume that fcmpset has strong semantics fcmpset can have two kinds of semantics, weak and strong. For practical purposes, strong semantics means that if fcmpset fails then the reported current value is always different from the expected value. Weak semantics means that the reported current value may be the same as the expected value even though fcmpset failed. That's a so called "sporadic" failure. I originally implemented atomic_cas expecting strong semantics, but many platforms actually have weak one. Reported by: pkubaj (not confirmed if same issue) Discussed with: kib, mjg MFC after: 19 days X-MFC with: r353340 Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Fri Oct 11 16:28:46 2019 (r353441) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Fri Oct 11 17:01:02 2019 (r353442) @@ -36,6 +36,11 @@ #define I386_HAVE_ATOMIC64 #endif +#if defined(__i386__) || defined(__amd64__) || defined(__arm__) +/* No spurious failures from fcmpset. */ +#define STRONG_FCMPSET +#endif + #if !defined(__LP64__) && !defined(__mips_n32) && \ !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) extern void atomic_add_64(volatile uint64_t *target, int64_t delta); @@ -89,7 +94,16 @@ atomic_dec_32_nv(volatile uint32_t *target) static inline uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, uint32_t newval) { +#ifdef STRONG_FCMPSET (void)atomic_fcmpset_32(target, &cmp, newval); +#else + uint32_t expected = cmp; + + do { + if (atomic_fcmpset_32(target, &cmp, newval)) + break; + } while (cmp == expected); +#endif return (cmp); } #endif @@ -112,7 +126,16 @@ atomic_add_64_nv(volatile uint64_t *target, int64_t de static inline uint64_t atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval) { +#ifdef STRONG_FCMPSET (void)atomic_fcmpset_64(target, &cmp, newval); +#else + uint64_t expected = cmp; + + do { + if (atomic_fcmpset_64(target, &cmp, newval)) + break; + } while (cmp == expected); +#endif return (cmp); } #endif From owner-svn-src-head@freebsd.org Fri Oct 11 17:04:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 78589155E8E; Fri, 11 Oct 2019 17:04:39 +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 46qZ7W1SMDz3LcB; Fri, 11 Oct 2019 17:04:39 +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 1169B1D418; Fri, 11 Oct 2019 17:04:39 +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 x9BH4cqV098027; Fri, 11 Oct 2019 17:04:38 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BH4cBH098026; Fri, 11 Oct 2019 17:04:38 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201910111704.x9BH4cBH098026@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Fri, 11 Oct 2019 17:04:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353443 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353443 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 17:04:39 -0000 Author: kp Date: Fri Oct 11 17:04:38 2019 New Revision: 353443 URL: https://svnweb.freebsd.org/changeset/base/353443 Log: mountroot: run statfs after mounting devfs The usual flow for mounting a file system is to VFS_MOUNT() and then immediately VFS_STATFS(). That's not done in vfs_mountroot_devfs(), which means the mp->mnt_stat.f_iosize field is not correctly populated, which in turn causes us to mark valid aio operations as unsafe (because the io size is set to 0), ultimately causing the aio_test:md_waitcomplete test to fail. Reviewed by: mckusick MFC after: 1 week Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D21897 Modified: head/sys/kern/vfs_mountroot.c Modified: head/sys/kern/vfs_mountroot.c ============================================================================== --- head/sys/kern/vfs_mountroot.c Fri Oct 11 17:01:02 2019 (r353442) +++ head/sys/kern/vfs_mountroot.c Fri Oct 11 17:04:38 2019 (r353443) @@ -263,6 +263,11 @@ vfs_mountroot_devfs(struct thread *td, struct mount ** if (error) return (error); + error = VFS_STATFS(mp, &mp->mnt_stat); + KASSERT(error == 0, ("VFS_STATFS(devfs) failed %d", error)); + if (error) + return (error); + opts = malloc(sizeof(struct vfsoptlist), M_MOUNT, M_WAITOK); TAILQ_INIT(opts); mp->mnt_opt = opts; From owner-svn-src-head@freebsd.org Fri Oct 11 17:23:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4E705156379; Fri, 11 Oct 2019 17:23:24 +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 46qZY80hdDz3MQP; Fri, 11 Oct 2019 17:23:24 +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 EF2E31D7D5; Fri, 11 Oct 2019 17:23:23 +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 x9BHNNkq009974; Fri, 11 Oct 2019 17:23:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BHNNCZ009973; Fri, 11 Oct 2019 17:23:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910111723.x9BHNNCZ009973@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 11 Oct 2019 17:23:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353444 - head/sys/dev/xen/netback X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/xen/netback X-SVN-Commit-Revision: 353444 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 17:23:24 -0000 Author: markj Date: Fri Oct 11 17:23:23 2019 New Revision: 353444 URL: https://svnweb.freebsd.org/changeset/base/353444 Log: Remove an unneeded include of opt_sctp.h. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/xen/netback/netback.c Modified: head/sys/dev/xen/netback/netback.c ============================================================================== --- head/sys/dev/xen/netback/netback.c Fri Oct 11 17:04:38 2019 (r353443) +++ head/sys/dev/xen/netback/netback.c Fri Oct 11 17:23:23 2019 (r353444) @@ -46,8 +46,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" -#include "opt_sctp.h" - #include #include From owner-svn-src-head@freebsd.org Fri Oct 11 18:37:02 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0ECC15794C; Fri, 11 Oct 2019 18:37:02 +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 46qcB6580Zz3QrR; Fri, 11 Oct 2019 18:37:02 +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 90C111E44B; Fri, 11 Oct 2019 18:37:02 +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 x9BIb2E9051535; Fri, 11 Oct 2019 18:37:02 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BIb2iE051534; Fri, 11 Oct 2019 18:37:02 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910111837.x9BIb2iE051534@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 11 Oct 2019 18:37:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353446 - head/sys/fs/msdosfs X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/fs/msdosfs X-SVN-Commit-Revision: 353446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 18:37:02 -0000 Author: kib Date: Fri Oct 11 18:37:02 2019 New Revision: 353446 URL: https://svnweb.freebsd.org/changeset/base/353446 Log: Plug the rest of undef behavior places that were missed in r337456. There are three more places in msdosfs_fat.c which might shift one into the sign bit. While there, fix formatting of KASSERTs. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/msdosfs/msdosfs_fat.c Modified: head/sys/fs/msdosfs/msdosfs_fat.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_fat.c Fri Oct 11 18:05:06 2019 (r353445) +++ head/sys/fs/msdosfs/msdosfs_fat.c Fri Oct 11 18:37:02 2019 (r353446) @@ -388,9 +388,10 @@ usemap_alloc(struct msdosfsmount *pmp, u_long cn) pmp->pm_maxcluster)); KASSERT((pmp->pm_flags & MSDOSFSMNT_RONLY) == 0, ("usemap_alloc on ro msdosfs mount")); - KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & (1 << (cn % N_INUSEBITS))) - == 0, ("Allocating used sector %ld %ld %x", cn, cn % N_INUSEBITS, - (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); + KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & + (1U << (cn % N_INUSEBITS))) == 0, + ("Allocating used sector %ld %ld %x", cn, cn % N_INUSEBITS, + (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); pmp->pm_inusemap[cn / N_INUSEBITS] |= 1U << (cn % N_INUSEBITS); KASSERT(pmp->pm_freeclustercount > 0, ("usemap_alloc: too little")); pmp->pm_freeclustercount--; @@ -409,9 +410,10 @@ usemap_free(struct msdosfsmount *pmp, u_long cn) ("usemap_free on ro msdosfs mount")); pmp->pm_freeclustercount++; pmp->pm_flags |= MSDOSFS_FSIMOD; - KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & (1 << (cn % N_INUSEBITS))) - != 0, ("Freeing unused sector %ld %ld %x", cn, cn % N_INUSEBITS, - (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); + KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & + (1U << (cn % N_INUSEBITS))) != 0, + ("Freeing unused sector %ld %ld %x", cn, cn % N_INUSEBITS, + (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); pmp->pm_inusemap[cn / N_INUSEBITS] &= ~(1U << (cn % N_INUSEBITS)); } @@ -648,7 +650,7 @@ chainlength(struct msdosfsmount *pmp, u_long start, u_ idx = start / N_INUSEBITS; start %= N_INUSEBITS; map = pmp->pm_inusemap[idx]; - map &= ~((1 << start) - 1); + map &= ~((1U << start) - 1); if (map) { len = ffs(map) - 1 - start; len = MIN(len, count); From owner-svn-src-head@freebsd.org Fri Oct 11 18:41:25 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88B1E157A7C; Fri, 11 Oct 2019 18:41:25 +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 46qcH92yQSz3RCB; Fri, 11 Oct 2019 18:41:25 +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 4A1FF1E5AF; Fri, 11 Oct 2019 18:41:25 +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 x9BIfP1e052451; Fri, 11 Oct 2019 18:41:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BIfPRD052450; Fri, 11 Oct 2019 18:41:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910111841.x9BIfPRD052450@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 11 Oct 2019 18:41:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353447 - head/sys/fs/devfs X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/fs/devfs X-SVN-Commit-Revision: 353447 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 18:41:25 -0000 Author: kib Date: Fri Oct 11 18:41:24 2019 New Revision: 353447 URL: https://svnweb.freebsd.org/changeset/base/353447 Log: devfs_vptocnp(): correct the component name when node is not at top. Node' cdp.si_name is the full path as provided by make_dev(9), it should not be returned by VOP_VPTOCNP() when only the last component is requested. Use the dirent entry instead. With this note, handling of VDIR and VCHR nodes only differs in handling of root vnode, which simplifies and unifies the logic. Reported by: Li, Zhichao1 Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/devfs/devfs_vnops.c Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Fri Oct 11 18:37:02 2019 (r353446) +++ head/sys/fs/devfs/devfs_vnops.c Fri Oct 11 18:41:24 2019 (r353447) @@ -284,38 +284,27 @@ devfs_vptocnp(struct vop_vptocnp_args *ap) if (error != 0) return (error); - i = *buflen; + if (vp->v_type != VCHR && vp->v_type != VDIR) { + error = ENOENT; + goto finished; + } + dd = vp->v_data; + if (vp->v_type == VDIR && dd == dmp->dm_rootdir) { + *dvp = vp; + vref(*dvp); + goto finished; + } - if (vp->v_type == VCHR) { - i -= strlen(dd->de_cdp->cdp_c.si_name); - if (i < 0) { - error = ENOMEM; - goto finished; - } - bcopy(dd->de_cdp->cdp_c.si_name, buf + i, - strlen(dd->de_cdp->cdp_c.si_name)); - de = dd->de_dir; - } else if (vp->v_type == VDIR) { - if (dd == dmp->dm_rootdir) { - *dvp = vp; - vref(*dvp); - goto finished; - } - i -= dd->de_dirent->d_namlen; - if (i < 0) { - error = ENOMEM; - goto finished; - } - bcopy(dd->de_dirent->d_name, buf + i, - dd->de_dirent->d_namlen); - de = dd; - } else { - error = ENOENT; + i = *buflen; + i -= dd->de_dirent->d_namlen; + if (i < 0) { + error = ENOMEM; goto finished; } + bcopy(dd->de_dirent->d_name, buf + i, dd->de_dirent->d_namlen); *buflen = i; - de = devfs_parent_dirent(de); + de = devfs_parent_dirent(dd); if (de == NULL) { error = ENOENT; goto finished; From owner-svn-src-head@freebsd.org Fri Oct 11 21:23:47 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C6FF1325A7; Fri, 11 Oct 2019 21:23:47 +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 46qgtV6Xxzz4314; Fri, 11 Oct 2019 21:23:46 +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 C35822028F; Fri, 11 Oct 2019 21:23:46 +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 x9BLNkbN055460; Fri, 11 Oct 2019 21:23:46 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BLNkfR055459; Fri, 11 Oct 2019 21:23:46 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201910112123.x9BLNkfR055459@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Fri, 11 Oct 2019 21:23:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353448 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 353448 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 21:23:47 -0000 Author: vangyzen Date: Fri Oct 11 21:23:46 2019 New Revision: 353448 URL: https://svnweb.freebsd.org/changeset/base/353448 Log: coredump_phnum_test: handle full file system gracefully Skip the test if the file system is full. That's out of scope of this test. MFC after: 1 week Sponsored by: Dell EMC Isilon Modified: head/tests/sys/kern/coredump_phnum_test.sh Modified: head/tests/sys/kern/coredump_phnum_test.sh ============================================================================== --- head/tests/sys/kern/coredump_phnum_test.sh Fri Oct 11 18:41:24 2019 (r353447) +++ head/tests/sys/kern/coredump_phnum_test.sh Fri Oct 11 21:23:46 2019 (r353448) @@ -53,17 +53,28 @@ coredump_phnum_body() case "$cuc" in 0) + unzip_status=0 ;; 1) - atf_check gunzip coredump_phnum_helper.core.gz + gunzip coredump_phnum_helper.core.gz 2>unzip_stderr + unzip_status=$? ;; 2) - atf_check zstd -qd coredump_phnum_helper.core.zst + zstd -qd coredump_phnum_helper.core.zst 2>unzip_stderr + unzip_status=$? ;; *) atf_skip "unsupported kern.compress_user_cores=$cuc" ;; esac + + if [ $unzip_status -ne 0 ]; then + if grep -q 'No space left on device' unzip_stderr; then + atf_skip "file system full: $(df $PWD | tail -n 1)" + fi + atf_fail "unzip failed; status ${unzip_status}; " \ + "stderr: $(cat unzip_stderr)" + fi # Check that core looks good if [ ! -f coredump_phnum_helper.core ]; then From owner-svn-src-head@freebsd.org Fri Oct 11 21:28:02 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAF4B132678; Fri, 11 Oct 2019 21:28:02 +0000 (UTC) (envelope-from brooks@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 46qgzQ4Zk0z439L; Fri, 11 Oct 2019 21:28:02 +0000 (UTC) (envelope-from brooks@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 7C27320291; Fri, 11 Oct 2019 21:28:02 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9BLS2md055730; Fri, 11 Oct 2019 21:28:02 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BLS20D055729; Fri, 11 Oct 2019 21:28:02 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910112128.x9BLS20D055729@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Fri, 11 Oct 2019 21:28:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353449 - head X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 353449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 21:28:02 -0000 Author: brooks Date: Fri Oct 11 21:28:02 2019 New Revision: 353449 URL: https://svnweb.freebsd.org/changeset/base/353449 Log: Centralize adding OBJCOPY=${XOBJCOPY} to LIB32WMAKEFLAGS. Reviewed by: emaste, imp Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21983 Modified: head/Makefile.libcompat Modified: head/Makefile.libcompat ============================================================================== --- head/Makefile.libcompat Fri Oct 11 21:23:46 2019 (r353448) +++ head/Makefile.libcompat Fri Oct 11 21:28:02 2019 (r353449) @@ -24,8 +24,7 @@ LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \ MACHINE_CPU="i686 mmx sse sse2" LIB32WMAKEFLAGS= \ AS="${XAS} --32" \ - LD="${XLD} -m elf_i386_fbsd -L${LIBCOMPATTMP}/usr/lib32" \ - OBJCOPY="${XOBJCOPY}" + LD="${XLD} -m elf_i386_fbsd -L${LIBCOMPATTMP}/usr/lib32" .elif ${TARGET_ARCH} == "powerpc64" .if empty(TARGET_CPUTYPE) @@ -36,8 +35,7 @@ LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE} LIB32CPUFLAGS+= -m32 LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc LIB32WMAKEFLAGS= \ - LD="${XLD} -m elf32ppc_fbsd" \ - OBJCOPY="${XOBJCOPY}" + LD="${XLD} -m elf32ppc_fbsd" .elif ${TARGET_ARCH:Mmips64*} != "" .if ${WANT_COMPILER_TYPE} == gcc || \ @@ -61,11 +59,10 @@ LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd" .else LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsmip_fbsd" .endif -LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}" .endif LIB32WMAKEFLAGS+= NM="${XNM}" - +LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}" LIB32CFLAGS= -DCOMPAT_32BIT LIB32DTRACE= ${DTRACE} -32 From owner-svn-src-head@freebsd.org Fri Oct 11 23:29:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A7271351C9; Fri, 11 Oct 2019 23:29:32 +0000 (UTC) (envelope-from kp@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 46qkgc0q1xz47t5; Fri, 11 Oct 2019 23:29:32 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id A9949DA89; Fri, 11 Oct 2019 23:29:31 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from [10.178.148.243] (unknown [192.55.54.60]) (Authenticated sender: kp) by venus.codepro.be (Postfix) with ESMTPSA id 3305E2E944; Sat, 12 Oct 2019 01:29:29 +0200 (CEST) From: "Kristof Provost" To: "Gleb Smirnoff" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib Date: Fri, 11 Oct 2019 16:29:50 -0700 X-Mailer: MailMate (2.0BETAr6142) Message-ID: <8EC71856-75DA-4231-AB73-22AB6621E9F5@FreeBSD.org> In-Reply-To: <201910072240.x97Me60x065650@repo.freebsd.org> References: <201910072240.x97Me60x065650@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 23:29:32 -0000 On 7 Oct 2019, at 15:40, Gleb Smirnoff wrote: > Author: glebius > Date: Mon Oct 7 22:40:05 2019 > New Revision: 353292 > URL: https://svnweb.freebsd.org/changeset/base/353292 > > Log: > Widen NET_EPOCH coverage. > > When epoch(9) was introduced to network stack, it was basically > dropped in place of existing locking, which was mutexes and > rwlocks. For the sake of performance mutex covered areas were > as small as possible, so became epoch covered areas. > > However, epoch doesn't introduce any contention, it just delays > memory reclaim. So, there is no point to minimise epoch covered > areas in sense of performance. Meanwhile entering/exiting epoch > also has non-zero CPU usage, so doing this less often is a win. > > Not the least is also code maintainability. In the new paradigm > we can assume that at any stage of processing a packet, we are > inside network epoch. This makes coding both input and output > path way easier. > > On output path we already enter epoch quite early - in the > ip_output(), in the ip6_output(). > > This patch does the same for the input path. All ISR processing, > network related callouts, other ways of packet injection to the > network stack shall be performed in net_epoch. Any leaf function > that walks network configuration now asserts epoch. > > Tricky part is configuration code paths - ioctls, sysctls. They > also call into leaf functions, so some need to be changed. > > This patch would introduce more epoch recursions (see EPOCH_TRACE) > than we had before. They will be cleaned up separately, as several > of them aren't trivial. Note, that unlike a lock recursion the > epoch recursion is safe and just wastes a bit of resources. > > Reviewed by: gallatin, hselasky, cy, adrian, kristof > Differential Revision: https://reviews.freebsd.org/D19111 > This appears to have broken vlan. To reproduce do: sudo ifconfig epair create sudo ifconfig vlan create vlandev epair0a vlan 42 I see the following panic: panic: Assertion in_epoch(net_epoch_preempt) failed at /usr/src/sys/net/if_vlan.c:1353 cpuid = 5 time = 1570828155 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0060d894c0 vpanic() at vpanic+0x17e/frame 0xfffffe0060d89520 panic() at panic+0x43/frame 0xfffffe0060d89580 vlan_config() at vlan_config+0x599/frame 0xfffffe0060d895c0 vlan_clone_create() at vlan_clone_create+0x29b/frame 0xfffffe0060d89630 if_clone_createif() at if_clone_createif+0x4a/frame 0xfffffe0060d89680 ifioctl() at ifioctl+0x6f4/frame 0xfffffe0060d89750 kern_ioctl() at kern_ioctl+0x295/frame 0xfffffe0060d897b0 sys_ioctl() at sys_ioctl+0x15c/frame 0xfffffe0060d89880 amd64_syscall() at amd64_syscall+0x2b5/frame 0xfffffe0060d899b0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe0060d899b0 --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80047dc2a, rsp = 0x7fffffffe1a8, rbp = 0x7fffffffe1b0 --- I guess that we need to enter net_epoch in vlan_clone_create(). Or perhaps that’s something that’s generically needed and it should be done on if_clone_createif(). Best regards, Kristof From owner-svn-src-head@freebsd.org Sat Oct 12 18:18:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2685D140589; Sat, 12 Oct 2019 18:18:12 +0000 (UTC) (envelope-from philip@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 46rCjw0DSPz4PjP; Sat, 12 Oct 2019 18:18:12 +0000 (UTC) (envelope-from philip@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 DC938772A; Sat, 12 Oct 2019 18:18:11 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9CIIBDT096498; Sat, 12 Oct 2019 18:18:11 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CIIBJE096497; Sat, 12 Oct 2019 18:18:11 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910121818.x9CIIBJE096497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sat, 12 Oct 2019 18:18:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353453 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: philip X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 353453 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 18:18:12 -0000 Author: philip Date: Sat Oct 12 18:18:11 2019 New Revision: 353453 URL: https://svnweb.freebsd.org/changeset/base/353453 Log: A comment in subr_devmap.c mentions that devmap_print_table() should be called on bootverbose. Do so on RISV-V too. Submitted by: Nicholas O'Brien Reviewed by: imp, kp Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D21998 Modified: head/sys/riscv/riscv/machdep.c Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Sat Oct 12 17:57:03 2019 (r353452) +++ head/sys/riscv/riscv/machdep.c Sat Oct 12 18:18:11 2019 (r353453) @@ -158,6 +158,8 @@ cpu_startup(void *dummy) printf("avail memory = %ju (%ju MB)\n", ptoa((uintmax_t)vm_free_count()), ptoa((uintmax_t)vm_free_count()) / (1024 * 1024)); + if (bootverbose) + devmap_print_table(); bufinit(); vm_pager_bufferinit(); From owner-svn-src-head@freebsd.org Sat Oct 12 20:53:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6EA741447DE; Sat, 12 Oct 2019 20:53:42 +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 46rH9L0d02z4XMJ; Sat, 12 Oct 2019 20:53:42 +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 A416F93EE; Sat, 12 Oct 2019 20:53:41 +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 x9CKrfnp090963; Sat, 12 Oct 2019 20:53:41 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CKrfCp090962; Sat, 12 Oct 2019 20:53:41 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201910122053.x9CKrfCp090962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 12 Oct 2019 20:53:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353455 - head/lib/csu/powerpc X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/lib/csu/powerpc X-SVN-Commit-Revision: 353455 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 20:53:42 -0000 Author: jhibbits Date: Sat Oct 12 20:53:40 2019 New Revision: 353455 URL: https://svnweb.freebsd.org/changeset/base/353455 Log: [PowerPC] force applications linked with lib CSU to have .got Summary: This forces applications linked with lib CSU to have a .got, fixing binaries linked with LLD9 after secure-plt was enabled on FreeBSD. Submitted by: Alfredo Dal'Ava Junior (alfredo.junior_eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D21476 Modified: head/lib/csu/powerpc/crt1.c Modified: head/lib/csu/powerpc/crt1.c ============================================================================== --- head/lib/csu/powerpc/crt1.c Sat Oct 12 19:03:07 2019 (r353454) +++ head/lib/csu/powerpc/crt1.c Sat Oct 12 20:53:40 2019 (r353455) @@ -102,3 +102,9 @@ __asm__(".text"); __asm__("eprol:"); __asm__(".previous"); #endif + +#ifndef PIC +__asm__(".text\n" + "\t.global _GLOBAL_OFFSET_TABLE_\n" + "\t.reloc 0, R_PPC_NONE, _GLOBAL_OFFSET_TABLE_"); +#endif From owner-svn-src-head@freebsd.org Sat Oct 12 19:03:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EFD4E142095; Sat, 12 Oct 2019 19:03:07 +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 46rDjl63zsz4S0g; Sat, 12 Oct 2019 19:03:07 +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 B08B88019; Sat, 12 Oct 2019 19:03:07 +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 x9CJ37dp026384; Sat, 12 Oct 2019 19:03:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CJ37N5026383; Sat, 12 Oct 2019 19:03:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201910121903.x9CJ37N5026383@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 12 Oct 2019 19:03:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353454 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 353454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 19:03:08 -0000 Author: mav Date: Sat Oct 12 19:03:07 2019 New Revision: 353454 URL: https://svnweb.freebsd.org/changeset/base/353454 Log: Allocate device softc from the device domain. Since we are trying to bind device interrupt threads to the device domain, it should have sense to make memory often accessed by them local. If domain is not known, fall back to round-robin. MFC after: 2 weeks Sponsored by: iXsystems, Inc. Modified: head/sys/kern/subr_bus.c Modified: head/sys/kern/subr_bus.c ============================================================================== --- head/sys/kern/subr_bus.c Sat Oct 12 18:18:11 2019 (r353453) +++ head/sys/kern/subr_bus.c Sat Oct 12 19:03:07 2019 (r353454) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -2541,7 +2542,7 @@ void device_set_softc(device_t dev, void *softc) { if (dev->softc && !(dev->flags & DF_EXTERNALSOFTC)) - free(dev->softc, M_BUS_SC); + free_domain(dev->softc, M_BUS_SC); dev->softc = softc; if (dev->softc) dev->flags |= DF_EXTERNALSOFTC; @@ -2558,7 +2559,7 @@ device_set_softc(device_t dev, void *softc) void device_free_softc(void *softc) { - free(softc, M_BUS_SC); + free_domain(softc, M_BUS_SC); } /** @@ -2817,6 +2818,9 @@ device_is_devclass_fixed(device_t dev) int device_set_driver(device_t dev, driver_t *driver) { + int domain; + struct domainset *policy; + if (dev->state >= DS_ATTACHED) return (EBUSY); @@ -2824,7 +2828,7 @@ device_set_driver(device_t dev, driver_t *driver) return (0); if (dev->softc && !(dev->flags & DF_EXTERNALSOFTC)) { - free(dev->softc, M_BUS_SC); + free_domain(dev->softc, M_BUS_SC); dev->softc = NULL; } device_set_desc(dev, NULL); @@ -2833,8 +2837,12 @@ device_set_driver(device_t dev, driver_t *driver) if (driver) { kobj_init((kobj_t) dev, (kobj_class_t) driver); if (!(dev->flags & DF_EXTERNALSOFTC) && driver->size > 0) { - dev->softc = malloc(driver->size, M_BUS_SC, - M_NOWAIT | M_ZERO); + if (bus_get_domain(dev, &domain) == 0) + policy = DOMAINSET_PREF(domain); + else + policy = DOMAINSET_RR(); + dev->softc = malloc_domainset(driver->size, M_BUS_SC, + policy, M_NOWAIT | M_ZERO); if (!dev->softc) { kobj_delete((kobj_t) dev, NULL); kobj_init((kobj_t) dev, &null_class); From owner-svn-src-head@freebsd.org Sat Oct 12 17:57:04 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6FD6E13EF96; Sat, 12 Oct 2019 17:57:04 +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 46rCFX2K5Nz4NBX; Sat, 12 Oct 2019 17:57:04 +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 32F647399; Sat, 12 Oct 2019 17:57:04 +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 x9CHv41T084703; Sat, 12 Oct 2019 17:57:04 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CHv4sK084702; Sat, 12 Oct 2019 17:57:04 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910121757.x9CHv4sK084702@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 12 Oct 2019 17:57:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353452 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353452 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 17:57:04 -0000 Author: tuexen Date: Sat Oct 12 17:57:03 2019 New Revision: 353452 URL: https://svnweb.freebsd.org/changeset/base/353452 Log: Ensure that local variables are reset to their initial value when dealing with error cases in a loop over all remote addresses. This issue was found and reported by OSS_Fuzz in: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18080 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18086 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18121 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18163 MFC after: 3 days Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sat Oct 12 17:15:32 2019 (r353451) +++ head/sys/netinet/sctp_output.c Sat Oct 12 17:57:03 2019 (r353452) @@ -7872,8 +7872,8 @@ sctp_med_chunk_output(struct sctp_inpcb *inp, int bundle_at, ctl_cnt, no_data_chunks, eeor_mode; unsigned int mtu, r_mtu, omtu, mx_mtu, to_out; int tsns_sent = 0; - uint32_t auth_offset = 0; - struct sctp_auth_chunk *auth = NULL; + uint32_t auth_offset; + struct sctp_auth_chunk *auth; uint16_t auth_keyid; int override_ok = 1; int skip_fill_up = 0; @@ -8068,6 +8068,8 @@ again_one_more_time: } bundle_at = 0; endoutchain = outchain = NULL; + auth = NULL; + auth_offset = 0; no_fragmentflg = 1; one_chunk = 0; if (net->dest_state & SCTP_ADDR_UNCONFIRMED) { From owner-svn-src-head@freebsd.org Sat Oct 12 18:46:26 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A217714163C; Sat, 12 Oct 2019 18:46:26 +0000 (UTC) (envelope-from kp@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 46rDLV3kx5z4Qrj; Sat, 12 Oct 2019 18:46:26 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 34C0E15E73; Sat, 12 Oct 2019 18:46:26 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from [10.178.148.25] (unknown [192.55.54.59]) (Authenticated sender: kp) by venus.codepro.be (Postfix) with ESMTPSA id F073B303A1; Sat, 12 Oct 2019 20:46:22 +0200 (CEST) From: "Kristof Provost" To: "Gleb Smirnoff" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353292 - in head/sys: contrib/ipfilter/netinet dev/firewire dev/iicbus dev/usb/net kern net netgraph netinet netinet6 netipsec netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib Date: Sat, 12 Oct 2019 11:46:46 -0700 X-Mailer: MailMate (2.0BETAr6142) Message-ID: <17A70566-1922-44BE-BFDB-ED713B6E54F6@FreeBSD.org> In-Reply-To: <8EC71856-75DA-4231-AB73-22AB6621E9F5@FreeBSD.org> References: <201910072240.x97Me60x065650@repo.freebsd.org> <8EC71856-75DA-4231-AB73-22AB6621E9F5@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 18:46:26 -0000 On 11 Oct 2019, at 16:29, Kristof Provost wrote: > On 7 Oct 2019, at 15:40, Gleb Smirnoff wrote: >> Author: glebius >> Date: Mon Oct 7 22:40:05 2019 >> New Revision: 353292 >> URL: https://svnweb.freebsd.org/changeset/base/353292 >> >> Log: >> Widen NET_EPOCH coverage. >> >> When epoch(9) was introduced to network stack, it was basically >> dropped in place of existing locking, which was mutexes and >> rwlocks. For the sake of performance mutex covered areas were >> as small as possible, so became epoch covered areas. >> >> However, epoch doesn't introduce any contention, it just delays >> memory reclaim. So, there is no point to minimise epoch covered >> areas in sense of performance. Meanwhile entering/exiting epoch >> also has non-zero CPU usage, so doing this less often is a win. >> >> Not the least is also code maintainability. In the new paradigm >> we can assume that at any stage of processing a packet, we are >> inside network epoch. This makes coding both input and output >> path way easier. >> >> On output path we already enter epoch quite early - in the >> ip_output(), in the ip6_output(). >> >> This patch does the same for the input path. All ISR processing, >> network related callouts, other ways of packet injection to the >> network stack shall be performed in net_epoch. Any leaf function >> that walks network configuration now asserts epoch. >> >> Tricky part is configuration code paths - ioctls, sysctls. They >> also call into leaf functions, so some need to be changed. >> >> This patch would introduce more epoch recursions (see EPOCH_TRACE) >> than we had before. They will be cleaned up separately, as several >> of them aren't trivial. Note, that unlike a lock recursion the >> epoch recursion is safe and just wastes a bit of resources. >> >> Reviewed by: gallatin, hselasky, cy, adrian, kristof >> Differential Revision: https://reviews.freebsd.org/D19111 >> > This appears to have broken vlan. > > To reproduce do: > > sudo ifconfig epair create > sudo ifconfig vlan create vlandev epair0a vlan 42 > > I see the following panic: > > panic: Assertion in_epoch(net_epoch_preempt) failed at > /usr/src/sys/net/if_vlan.c:1353 > cpuid = 5 > time = 1570828155 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > 0xfffffe0060d894c0 > vpanic() at vpanic+0x17e/frame 0xfffffe0060d89520 > panic() at panic+0x43/frame 0xfffffe0060d89580 > vlan_config() at vlan_config+0x599/frame 0xfffffe0060d895c0 > vlan_clone_create() at vlan_clone_create+0x29b/frame > 0xfffffe0060d89630 > if_clone_createif() at if_clone_createif+0x4a/frame > 0xfffffe0060d89680 > ifioctl() at ifioctl+0x6f4/frame 0xfffffe0060d89750 > kern_ioctl() at kern_ioctl+0x295/frame 0xfffffe0060d897b0 > sys_ioctl() at sys_ioctl+0x15c/frame 0xfffffe0060d89880 > amd64_syscall() at amd64_syscall+0x2b5/frame 0xfffffe0060d899b0 > fast_syscall_common() at fast_syscall_common+0x101/frame > 0xfffffe0060d899b0 > --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80047dc2a, rsp = > 0x7fffffffe1a8, rbp = 0x7fffffffe1b0 --- > > I guess that we need to enter net_epoch in vlan_clone_create(). Or > perhaps that’s something that’s generically needed and it should > be done on if_clone_createif(). > Alternatively, this test case seems to trigger a number of different issues (I’ve tried entering the epoch and removing the assertions and keep running into different issues): diff --git a/tests/sys/net/Makefile b/tests/sys/net/Makefile index 03e0631f625..bf8fb174e47 100644 --- a/tests/sys/net/Makefile +++ b/tests/sys/net/Makefile @@ -8,6 +8,7 @@ BINDIR= ${TESTSDIR} ATF_TESTS_SH+= if_lagg_test ATF_TESTS_SH+= if_clone_test ATF_TESTS_SH+= if_tun_test +ATF_TESTS_SH+= if_vlan # The tests are written to be run in parallel, but doing so leads to random # panics. I think it's because the kernel's list of interfaces isn't properly diff --git a/tests/sys/net/if_vlan.sh b/tests/sys/net/if_vlan.sh new file mode 100644 index 00000000000..020ec59830f --- /dev/null +++ b/tests/sys/net/if_vlan.sh @@ -0,0 +1,38 @@ +# $FreeBSD$ + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "basic" "cleanup" +basic_head() +{ + atf_set descr 'Basic VLAN test' + atf_set require.user root +} + +basic_body() +{ + vnet_init + + epair_vlan=$(vnet_mkepair) + + vnet_mkjail alcatraz ${epair_vlan}a + vnet_mkjail singsing ${epair_vlan}b + + vlan0=$(jexec alcatraz ifconfig vlan create vlandev ${epair_vlan}a vlan 42) + jexec alcatraz ifconfig ${vlan0} 10.0.0.1/24 up + + vlan1=$(jexec singsing ifconfig vlan create vlandev ${epair_vlan}b vlan 42) + jexec singsing ifconfig ${vlan1} 10.0.0.2/24 up + + atf_check -s exit:0 jexec singsing ping -c 1 10.0.0.1 +} + +basic_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "basic" +} Best regards, Kristof From owner-svn-src-head@freebsd.org Sat Oct 12 22:27:58 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CA2241479B0; Sat, 12 Oct 2019 22:27:58 +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 46rKG63yBYz4bRp; Sat, 12 Oct 2019 22:27:58 +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 2F9BFA41C; Sat, 12 Oct 2019 22:27:58 +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 x9CMRveZ044043; Sat, 12 Oct 2019 22:27:57 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CMRvPK044042; Sat, 12 Oct 2019 22:27:57 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201910122227.x9CMRvPK044042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sat, 12 Oct 2019 22:27:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353456 - 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: 353456 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 22:27:58 -0000 Author: scottl Date: Sat Oct 12 22:27:57 2019 New Revision: 353456 URL: https://svnweb.freebsd.org/changeset/base/353456 Log: Change from the non-standard nomenclature of "chip" and "card" to the standard nomenclature of "device" and "vendor" with the "sub" variants. This changes the printed format, so anything that scrapes and parses this will need to be adapted. No compatibility shims are provided, but this will not be MFC'd. Reviewed by: jhb, emaste, gtetlow Approved by: jhb, emaste, gtetlow Modified: head/usr.sbin/pciconf/pciconf.c Modified: head/usr.sbin/pciconf/pciconf.c ============================================================================== --- head/usr.sbin/pciconf/pciconf.c Sat Oct 12 20:53:40 2019 (r353455) +++ head/usr.sbin/pciconf/pciconf.c Sat Oct 12 22:27:57 2019 (r353456) @@ -261,8 +261,8 @@ list_devs(const char *name, int verbose, int bars, int return; } for (p = conf; p < &conf[pc.num_matches]; p++) { - printf("%s%d@pci%d:%d:%d:%d:\tclass=0x%06x card=0x%08x " - "chip=0x%08x rev=0x%02x hdr=0x%02x\n", + printf("%s%d@pci%d:%d:%d:%d:\tclass=0x%06x subvendor=0x%04x subdevice=0x%04x " + "vendor=0x%04x device=0x%04x rev=0x%02x hdr=0x%02x\n", *p->pd_name ? p->pd_name : "none", *p->pd_name ? (int)p->pd_unit : @@ -270,8 +270,8 @@ list_devs(const char *name, int verbose, int bars, int p->pc_sel.pc_bus, p->pc_sel.pc_dev, p->pc_sel.pc_func, (p->pc_class << 16) | (p->pc_subclass << 8) | p->pc_progif, - (p->pc_subdevice << 16) | p->pc_subvendor, - (p->pc_device << 16) | p->pc_vendor, + p->pc_subdevice, p->pc_subvendor, + p->pc_device, p->pc_vendor, p->pc_revid, p->pc_hdr); if (verbose) list_verbose(p); From owner-svn-src-head@freebsd.org Sat Oct 12 23:16:18 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AC114150A3A; Sat, 12 Oct 2019 23:16:18 +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 46rLKt47NHz3DCN; Sat, 12 Oct 2019 23:16:18 +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 6DC92ACF6; Sat, 12 Oct 2019 23:16:18 +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 x9CNGIsQ073384; Sat, 12 Oct 2019 23:16:18 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CNGIjK073383; Sat, 12 Oct 2019 23:16:18 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <201910122316.x9CNGIjK073383@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Sat, 12 Oct 2019 23:16:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353459 - head/sys/contrib/ncsw/user/env X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/sys/contrib/ncsw/user/env X-SVN-Commit-Revision: 353459 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 23:16:18 -0000 Author: bdragon Date: Sat Oct 12 23:16:17 2019 New Revision: 353459 URL: https://svnweb.freebsd.org/changeset/base/353459 Log: Fix read past end of struct in ncsw glue code. The logic in XX_IsPortalIntr() was reading past the end of XX_PInfo. This was causing it to erroneously return 1 instead of 0 in some circumstances, causing a panic on the AmigaOne X5000 due to mixing exclusive and nonexclusive interrupts on the same interrupt line. Since this code is only called a couple of times during startup, use a simple double loop instead of the complex read-ahead single loop. This also fixes a bug where it would never check cpu=0 on type=1. Approved by: jhibbits (mentor) Differential Revision: https://reviews.freebsd.org/D21988 Modified: head/sys/contrib/ncsw/user/env/xx.c Modified: head/sys/contrib/ncsw/user/env/xx.c ============================================================================== --- head/sys/contrib/ncsw/user/env/xx.c Sat Oct 12 23:01:16 2019 (r353458) +++ head/sys/contrib/ncsw/user/env/xx.c Sat Oct 12 23:16:17 2019 (r353459) @@ -288,16 +288,10 @@ XX_IsPortalIntr(uintptr_t irq) { int cpu, type; /* Check interrupt numbers of all available portals */ - for (cpu = 0, type = 0; XX_PInfo.portal_intr[type][cpu] != 0; cpu++) { - if (irq == XX_PInfo.portal_intr[type][cpu]) { - /* Found it! */ - return (1); - } - if (XX_PInfo.portal_intr[type][cpu + 1] == 0) { - type++; - cpu = 0; - } - } + for (type = 0; type < 2; type++) + for (cpu = 0; cpu < MAXCPU; cpu++) + if (irq == XX_PInfo.portal_intr[type][cpu]) + return (1); return (0); } From owner-svn-src-head@freebsd.org Sat Oct 12 22:36:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DCEBA147CFB for ; Sat, 12 Oct 2019 22:36:42 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) (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 46rKS959yRz4brC for ; Sat, 12 Oct 2019 22:36:41 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qt1-x842.google.com with SMTP id m61so19449583qte.7 for ; Sat, 12 Oct 2019 15:36:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=JLAC1g405iQlPRczun+iBTcSgZ5iPTlwbwUoWkTaQIo=; b=Tal/qEpJEdwKn7ZaiK8HeI/aTfGd2A0kHAGWqQRZRrkPXbpGotCIxJQyCVzAuHNpDU F3W1aGL8RtMvi962Oe6LIAwjW3WNJ/ubw6Nn2GGeuFH+dafx+0PqMH/PRu9JD9N7PhTB Rlau1DMneSr0jThVUTptOvRV22nVzWiaLaMbEsjTtO7vZ5xonqpvYcARE5rEsPY8Tn66 zxI/lJScrZhppu6GjAdBQJBW8qFyYZd8yfu/Ti2aV4pYTQFJQogjRUF+wTwNWTKo9VvC 7HB9wW9+5+fjNFk2x2Iuru647C5L+LejdvWVRMG8NQl+MYZjI5T2l3D7FDH3Hl22HDJK JOXw== 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:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=JLAC1g405iQlPRczun+iBTcSgZ5iPTlwbwUoWkTaQIo=; b=aL8Vax3GpcT2Qe7upL2sVMolGDRWIJBsLt5eah4MdJfSfhi/9DQLDoY2XzKXxXg7i6 yU3IyhIv9w1kJ3pyIhEowsF4ylq/VyZ834ZZt2hNnh/xkMdFcfQ2+a4WM1jjFgphW/tS CwkG6HTKlN+c1f4IkxMvGtxPv2tufwag5C2bdS+HNSJbrZsKHtvdof4uc5cZ3qCPVZFk o3/yIAl9BjYs6a0IW/GmrGt3zY+xNfAeotgflQqlxYgYLjRpjQt94TqAM5TDnl/Gb0Hu pLvugdeOjG+Xp1T/fKnu3mUJBV1Fj0j8pmNSOwkuFa48qplGIfzomrASl+L3vVBGIcK0 99nA== X-Gm-Message-State: APjAAAX/DmAx4Fn6Hn2ywJbc1QR8vEEMKrORMx/bILeCorrXG5zQNHF0 eVOFPBbVNZ6cCSuQK4r4pq8bNoQa3oXpWg== X-Google-Smtp-Source: APXvYqzYXZ5LOCWDlg17dU4mL78kV6vadCj5FRRTpkrqMfbwWpOYFmYf2v4ywzR75MknzTMD33WJGA== X-Received: by 2002:ac8:108e:: with SMTP id a14mr24414438qtj.171.1570919800376; Sat, 12 Oct 2019 15:36:40 -0700 (PDT) Received: from mutt-hbsd (pool-100-16-231-224.bltmmd.fios.verizon.net. [100.16.231.224]) by smtp.gmail.com with ESMTPSA id v68sm5945243qkd.109.2019.10.12.15.36.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Oct 2019 15:36:39 -0700 (PDT) Date: Sat, 12 Oct 2019 18:36:38 -0400 From: Shawn Webb To: Scott Long Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r353456 - head/usr.sbin/pciconf Message-ID: <20191012223638.nf6zimjxzw2hyyc5@mutt-hbsd> References: <201910122227.x9CMRvPK044042@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="bpnzzbflp2gmgoqi" Content-Disposition: inline In-Reply-To: <201910122227.x9CMRvPK044042@repo.freebsd.org> X-Operating-System: FreeBSD mutt-hbsd 13.0-CURRENT-HBSD FreeBSD 13.0-CURRENT-HBSD r352488+2a20025064d4-c272097(hardened/current/master) HARDENEDBSD-13-CURRENT amd64 X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0xFF2E67A277F8E1FA User-Agent: NeoMutt/20180716 X-Rspamd-Queue-Id: 46rKS959yRz4brC X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=hardenedbsd.org header.s=google header.b=Tal/qEpJ; dmarc=none; spf=pass (mx1.freebsd.org: domain of shawn.webb@hardenedbsd.org designates 2607:f8b0:4864:20::842 as permitted sender) smtp.mailfrom=shawn.webb@hardenedbsd.org X-Spamd-Result: default: False [-4.60 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[hardenedbsd.org:s=google]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[hardenedbsd.org]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[hardenedbsd.org:+]; RCVD_IN_DNSWL_NONE(0.00)[2.4.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]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-0.50)[ip: (2.20), ipnet: 2607:f8b0::/32(-2.51), asn: 15169(-2.12), country: US(-0.05)]; RECEIVED_SPAMHAUS_PBL(0.00)[224.231.16.100.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 22:36:42 -0000 --bpnzzbflp2gmgoqi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Oct 12, 2019 at 10:27:57PM +0000, Scott Long wrote: > Author: scottl > Date: Sat Oct 12 22:27:57 2019 > New Revision: 353456 > URL: https://svnweb.freebsd.org/changeset/base/353456 >=20 > Log: > Change from the non-standard nomenclature of "chip" and "card" to the > standard nomenclature of "device" and "vendor" with the "sub" variants. > This changes the printed format, so anything that scrapes and parses > this will need to be adapted. No compatibility shims are provided, > but this will not be MFC'd. > =20 > Reviewed by: jhb, emaste, gtetlow > Approved by: jhb, emaste, gtetlow Relnotes: ? RELNOTES: ? UPDATING: ? --=20 Shawn Webb Cofounder / Security Engineer HardenedBSD Tor-ified Signal: +1 443-546-8752 Tor+XMPP+OTR: lattera@is.a.hacker.sx GPG Key ID: 0xFF2E67A277F8E1FA GPG Key Fingerprint: D206 BB45 15E0 9C49 0CF9 3633 C85B 0AF8 AB23 0FB2 --bpnzzbflp2gmgoqi Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAl2iVXEACgkQ/y5nonf4 4fq0pQ//a0+ZZZESMYmP51ChSgsfbaub1bWId6gxJ7QKglS2CcvZWkzF2GEQyU5H PaYknSNragJXS1VFbYTn6YkWMh/8ij6oOl9o/4WbWsknxno2J6SOdGiesSTnbBmD ZE8jcNQle1zxOkyObCzTadVC+3BEVCe0uD6w6muUNiZxPqrYLQYHWWAJEuC3IgFi C0Sb1nEsPRpfyjpzZp1xxkmMo4qCULlmKUHnH3FU4XYb1N4YGpmiteQHw8QHPf5q moLLRA5HMMtu8N4W+41OPNY5m8WOIifKpn+6sPUcSFp264JLwLwo60JxO0WsGDox TKq2FEBnuExtHBTt0Oa5LOsD3AvLOm8DEdX19QSgKg+haPtOPyr7GIUiTws8NUpf EmMg4t9ICEzqkJGG26377JOqMbw14ElTh61dmP4oIR+yY4zpU8dhoK+gfBegp+Kz OIr3R/D+yFcULdlAq27KVUH0vBk3aKu+6JqPY6Qqn4nx8887VefjA4XwbV919Mb/ FHFEZUIBboLr5SBjNkhaCNc13liQ9Kb12QfdoDfgBIbynGE6EQRcqmAaY80uMHvs cLo1i4XxnnzJmD7R5YTpcoA7BVOc1g3gwCvdTXoIOh/4g4LCX0wFhm7+ApH8sJ80 KiKyyot61jUEProXXlfNXIgkkL6qiv8b0U3mknqn9DrhHFKG4d4= =UMSh -----END PGP SIGNATURE----- --bpnzzbflp2gmgoqi-- From owner-svn-src-head@freebsd.org Sat Oct 12 22:58:33 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7CFB14A09D; Sat, 12 Oct 2019 22:58:33 +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 46rKxP5S16z4cYx; Sat, 12 Oct 2019 22:58:33 +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 9E764A974; Sat, 12 Oct 2019 22:58:33 +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 x9CMwXM6061601; Sat, 12 Oct 2019 22:58:33 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CMwXfR061600; Sat, 12 Oct 2019 22:58:33 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910122258.x9CMwXfR061600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 12 Oct 2019 22:58:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353457 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 353457 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 22:58:34 -0000 Author: markj Date: Sat Oct 12 22:58:33 2019 New Revision: 353457 URL: https://svnweb.freebsd.org/changeset/base/353457 Log: Add a missing include of opt_sctp.h. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/netinet6/ip6_forward.c Modified: head/sys/netinet6/ip6_forward.c ============================================================================== --- head/sys/netinet6/ip6_forward.c Sat Oct 12 22:27:57 2019 (r353456) +++ head/sys/netinet6/ip6_forward.c Sat Oct 12 22:58:33 2019 (r353457) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet6.h" #include "opt_ipsec.h" #include "opt_ipstealth.h" +#include "opt_sctp.h" #include #include From owner-svn-src-head@freebsd.org Sat Oct 12 23:01:16 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E3E2314AA35; Sat, 12 Oct 2019 23:01:16 +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 46rL0X5YZ4z4cm0; Sat, 12 Oct 2019 23:01:16 +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 A340BAAC1; Sat, 12 Oct 2019 23:01:16 +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 x9CN1Gpj063332; Sat, 12 Oct 2019 23:01:16 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CN1GQ8063331; Sat, 12 Oct 2019 23:01:16 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910122301.x9CN1GQ8063331@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 12 Oct 2019 23:01:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353458 - in head/sys: modules/pf netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: modules/pf netpfil/pf X-SVN-Commit-Revision: 353458 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 23:01:17 -0000 Author: markj Date: Sat Oct 12 23:01:16 2019 New Revision: 353458 URL: https://svnweb.freebsd.org/changeset/base/353458 Log: Add a missing include of opt_sctp.h. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/modules/pf/Makefile head/sys/netpfil/pf/pf.c Modified: head/sys/modules/pf/Makefile ============================================================================== --- head/sys/modules/pf/Makefile Sat Oct 12 22:58:33 2019 (r353457) +++ head/sys/modules/pf/Makefile Sat Oct 12 23:01:16 2019 (r353458) @@ -6,7 +6,7 @@ KMOD= pf SRCS= pf.c pf_if.c pf_lb.c pf_osfp.c pf_ioctl.c pf_norm.c pf_table.c \ pf_ruleset.c in4_cksum.c \ bus_if.h device_if.h \ - opt_pf.h opt_inet.h opt_inet6.h opt_bpf.h opt_global.h + opt_pf.h opt_inet.h opt_inet6.h opt_bpf.h opt_sctp.h opt_global.h .if !defined(KERNBUILDDIR) # pflog can be loaded as a module, have the additional checks turned on Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Sat Oct 12 22:58:33 2019 (r353457) +++ head/sys/netpfil/pf/pf.c Sat Oct 12 23:01:16 2019 (r353458) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet6.h" #include "opt_bpf.h" #include "opt_pf.h" +#include "opt_sctp.h" #include #include From owner-svn-src-head@freebsd.org Tue Sep 3 14:06:40 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0B623DCBEA; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46N7zZ3KdHz4Phc; Tue, 3 Sep 2019 14:06:34 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1452) id 1A0781A880; Tue, 3 Sep 2019 14:06:12 +0000 (UTC) X-Original-To: yuripv@localmail.freebsd.org Delivered-To: yuripv@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id 00ACD3BDD; Tue, 9 Apr 2019 21:08:51 +0000 (UTC) (envelope-from owner-src-committers@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 45FEF81DB1; Tue, 9 Apr 2019 21:08:51 +0000 (UTC) (envelope-from owner-src-committers@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 538) id 1537D3B8B; Tue, 9 Apr 2019 21:08:51 +0000 (UTC) Delivered-To: src-committers@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id 3BECB3B85; Tue, 9 Apr 2019 21:08:48 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 CE2AF81DA9; Tue, 9 Apr 2019 21:08:47 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x39L8adJ062248; Tue, 9 Apr 2019 14:08:36 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x39L8ZCG062247; Tue, 9 Apr 2019 14:08:35 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201904092108.x39L8ZCG062247@gndrsh.dnsmgr.net> Subject: Re: svn commit: r346017 - in head: libexec/rc libexec/rc/rc.d share/man/man5 In-Reply-To: <56770290-a7f2-07dc-3f5a-f9d5721db724@rees.space> To: Chris Rees CC: Chris Rees , rgrimes@freebsd.org, "Rodney W. Grimes" , Andriy Gapon , "O. Hartmann" , Chris Rees , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Precedence: bulk X-Loop: FreeBSD.org Sender: owner-src-committers@freebsd.org X-Rspamd-Queue-Id: 45FEF81DB1 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Status: O X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:06:40 -0000 X-Original-Date: Tue, 9 Apr 2019 14:08:35 -0700 (PDT) X-List-Received-Date: Tue, 03 Sep 2019 14:06:40 -0000 > On 09/04/2019 20:59, Chris Rees wrote: > > On 9 April 2019 20:55:07 BST, "Rodney W. Grimes" wrote: > >>> On 09/04/2019 21:33, Rodney W. Grimes wrote: > >>>> I think the trigger issue is: > >>>> grep zfs /etc/rc.d/zvol > >>>> rcvar="zfs_enable" > >>>> required_modules="zfs" > >>>> > >>>> that module requires may be going south with the > >>>> new code when the module is built into the kernel. > >>> Maybe it's because the module's name is zfsctrl (for whatever reason) > >> while the > >>> module file is named zfs.ko. > >> I suspect that could also lead to issues with the new code. > >> It seems to be failing to detect that zfs is infact functional in the > >> kernel, > >> and blindly, or not so blindly, trying to load zfs,ko, which when you > >> build > >> it into the kernel you usually do so without any modules built, so > >> there is > >> no /boot/kernel/zfs.ko, and even if you did build it any attempt to > >> load > >> it would return an error. > > Loading with it built in isn't a problem, as I showed earlier. > > > > Loading when it doesn't exist *is*. > > > > I'm torn. Either we could revert this, or add a check to the required_modules function instead, which I think is the better solution. > > Hang on, > > [crees@pegasus]~% sudo kldload -n zfsctrl && echo yes > yes I think your testing the return value of sudo here? > [crees@pegasus]~% find /boot -name zfsctrl\* > [crees@pegasus]~% > > I think that, rather than speculating, we should wait for Oliver to > confirm that this is actually the problem, because I still don't think > it is. > > Chris > > > -- > This message has been scanned for viruses and > dangerous content by MailScanner, and is > believed to be clean. > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Tue Sep 3 14:06:40 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DC34CDCC38; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46N7zb1zDqz4Pj6; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1452) id 49EC81A8AA; Tue, 3 Sep 2019 14:06:12 +0000 (UTC) X-Original-To: yuripv@localmail.freebsd.org Delivered-To: yuripv@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id 2588C4D38; Tue, 9 Apr 2019 21:48:02 +0000 (UTC) (envelope-from owner-src-committers@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 4B1A383EF3; Tue, 9 Apr 2019 21:48:01 +0000 (UTC) (envelope-from owner-src-committers@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 538) id 1F8564CCC; Tue, 9 Apr 2019 21:48:01 +0000 (UTC) Delivered-To: src-committers@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id A4DF04CC5; Tue, 9 Apr 2019 21:47:58 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from ecc05.stack.nl (ws0.zlo.nu [190.2.135.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.stack.nl", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6EBD683EE7; Tue, 9 Apr 2019 21:47:56 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mail02.stack.nl (blade.stack.nl [51.15.111.152]) by ecc05.stack.nl (Postfix) with ESMTPS id 2436F100F73; Tue, 9 Apr 2019 21:47:47 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail02.stack.nl (Postfix) with ESMTP id 024F0240FD7; Tue, 9 Apr 2019 21:47:47 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail02 Received: from mail02.stack.nl ([127.0.0.1]) by localhost (mail02.stack.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oGXvYWEm2_mo; Tue, 9 Apr 2019 21:47:44 +0000 (UTC) Received: from blade.stack.nl (blade.stack.nl [192.168.122.130]) by mail02.stack.nl (Postfix) with ESMTP id 3A6A2240FD4; Tue, 9 Apr 2019 21:47:44 +0000 (UTC) Received: by blade.stack.nl (Postfix, from userid 1677) id 12C08211C5; Tue, 9 Apr 2019 23:47:44 +0200 (CEST) From: Jilles Tjoelker To: Chris Rees Cc: rgrimes@freebsd.org, "Rodney W. Grimes" , Chris Rees , Andriy Gapon , "O. Hartmann" , Chris Rees , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r346017 - in head: libexec/rc libexec/rc/rc.d share/man/man5 Message-ID: <20190409214743.GA9621@stack.nl> References: <201904092108.x39L8ZCG062247@gndrsh.dnsmgr.net> <2B336327-528C-4E16-AA5D-B3497B1941D0@bayofrum.net> <95242E98-E578-476E-AFA6-099F00AF50BC@bayofrum.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <95242E98-E578-476E-AFA6-099F00AF50BC@bayofrum.net> User-Agent: Mutt/1.9.4 (2018-02-28) Precedence: bulk X-Loop: FreeBSD.org Sender: owner-src-committers@freebsd.org X-Rspamd-Queue-Id: 4B1A383EF3 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; ASN(0.00)[asn:11403, ipnet:96.47.64.0/20, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Status: O X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:06:41 -0000 X-Original-Date: Tue, 9 Apr 2019 23:47:44 +0200 X-List-Received-Date: Tue, 03 Sep 2019 14:06:41 -0000 On Tue, Apr 09, 2019 at 10:24:16PM +0100, Chris Rees wrote: > On 9 April 2019 22:13:29 BST, Chris Rees wrote: > >On 9 April 2019 22:08:35 BST, "Rodney W. Grimes" > > wrote: > >>> On 09/04/2019 20:59, Chris Rees wrote: > >>> > On 9 April 2019 20:55:07 BST, "Rodney W. Grimes" > >> wrote: > >>> >>> On 09/04/2019 21:33, Rodney W. Grimes wrote: > >>> >>>> I think the trigger issue is: > >>> >>>> grep zfs /etc/rc.d/zvol > >>> >>>> rcvar="zfs_enable" > >>> >>>> required_modules="zfs" > >>> >>>> that module requires may be going south with the > >>> >>>> new code when the module is built into the kernel. > >>> >>> Maybe it's because the module's name is zfsctrl (for whatever > >>reason) > >>> >> while the > >>> >>> module file is named zfs.ko. > >>> >> I suspect that could also lead to issues with the new code. > >>> >> It seems to be failing to detect that zfs is infact functional in > >>the > >>> >> kernel, > >>> >> and blindly, or not so blindly, trying to load zfs,ko, which when > >>you > >>> >> build > >>> >> it into the kernel you usually do so without any modules built, > >so > >>> >> there is > >>> >> no /boot/kernel/zfs.ko, and even if you did build it any attempt > >>to > >>> >> load > >>> >> it would return an error. > >>> > Loading with it built in isn't a problem, as I showed earlier. > >>> > Loading when it doesn't exist *is*. > >>> > I'm torn. Either we could revert this, or add a check to the > >>required_modules function instead, which I think is the better solution. > >>> Hang on, > >>> [crees@pegasus]~% sudo kldload -n zfsctrl && echo yes > >>> yes > >>I think your testing the return value of sudo here? > >Sudo returns the child's return value. > Turns out Oliver had also reported this to current@ with a log > https://lists.freebsd.org/pipermail/freebsd-current/2019-April/073148.html > Jilles@, mind if I revert this while I get some testing on this > scenario done? > It seems to me that zfs may not be included in the kernel, just > zfsctrl, or something like that. It seems like kldload -n does not work as expected for zfs, so reverting seems the right approach. -- Jilles Tjoelker From owner-svn-src-head@freebsd.org Thu Sep 26 20:08:27 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B50F132EE4; Thu, 26 Sep 2019 20:08:27 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (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 46fQwT6TNwz3Pht; Thu, 26 Sep 2019 20:08:25 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id Da3nixy7gUIS2Da3piLRxb; Thu, 26 Sep 2019 14:08:23 -0600 X-Authority-Analysis: v=2.3 cv=N41X6F1B c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=J70Eh1EUuV4A:10 a=ZLGELXoPAAAA:8 a=pGLkceISAAAA:8 a=7Qk2ozbKAAAA:8 a=6I5d2MoRAAAA:8 a=dcyhuPvDAAAA:20 a=YxBL1-UpAAAA:8 a=VoPBE_-ZxDEe_ZgKJXAA:9 a=0FOF6Mua-JtfXzO1:21 a=MEIUBk5u1Ak215Ym:21 a=CjuIK1q_8ugA:10 a=CFiPc5v16LZhaT-MVE1c:22 a=1lyxoWkJIXJV6VJUPhuM:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id B1613B2F; Thu, 26 Sep 2019 13:08:17 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x8QK8HuE008939; Thu, 26 Sep 2019 13:08:17 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x8QK8GPB008931; Thu, 26 Sep 2019 13:08:16 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201909262008.x8QK8GPB008931@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: "Josh Paetzel" cc: "Warner Losh" , "Ryan Stone" , "Niclas Zeising" , "Charlie Li" , "Kyle Evans" , svn-src-head , "Charlie Li via svn-src-all" , "Gleb Smirnoff" , src-committers , "FreeBSD X11 mailing list" Subject: Re: svn commit: r352707 - in head/sys: conf kern net sys In-reply-to: <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com> References: <201909251826.x8PIQVUN095257@repo.freebsd.org> <605f210b-cce2-d842-cc0c-53b76ef7dbd5@vishwin.info> <1681db78-6a0c-55cf-1e01-65e06f145975@vishwin.info> <18644033-d01e-1bc7-02eb-42999033d8fd@freebsd.org> <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com> Comments: In-reply-to "Josh Paetzel" message dated "Thu, 26 Sep 2019 14:50:23 -0500." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-CMAE-Envelope: MS4wfPBmFdxWv6ddqKhneUxKsXreYloAmtKvlqoUEFdWX9nQ/lpiAplUDMT0Unv8xUmTEGISyfEbWpjq5kVtd+dfMe9Cm6bE8+nHQb2xTaOr5aNX+J8EOfCn HJUQrRtHCQFIY9rqoo/sCaQx6FI1u8j+HVU9AEhjLq7twKgeuQffflkyM/FMlaUa6xedLWZ/lfXzzKJHG4k7dSoGty/vDBX6nJETEbcbxapuvs+OTxLPHki3 bckURZCDReOUgxVN17X0uuyZDHhmHwnjV71y35jAXZaBilTA+MRBhzlnZU5nXdUPj3pj7N1ADd8/VJVfiXC15Fetp7EIjukIH97Xv9tGxwXdnMcdZ1o8kTO4 2O0ag4groyu9JD5blRBwaV18HeYuPWfdKuyZjRP0sdZkQFKeVCfqTk4I73fQfWYC24Ca8aoSh69GZhyZGL64qHSvpP59Naz09y2N+JJpZcEnthlJN29uniPs ec1O5uBY9NwG61mK X-Rspamd-Queue-Id: 46fQwT6TNwz3Pht X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.134.12) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-2.49 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; MV_CASE(0.50)[]; HAS_XAW(0.00)[]; TO_DN_ALL(0.00)[]; RCPT_COUNT_SEVEN(0.00)[11]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; RCVD_COUNT_FIVE(0.00)[5]; REPLYTO_EQ_FROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[freebsd]; IP_SCORE(-2.39)[ip: (-6.41), ipnet: 64.59.128.0/20(-3.07), asn: 6327(-2.39), country: CA(-0.09)]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[12.134.59.64.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[12.134.59.64.rep.mailspike.net : 127.0.0.17]; SUSPICIOUS_RECIPS(1.50)[] X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 26 Sep 2019 20:08:27 -0000 X-Original-Date: Thu, 26 Sep 2019 13:08:16 -0700 X-List-Received-Date: Thu, 26 Sep 2019 20:08:27 -0000 In message <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com>, "Josh Paetz el" writes: > > > On Thu, Sep 26, 2019, at 12:34 PM, Warner Losh wrote: > > Kinda my point exactly... > > > > Warner > > > > On Thu, Sep 26, 2019 at 11:25 AM Ryan Stone wrote: > >> We also shouldn't have ifdef's that change the size of a kernel > >> structure that's part of the KBI. Isn't struct epoch_tracker part of > >> the KBI? > >> > >> On Thu, Sep 26, 2019 at 12:46 PM Warner Losh wrote: > >> > > >> > But we shouldn't be including opt_foo.h files in sys/*.h files. That's > the root cause of trouble here. > >> > > >> > Warner > >> > > >> > On Thu, Sep 26, 2019 at 9:11 AM Niclas Zeising wr > ote: > >> >> > >> >> On 2019-09-26 17:03, Charlie Li via freebsd-x11 wrote: > >> >> > Kyle Evans wrote: > >> >> >> On Thu, Sep 26, 2019 at 9:49 AM Charlie Li wrote: > >> >> >>> This breaks building the drm-kmod ports, as the build cannot find > >> >> >>> opt_epoch.h (drm-devel-kmod example shown, drm-current-kmod dies t > he > >> >> >>> exact same way): > >> >> >>> > >> >> >>> --- linux_anon_inodes.o --- > >> >> >>> cc -O2 -pipe -fno-strict-aliasing -include > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/dr > ivers/gpu/drm/drm_os_config.h > >> >> >>> '-DKBUILD_MODNAME="linuxkpi_gplv2"' -Werror -D_KERNEL -DKLD_MODULE > >> >> >>> -nostdinc > >> >> >>> -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/ > include -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/lin > uxkpi/dummy/include > >> >> >>> -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/ > linuxkpi/gplv2/include > >> >> >>> -I/usr/src/sys/compat/linuxkpi/common/include -I. -I/usr/src/sys > >> >> >>> -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-poin > ter > >> >> >>> -mno-omit-leaf-frame-pointer > >> >> >>> -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include > >> >> >>> -fdebug-prefix-map=./x86=/usr/src/sys/x86/include -MD > >> >> >>> -MF.depend.linux_anon_inodes.o -MTlinux_anon_inodes.o -mcmodel=ker > nel > >> >> >>> -mno-red-zone -mno-mmx -mno-sse -msoft-float > >> >> >>> -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-pro > tector > >> >> >>> -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes > >> >> >>> -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef > >> >> >>> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ > >> >> >>> -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-prag > mas > >> >> >>> -Wno-error-tautological-compare -Wno-error-empty-body > >> >> >>> -Wno-error-parentheses-equality -Wno-error-unused-function > >> >> >>> -Wno-error-pointer-sign -Wno-error-shift-negative-value > >> >> >>> -Wno-address-of-packed-member -Wno-format-zero-length -Wno-pointer > -arith > >> >> >>> -mno-aes -mno-avx -std=iso9899:1999 -c > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/src/linux_anon_inodes.c > >> >> >>> -o linux_anon_inodes.o > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/src/linux_anon_inodes.c:12: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/anon_inodes.h:4: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/fs.h:6: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/shrinker.h:5: > >> >> >>> In file included from > >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: > >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: > >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file no > t found > >> >> >>> #include "opt_epoch.h" > >> >> >>> ^~~~~~~~~~~~~ > >> >> >>> --- linux_anon_inodefs.o --- > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/src/linux_anon_inodefs.c:45: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/debugfs.h:18: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/fs.h:6: > >> >> >>> In file included from > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi/gplv2/include/linux/shrinker.h:5: > >> >> >>> In file included from > >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: > >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: > >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file no > t found > >> >> >>> #include "opt_epoch.h" > >> >> >>> ^~~~~~~~~~~~~ > >> >> >>> --- linux_anon_inodes.o --- > >> >> >>> 1 error generated. > >> >> >>> *** [linux_anon_inodes.o] Error code 1 > >> >> >>> > >> >> >>> make[2]: stopped in > >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > nuxkpi > >> >> >>> --- linux_anon_inodefs.o --- > >> >> >>> 1 error generated. > >> >> >>> *** [linux_anon_inodefs.o] Error code 1 > >> >> >>> > >> >> >>> Interestingly enough, does not happen when drm-current-kmod is bui > lt as > >> >> >>> part of buildkernel (using an existing installed package with SOUR > CE on). > >> >> >>> > >> >> >> > >> >> >> FWIW, johalun noticed this yesterday and addressed it here: > >> >> >> https://github.com/FreeBSDDesktop/kms-drm/commit/b486949e7e9f0cfe8d > ac5f0ac7fe1a660300981d > >> >> >> > >> >> > Ah, of course I would miss these commits in the kms-drm repo, > >> >> > considering that I watch them roll in. Will wait for the updated > >> >> > snapshots in ports. > >> >> > > >> >> > >> >> I'll get to updating the ports as soon as I can. > >> >> Regards > >> >> -- > >> >> Niclas Zeising > >> >> _______________________________________________ > >> >> freebsd-x11@freebsd.org mailing list > >> >> https://lists.freebsd.org/mailman/listinfo/freebsd-x11 > >> >> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org" > > This commit broke emulators/open-vm-tools (which builds an out of tree if_vmx > ) > > Should I chase a fix for it or wait for this to get resolved in src? virtualbox-ose-kmod: --- VBoxNetFlt-freebsd.o --- In file included from VBoxNetFlt-freebsd.c:51: In file included from /usr/src/sys/net/if_var.h:83: /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file not found #include "opt_epoch.h" ^~~~~~~~~~~~~ 1 error generated. *** [VBoxNetFlt-freebsd.o] Error code 1 -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Tue Sep 3 14:06:40 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B5D8DCC13; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@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 46N7zZ6NXpz4Pht; Tue, 3 Sep 2019 14:06:34 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1452) id 30FA71A895; Tue, 3 Sep 2019 14:06:12 +0000 (UTC) X-Original-To: yuripv@localmail.freebsd.org Delivered-To: yuripv@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id C7333426D; Tue, 9 Apr 2019 21:19:57 +0000 (UTC) (envelope-from owner-src-committers@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 4589C8296C; Tue, 9 Apr 2019 21:19:57 +0000 (UTC) (envelope-from owner-src-committers@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 538) id 1A40D4234; Tue, 9 Apr 2019 21:19:57 +0000 (UTC) Delivered-To: src-committers@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id 0E6D6422E; Tue, 9 Apr 2019 21:19:54 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 8699682960; Tue, 9 Apr 2019 21:19:53 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x39LJjHu062338; Tue, 9 Apr 2019 14:19:45 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x39LJjFv062337; Tue, 9 Apr 2019 14:19:45 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201904092119.x39LJjFv062337@gndrsh.dnsmgr.net> Subject: Re: svn commit: r346017 - in head: libexec/rc libexec/rc/rc.d share/man/man5 In-Reply-To: <2B336327-528C-4E16-AA5D-B3497B1941D0@bayofrum.net> To: Chris Rees CC: rgrimes@freebsd.org, "Rodney W. Grimes" , Chris Rees , Andriy Gapon , "O. Hartmann" , Chris Rees , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Precedence: bulk X-Loop: FreeBSD.org Sender: owner-src-committers@freebsd.org X-Rspamd-Queue-Id: 4589C8296C X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Status: O X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:06:40 -0000 X-Original-Date: Tue, 9 Apr 2019 14:19:45 -0700 (PDT) X-List-Received-Date: Tue, 03 Sep 2019 14:06:40 -0000 > On 9 April 2019 22:08:35 BST, "Rodney W. Grimes" wrote: > >> On 09/04/2019 20:59, Chris Rees wrote: > >> > On 9 April 2019 20:55:07 BST, "Rodney W. Grimes" > > wrote: > >> >>> On 09/04/2019 21:33, Rodney W. Grimes wrote: > >> >>>> I think the trigger issue is: > >> >>>> grep zfs /etc/rc.d/zvol > >> >>>> rcvar="zfs_enable" > >> >>>> required_modules="zfs" > >> >>>> > >> >>>> that module requires may be going south with the > >> >>>> new code when the module is built into the kernel. > >> >>> Maybe it's because the module's name is zfsctrl (for whatever > >reason) > >> >> while the > >> >>> module file is named zfs.ko. > >> >> I suspect that could also lead to issues with the new code. > >> >> It seems to be failing to detect that zfs is infact functional in > >the > >> >> kernel, > >> >> and blindly, or not so blindly, trying to load zfs,ko, which when > >you > >> >> build > >> >> it into the kernel you usually do so without any modules built, so > >> >> there is > >> >> no /boot/kernel/zfs.ko, and even if you did build it any attempt > >to > >> >> load > >> >> it would return an error. > >> > Loading with it built in isn't a problem, as I showed earlier. > >> > > >> > Loading when it doesn't exist *is*. > >> > > >> > I'm torn. Either we could revert this, or add a check to the > >required_modules function instead, which I think is the better > >solution. > >> > >> Hang on, > >> > >> [crees@pegasus]~% sudo kldload -n zfsctrl && echo yes > >> yes > > > >I think your testing the return value of sudo here? > > Sudo returns the child's return value. Do you have a static linked zfs in your kernel without a zfs.ko in /boot? kldstat | grep zfs > > Chris > > >> [crees@pegasus]~% find /boot -name zfsctrl\* find /boot -name zfs the module file is called zfs.ko > >> [crees@pegasus]~% > >> > >> I think that, rather than speculating, we should wait for Oliver to > >> confirm that this is actually the problem, because I still don't > >think > >> it is. > >> > >> Chris -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Thu Sep 26 19:50:45 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E9B7D132AD7; Thu, 26 Sep 2019 19:50:45 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (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 46fQX56gC4z3P08; Thu, 26 Sep 2019 19:50:45 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 78DDB220A5; Thu, 26 Sep 2019 15:50:45 -0400 (EDT) Received: from imap2 ([10.202.2.52]) by compute2.internal (MEProxy); Thu, 26 Sep 2019 15:50:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=j/F1yq WXgQiajSPtx/CyC00J/9xX7HeszvQ0fP4fYTU=; b=nL/3agU6jXOei/nJmTs8Qo iYmVnSxfLdBUaak+vefYP4fvDMGutxqOe1vk6vmqdtUe31sU7KlYclZpc05H5ZTw 5Scz2zqd7SNpRm3mf1XfQ42+0cuLQ5/NxkkcaA9qH+0BVwIsZzPeGwUpxTq3IC4F 8hrIqeBU4vfQ0n0rYL2RIM6o4aVWE7r3wiGZWJqIfo1KCZcCV77eqSm+AoiW07cb 0MSbNxRkPUo3VRs/QuWqTdgSRb6NEB5GIHiBxD+diRuDKbML9CmEKexxvyBMok/3 xYEudu1Fy0A81Mp+az4kV8NS6z3Agm3lSX94rJpTkSl/J0szGZWroCYpscMdtyJg == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrfeeggddugedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvffutgesrgdtreerreertdenucfhrhhomhepfdflohhs hhcurfgrvghtiigvlhdfuceojhhprggvthiivghlsefhrhgvvgeuufffrdhorhhgqeenuc ffohhmrghinhepfhhrvggvsghsugdrohhrghdpghhithhhuhgsrdgtohhmnecurfgrrhgr mhepmhgrihhlfhhrohhmpehjphgrvghtiigvlheshfhrvggvuefuffdrohhrghenucevlh hushhtvghrufhiiigvpedt X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id EA54CE00BF; Thu, 26 Sep 2019 15:50:44 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.1.7-305-g4111847-fmstable-20190924v1 Mime-Version: 1.0 Message-Id: <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com> In-Reply-To: References: <201909251826.x8PIQVUN095257@repo.freebsd.org> <605f210b-cce2-d842-cc0c-53b76ef7dbd5@vishwin.info> <1681db78-6a0c-55cf-1e01-65e06f145975@vishwin.info> <18644033-d01e-1bc7-02eb-42999033d8fd@freebsd.org> From: "Josh Paetzel" To: "Warner Losh" , "Ryan Stone" Cc: "Niclas Zeising" , "Charlie Li" , "Kyle Evans" , svn-src-head , "Charlie Li via svn-src-all" , "Gleb Smirnoff" , src-committers , "FreeBSD X11 mailing list" Subject: Re: svn commit: r352707 - in head/sys: conf kern net sys X-Rspamd-Queue-Id: 46fQX56gC4z3P08 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.96 / 15.00]; TAGGED_RCPT(0.00)[freebsd]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.96)[-0.956,0]; ASN(0.00)[asn:11403, ipnet:66.111.4.0/24, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 Content-Type: text/plain X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 26 Sep 2019 19:50:46 -0000 X-Original-Date: Thu, 26 Sep 2019 14:50:23 -0500 X-List-Received-Date: Thu, 26 Sep 2019 19:50:46 -0000 On Thu, Sep 26, 2019, at 12:34 PM, Warner Losh wrote: > Kinda my point exactly... > > Warner > > On Thu, Sep 26, 2019 at 11:25 AM Ryan Stone wrote: >> We also shouldn't have ifdef's that change the size of a kernel >> structure that's part of the KBI. Isn't struct epoch_tracker part of >> the KBI? >> >> On Thu, Sep 26, 2019 at 12:46 PM Warner Losh wrote: >> > >> > But we shouldn't be including opt_foo.h files in sys/*.h files. That's the root cause of trouble here. >> > >> > Warner >> > >> > On Thu, Sep 26, 2019 at 9:11 AM Niclas Zeising wrote: >> >> >> >> On 2019-09-26 17:03, Charlie Li via freebsd-x11 wrote: >> >> > Kyle Evans wrote: >> >> >> On Thu, Sep 26, 2019 at 9:49 AM Charlie Li wrote: >> >> >>> This breaks building the drm-kmod ports, as the build cannot find >> >> >>> opt_epoch.h (drm-devel-kmod example shown, drm-current-kmod dies the >> >> >>> exact same way): >> >> >>> >> >> >>> --- linux_anon_inodes.o --- >> >> >>> cc -O2 -pipe -fno-strict-aliasing -include >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/drivers/gpu/drm/drm_os_config.h >> >> >>> '-DKBUILD_MODNAME="linuxkpi_gplv2"' -Werror -D_KERNEL -DKLD_MODULE >> >> >>> -nostdinc >> >> >>> -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/include -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/dummy/include >> >> >>> -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include >> >> >>> -I/usr/src/sys/compat/linuxkpi/common/include -I. -I/usr/src/sys >> >> >>> -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer >> >> >>> -mno-omit-leaf-frame-pointer >> >> >>> -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include >> >> >>> -fdebug-prefix-map=./x86=/usr/src/sys/x86/include -MD >> >> >>> -MF.depend.linux_anon_inodes.o -MTlinux_anon_inodes.o -mcmodel=kernel >> >> >>> -mno-red-zone -mno-mmx -mno-sse -msoft-float >> >> >>> -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector >> >> >>> -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes >> >> >>> -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef >> >> >>> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ >> >> >>> -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas >> >> >>> -Wno-error-tautological-compare -Wno-error-empty-body >> >> >>> -Wno-error-parentheses-equality -Wno-error-unused-function >> >> >>> -Wno-error-pointer-sign -Wno-error-shift-negative-value >> >> >>> -Wno-address-of-packed-member -Wno-format-zero-length -Wno-pointer-arith >> >> >>> -mno-aes -mno-avx -std=iso9899:1999 -c >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/src/linux_anon_inodes.c >> >> >>> -o linux_anon_inodes.o >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/src/linux_anon_inodes.c:12: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/anon_inodes.h:4: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/fs.h:6: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/shrinker.h:5: >> >> >>> In file included from >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file not found >> >> >>> #include "opt_epoch.h" >> >> >>> ^~~~~~~~~~~~~ >> >> >>> --- linux_anon_inodefs.o --- >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/src/linux_anon_inodefs.c:45: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/debugfs.h:18: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/fs.h:6: >> >> >>> In file included from >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi/gplv2/include/linux/shrinker.h:5: >> >> >>> In file included from >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file not found >> >> >>> #include "opt_epoch.h" >> >> >>> ^~~~~~~~~~~~~ >> >> >>> --- linux_anon_inodes.o --- >> >> >>> 1 error generated. >> >> >>> *** [linux_anon_inodes.o] Error code 1 >> >> >>> >> >> >>> make[2]: stopped in >> >> >>> /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/linuxkpi >> >> >>> --- linux_anon_inodefs.o --- >> >> >>> 1 error generated. >> >> >>> *** [linux_anon_inodefs.o] Error code 1 >> >> >>> >> >> >>> Interestingly enough, does not happen when drm-current-kmod is built as >> >> >>> part of buildkernel (using an existing installed package with SOURCE on). >> >> >>> >> >> >> >> >> >> FWIW, johalun noticed this yesterday and addressed it here: >> >> >> https://github.com/FreeBSDDesktop/kms-drm/commit/b486949e7e9f0cfe8dac5f0ac7fe1a660300981d >> >> >> >> >> > Ah, of course I would miss these commits in the kms-drm repo, >> >> > considering that I watch them roll in. Will wait for the updated >> >> > snapshots in ports. >> >> > >> >> >> >> I'll get to updating the ports as soon as I can. >> >> Regards >> >> -- >> >> Niclas Zeising >> >> _______________________________________________ >> >> freebsd-x11@freebsd.org mailing list >> >> https://lists.freebsd.org/mailman/listinfo/freebsd-x11 >> >> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org" This commit broke emulators/open-vm-tools (which builds an out of tree if_vmx) Should I chase a fix for it or wait for this to get resolved in src? -- Thanks, Josh Paetzel From owner-svn-src-head@freebsd.org Thu Sep 26 23:28:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 57054136D50 for ; Thu, 26 Sep 2019 23:28:12 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (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 46fWLz35thz45Pp for ; Thu, 26 Sep 2019 23:28:11 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72f.google.com with SMTP id f16so477952qkl.9 for ; Thu, 26 Sep 2019 16:28:11 -0700 (PDT) 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=13stLl/C3EaKntnxDroJQvXPHLdw6xDSvpS2XTfmeac=; b=gaNxqOw+YKHjC5K/XhCAch5kR0VYnUO7NBy6DfbwgpVyWB9mUx6FXqg8KJPJb76Mrd LdpGbCr2FwWMSxEmN+JfSKhLZgMshRXzGfjU9RUGOCunNzjp7cv40/vTpc9T2/FM1/En g6X/Eh4JVBZQKJlbjnO7uGL/QF1X7yvQ4Z26aPry4ZFdifH30bTT6OSCAGkDRk7uQp3K xnQeDmTJwSOYjclvHqZ2ioiRwIwcc6VVx7J24DKWxjTUYMQOgod+8lLRynK6e3gtdsW6 LTsJo2Enihx4KBZ0N6W9mzMsCA1GZFGfeCb0zHZY/bqDuCN3xGffLifJ2jlXrn3CfdqN 5k5A== 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=13stLl/C3EaKntnxDroJQvXPHLdw6xDSvpS2XTfmeac=; b=CIUKeT5GqCBv4ZfDZZzSeFFeXF93EbPfgrHPEC4TbeyPVa3ktObQF0hOXdny1fN0wd zY4uh7wjOb67ZLpIrZ3iwC97vwOq/JeBQeBczISzoXJgtUivXYqhlk8l1957CuOclR9R yNuSEXU9uxgL4DBMP2st0Au4iILsgZvEMypH7qEGW2kvQMUNZF3fcpKnTLs9Xr/jMSMn ZU8bIDYTH8z2yOqvwh9w7H+QVw+tVo4Vwt58OJVZ1kB7T4E0S0oGUVeXHFLf3CfHXN9y Pin1TnGyfQ/YcA5M3fPk9frCCyfqyJO2j2HQ0aG1dDqpHkYkE6C92ZuBnxSmqDLZCTjU VzYQ== X-Gm-Message-State: APjAAAVN7VlsLmr1artZhhZ+RT7080DginH524heLanOCgN3OA/l0L4Z lRW1iFRhOJyw9qX1CR7/onpvPs8yVgGx9c2xPgzOuw== X-Google-Smtp-Source: APXvYqw8jlo36G3MKOOeYUwkbGm/AZe7uc32JgmUlsbPky/pKwGIyKffj5pyr8hS/4uUdRFtXyU5jLANhDW3PyQ/4HA= X-Received: by 2002:a37:6787:: with SMTP id b129mr1812695qkc.60.1569540488823; Thu, 26 Sep 2019 16:28:08 -0700 (PDT) MIME-Version: 1.0 References: <201909251826.x8PIQVUN095257@repo.freebsd.org> <605f210b-cce2-d842-cc0c-53b76ef7dbd5@vishwin.info> <1681db78-6a0c-55cf-1e01-65e06f145975@vishwin.info> <18644033-d01e-1bc7-02eb-42999033d8fd@freebsd.org> <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com> <201909262008.x8QK8GPB008931@slippy.cwsent.com> In-Reply-To: <201909262008.x8QK8GPB008931@slippy.cwsent.com> From: Warner Losh Message-ID: Subject: Re: svn commit: r352707 - in head/sys: conf kern net sys To: Cy Schubert Cc: Josh Paetzel , Ryan Stone , Niclas Zeising , Charlie Li , Kyle Evans , svn-src-head , Charlie Li via svn-src-all , Gleb Smirnoff , src-committers , FreeBSD X11 mailing list X-Rspamd-Queue-Id: 46fWLz35thz45Pp X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=gaNxqOw+; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::72f) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.35 / 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]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[freebsd]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; URI_COUNT_ODD(1.00)[9]; 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)[f.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]; RCPT_COUNT_SEVEN(0.00)[11]; 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.85)[ip: (-9.45), ipnet: 2607:f8b0::/32(-2.60), asn: 15169(-2.18), 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)[]; RCVD_COUNT_TWO(0.00)[2] X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 26 Sep 2019 23:28:12 -0000 X-Original-Date: Thu, 26 Sep 2019 17:27:56 -0600 X-List-Received-Date: Thu, 26 Sep 2019 23:28:12 -0000 I talked to Gleb and this will move to opt_global.h. this will fix all these problems. Warner On Thu, Sep 26, 2019, 2:08 PM Cy Schubert wrote: > In message <6f50f518-0f8e-4e82-a9e9-b9db14cdb648@www.fastmail.com>, "Josh > Paetz > el" writes: > > > > > > On Thu, Sep 26, 2019, at 12:34 PM, Warner Losh wrote: > > > Kinda my point exactly... > > > > > > Warner > > > > > > On Thu, Sep 26, 2019 at 11:25 AM Ryan Stone wrote: > > >> We also shouldn't have ifdef's that change the size of a kernel > > >> structure that's part of the KBI. Isn't struct epoch_tracker part of > > >> the KBI? > > >> > > >> On Thu, Sep 26, 2019 at 12:46 PM Warner Losh wrote: > > >> > > > >> > But we shouldn't be including opt_foo.h files in sys/*.h files. > That's > > the root cause of trouble here. > > >> > > > >> > Warner > > >> > > > >> > On Thu, Sep 26, 2019 at 9:11 AM Niclas Zeising < > zeising@freebsd.org> wr > > ote: > > >> >> > > >> >> On 2019-09-26 17:03, Charlie Li via freebsd-x11 wrote: > > >> >> > Kyle Evans wrote: > > >> >> >> On Thu, Sep 26, 2019 at 9:49 AM Charlie Li wrote: > > >> >> >>> This breaks building the drm-kmod ports, as the build cannot > find > > >> >> >>> opt_epoch.h (drm-devel-kmod example shown, drm-current-kmod > dies t > > he > > >> >> >>> exact same way): > > >> >> >>> > > >> >> >>> --- linux_anon_inodes.o --- > > >> >> >>> cc -O2 -pipe -fno-strict-aliasing -include > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/dr > > ivers/gpu/drm/drm_os_config.h > > >> >> >>> '-DKBUILD_MODNAME="linuxkpi_gplv2"' -Werror -D_KERNEL > -DKLD_MODULE > > >> >> >>> -nostdinc > > >> >> >>> > -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/ > > include > -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/lin > > uxkpi/dummy/include > > >> >> >>> > -I/wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/ > > linuxkpi/gplv2/include > > >> >> >>> -I/usr/src/sys/compat/linuxkpi/common/include -I. > -I/usr/src/sys > > >> >> >>> -I/usr/src/sys/contrib/ck/include -fno-common > -fno-omit-frame-poin > > ter > > >> >> >>> -mno-omit-leaf-frame-pointer > > >> >> >>> -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include > > >> >> >>> -fdebug-prefix-map=./x86=/usr/src/sys/x86/include -MD > > >> >> >>> -MF.depend.linux_anon_inodes.o -MTlinux_anon_inodes.o > -mcmodel=ker > > nel > > >> >> >>> -mno-red-zone -mno-mmx -mno-sse -msoft-float > > >> >> >>> -fno-asynchronous-unwind-tables -ffreestanding -fwrapv > -fstack-pro > > tector > > >> >> >>> -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes > > >> >> >>> -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef > > >> >> >>> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ > > >> >> >>> -Wmissing-include-dirs -fdiagnostics-show-option > -Wno-unknown-prag > > mas > > >> >> >>> -Wno-error-tautological-compare -Wno-error-empty-body > > >> >> >>> -Wno-error-parentheses-equality -Wno-error-unused-function > > >> >> >>> -Wno-error-pointer-sign -Wno-error-shift-negative-value > > >> >> >>> -Wno-address-of-packed-member -Wno-format-zero-length > -Wno-pointer > > -arith > > >> >> >>> -mno-aes -mno-avx -std=iso9899:1999 -c > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/src/linux_anon_inodes.c > > >> >> >>> -o linux_anon_inodes.o > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/src/linux_anon_inodes.c:12: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/anon_inodes.h:4: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/fs.h:6: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/shrinker.h:5: > > >> >> >>> In file included from > > >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: > > >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: > > >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' > file no > > t found > > >> >> >>> #include "opt_epoch.h" > > >> >> >>> ^~~~~~~~~~~~~ > > >> >> >>> --- linux_anon_inodefs.o --- > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/src/linux_anon_inodefs.c:45: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/debugfs.h:18: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/fs.h:6: > > >> >> >>> In file included from > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi/gplv2/include/linux/shrinker.h:5: > > >> >> >>> In file included from > > >> >> >>> /usr/src/sys/compat/linuxkpi/common/include/linux/list.h:56: > > >> >> >>> In file included from /usr/src/sys/net/if_var.h:83: > > >> >> >>> /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' > file no > > t found > > >> >> >>> #include "opt_epoch.h" > > >> >> >>> ^~~~~~~~~~~~~ > > >> >> >>> --- linux_anon_inodes.o --- > > >> >> >>> 1 error generated. > > >> >> >>> *** [linux_anon_inodes.o] Error code 1 > > >> >> >>> > > >> >> >>> make[2]: stopped in > > >> >> >>> > /wrkdirs/usr/ports/graphics/drm-devel-kmod/work/kms-drm-dc414a9/li > > nuxkpi > > >> >> >>> --- linux_anon_inodefs.o --- > > >> >> >>> 1 error generated. > > >> >> >>> *** [linux_anon_inodefs.o] Error code 1 > > >> >> >>> > > >> >> >>> Interestingly enough, does not happen when drm-current-kmod > is bui > > lt as > > >> >> >>> part of buildkernel (using an existing installed package with > SOUR > > CE on). > > >> >> >>> > > >> >> >> > > >> >> >> FWIW, johalun noticed this yesterday and addressed it here: > > >> >> >> > https://github.com/FreeBSDDesktop/kms-drm/commit/b486949e7e9f0cfe8d > > ac5f0ac7fe1a660300981d > > >> >> >> > > >> >> > Ah, of course I would miss these commits in the kms-drm repo, > > >> >> > considering that I watch them roll in. Will wait for the updated > > >> >> > snapshots in ports. > > >> >> > > > >> >> > > >> >> I'll get to updating the ports as soon as I can. > > >> >> Regards > > >> >> -- > > >> >> Niclas Zeising > > >> >> _______________________________________________ > > >> >> freebsd-x11@freebsd.org mailing list > > >> >> https://lists.freebsd.org/mailman/listinfo/freebsd-x11 > > >> >> To unsubscribe, send any mail to " > freebsd-x11-unsubscribe@freebsd.org" > > > > This commit broke emulators/open-vm-tools (which builds an out of tree > if_vmx > > ) > > > > Should I chase a fix for it or wait for this to get resolved in src? > > virtualbox-ose-kmod: > > --- VBoxNetFlt-freebsd.o --- > In file included from VBoxNetFlt-freebsd.c:51: > In file included from /usr/src/sys/net/if_var.h:83: > /usr/src/sys/sys/epoch.h:44:10: fatal error: 'opt_epoch.h' file not found > #include "opt_epoch.h" > ^~~~~~~~~~~~~ > 1 error generated. > *** [VBoxNetFlt-freebsd.o] Error code 1 > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > From owner-svn-src-head@freebsd.org Tue Sep 3 14:06:40 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 68C1BDCC17; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (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 46N7zb0f0Dz4Pj0; Tue, 3 Sep 2019 14:06:35 +0000 (UTC) (envelope-from yuripv@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1452) id 458A61A8A7; Tue, 3 Sep 2019 14:06:12 +0000 (UTC) X-Original-To: yuripv@localmail.freebsd.org Delivered-To: yuripv@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id 240474A13; Tue, 9 Apr 2019 21:40:26 +0000 (UTC) (envelope-from owner-src-committers@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 35F1A837E5; Tue, 9 Apr 2019 21:40:25 +0000 (UTC) (envelope-from owner-src-committers@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 538) id 1088849B1; Tue, 9 Apr 2019 21:40:25 +0000 (UTC) Delivered-To: src-committers@localmail.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by freefall.freebsd.org (Postfix) with ESMTPS id AF9D449A2; Tue, 9 Apr 2019 21:40:21 +0000 (UTC) (envelope-from crees@bayofrum.net) Received: from mail50c50.megamailservers.eu (mail166c50.megamailservers.eu [91.136.10.176]) (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 73037837D4; Tue, 9 Apr 2019 21:40:20 +0000 (UTC) (envelope-from crees@bayofrum.net) X-Authenticated-User: bayofrum@uwclub.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1554845080; bh=ngxfX11Amnxd3zzYHDCk7WHM3PMv/MQ6wjQfrZPHg3Y=; h=Date:In-Reply-To:References:Subject:To:CC:From:From; b=QY9wt/fkgESjjw6r9jYEFS50Qo25uFs0nd8tAyMuzfRXaYUGyNb5ybJKSTgXRScQm 4jDfxmhvfs8bSKNYAgU0N0yuREE0R3hYCEahv0WP71iC7zBkyexnmoIrlkajH/KOEX I26gUeC9oyw7veE/eBB7cxZkRBrxq87iFDgZxtQ4= Feedback-ID: crees@bayofrum. Received: from pegasus.bayofrum.net (81-178-238-70.dsl.pipex.com [81.178.238.70]) (authenticated bits=0) by mail50c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x39LOcbC012169; Tue, 9 Apr 2019 21:24:39 +0000 Received: from R.bayofrum.net (R.bayofrum.net [192.168.1.129]) by pegasus.bayofrum.net (Postfix) with ESMTPSA id 168171EE0; Tue, 9 Apr 2019 22:24:20 +0100 (BST) User-Agent: K-9 Mail for Android In-Reply-To: <2B336327-528C-4E16-AA5D-B3497B1941D0@bayofrum.net> References: <201904092108.x39L8ZCG062247@gndrsh.dnsmgr.net> <2B336327-528C-4E16-AA5D-B3497B1941D0@bayofrum.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: svn commit: r346017 - in head: libexec/rc libexec/rc/rc.d share/man/man5 To: rgrimes@freebsd.org, "Rodney W. Grimes" , Chris Rees , jilles@freebsd.org CC: Andriy Gapon , "O. Hartmann" , Chris Rees , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Chris Rees Message-ID: <95242E98-E578-476E-AFA6-099F00AF50BC@bayofrum.net> X-bayofrum-MailScanner-Information: Please contact the ISP for more information X-bayofrum-MailScanner-ID: 168171EE0.A57F8 X-bayofrum-MailScanner: Found to be clean X-bayofrum-MailScanner-From: crees@bayofrum.net X-Spam-Status: No X-CTCH-RefID: str=0001.0A0B0203.5CAD0D98.0051, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=ILEs9DnG c=1 sm=1 tr=0 a=i0HMBnJGy7D3/NFKO8d8XA==:117 a=i0HMBnJGy7D3/NFKO8d8XA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=oexKYjalfGEA:10 a=ZB5LerlCAAAA:8 a=iKhvJSA4AAAA:8 a=6I5d2MoRAAAA:8 a=8Pez3pwjZUDalHbnbrYA:9 a=QEXdDO2ut3YA:10 a=phWSN7ZC0a8A:10 a=YKPTzOroS2oaEK2QgPcx:22 a=odh9cflL3HIXMm4fY7Wr:22 a=IjZwj45LgO3ly-622nXo:22 Precedence: bulk X-Loop: FreeBSD.org Sender: owner-src-committers@freebsd.org X-Rspamd-Queue-Id: 35F1A837E5 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Status: O X-Mailman-Approved-At: Sat, 12 Oct 2019 23:41:31 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:06:40 -0000 X-Original-Date: Tue, 09 Apr 2019 22:24:16 +0100 X-List-Received-Date: Tue, 03 Sep 2019 14:06:40 -0000 Hi again, On 9 April 2019 22:13:29 BST, Chris Rees wrote: > > >On 9 April 2019 22:08:35 BST, "Rodney W. Grimes" > wrote: >>> On 09/04/2019 20:59, Chris Rees wrote: >>> > On 9 April 2019 20:55:07 BST, "Rodney W. Grimes" >> wrote: >>> >>> On 09/04/2019 21:33, Rodney W. Grimes wrote: >>> >>>> I think the trigger issue is: >>> >>>> grep zfs /etc/rc.d/zvol >>> >>>> rcvar=3D"zfs_enable" >>> >>>> required_modules=3D"zfs" >>> >>>> >>> >>>> that module requires may be going south with the >>> >>>> new code when the module is built into the kernel. >>> >>> Maybe it's because the module's name is zfsctrl (for whatever >>reason) >>> >> while the >>> >>> module file is named zfs.ko. >>> >> I suspect that could also lead to issues with the new code. >>> >> It seems to be failing to detect that zfs is infact functional in >>the >>> >> kernel, >>> >> and blindly, or not so blindly, trying to load zfs,ko, which when >>you >>> >> build >>> >> it into the kernel you usually do so without any modules built, >so >>> >> there is >>> >> no /boot/kernel/zfs.ko, and even if you did build it any attempt >>to >>> >> load >>> >> it would return an error. >>> > Loading with it built in isn't a problem, as I showed earlier. >>> > >>> > Loading when it doesn't exist *is*. >>> > >>> > I'm torn. Either we could revert this, or add a check to the >>required_modules function instead, which I think is the better >>solution. >>>=20 >>> Hang on, >>>=20 >>> [crees@pegasus]~% sudo kldload -n zfsctrl && echo yes >>> yes >> >>I think your testing the return value of sudo here? > >Sudo returns the child's return value. > Turns out Oliver had also reported this to current@ with a log https://lists.freebsd.org/pipermail/freebsd-current/2019-April/073148.html Jilles@, mind if I revert this while I get some testing on this scenario do= ne? It seems to me that zfs may not be included in the kernel, just zfsctrl, or= something like that. Chris --=20 Sent from my Android device with K-9 Mail. Please excuse my brevity. --=20 This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.