From owner-svn-src-all@freebsd.org Sun Oct 6 01:35:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 03:22:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D384F9072 for ; Sun, 6 Oct 2019 03:22:07 +0000 (UTC) (envelope-from kevans@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 46m86l0W0qz4V0r for ; Sun, 6 Oct 2019 03:22:07 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (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 DEFDF10845 for ; Sun, 6 Oct 2019 03:22:06 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f173.google.com with SMTP id 201so9521162qkd.13 for ; Sat, 05 Oct 2019 20:22:06 -0700 (PDT) X-Gm-Message-State: APjAAAX4zMjmqj+yTIZkKrYcEia1xJGP7f5cVnTmRbO5xBkMjrlR8667 py4SR7Xo97bCnQoBXMyTlOQVBgiGmeZIrUrwnr0= X-Received: by 2002:ae9:e88a:: with SMTP id a132mt15785202qkg.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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 03:56:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EEEA7F98D8; Sun, 6 Oct 2019 03:56:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46m8sx53Mcz4WPW; Sun, 6 Oct 2019 03:56:05 +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 713C71F6CB; Sun, 6 Oct 2019 03:56:05 +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 x963u5JB035228; Sun, 6 Oct 2019 03:56:05 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x963u4Lf035223; Sun, 6 Oct 2019 03:56:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060356.x963u4Lf035223@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 03:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353134 - in stable: 11/usr.sbin/cron/cron 11/usr.sbin/cron/crontab 11/usr.sbin/cron/lib 12/usr.sbin/cron/cron 12/usr.sbin/cron/crontab 12/usr.sbin/cron/lib X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/cron/cron 11/usr.sbin/cron/crontab 11/usr.sbin/cron/lib 12/usr.sbin/cron/cron 12/usr.sbin/cron/crontab 12/usr.sbin/cron/lib X-SVN-Commit-Revision: 353134 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 03:56:06 -0000 Author: kevans Date: Sun Oct 6 03:56:02 2019 New Revision: 353134 URL: https://svnweb.freebsd.org/changeset/base/353134 Log: MFC r352668: cron: log suppression and mail suppression for successful runs This commit adds two new extensions to crontab, ported from OpenBSD: - -n: suppress mail on succesful run - -q: suppress logging of command execution The -q option appears decades old, but -n is relatively new. The original proposal by Job Snijder can be found here [1], and gives very convincing reasons for inclusion in base. This patch is a nearly identical port of OpenBSD cron for -q and -n features. It is written to follow existing conventions and style of the existing codebase. Example usage: # should only send email, but won't show up in log * * * * * -q date # should not send email * * * * * -n date # should not send email or log * * * * * -n -q date # should send email because of ping failure * * * * * -n -q ping -c 1 5.5.5.5 [1]: https://marc.info/?l=openbsd-tech&m=152874866117948&w=2 PR: 237538 Relnotes: yes Modified: stable/12/usr.sbin/cron/cron/cron.h stable/12/usr.sbin/cron/cron/do_command.c stable/12/usr.sbin/cron/cron/popen.c stable/12/usr.sbin/cron/crontab/crontab.5 stable/12/usr.sbin/cron/lib/entry.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/cron/cron/cron.h stable/11/usr.sbin/cron/cron/do_command.c stable/11/usr.sbin/cron/cron/popen.c stable/11/usr.sbin/cron/crontab/crontab.5 stable/11/usr.sbin/cron/lib/entry.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/cron/cron/cron.h ============================================================================== --- stable/12/usr.sbin/cron/cron/cron.h Sun Oct 6 03:33:28 2019 (r353133) +++ stable/12/usr.sbin/cron/cron/cron.h Sun Oct 6 03:56:02 2019 (r353134) @@ -191,6 +191,8 @@ typedef struct _entry { #define NOT_UNTIL 0x10 #define SEC_RES 0x20 #define INTERVAL 0x40 +#define DONT_LOG 0x80 +#define MAIL_WHEN_ERR 0x100 time_t lastrun; } entry; @@ -257,7 +259,7 @@ user *load_user(int, struct passwd *, char *), entry *load_entry(FILE *, void (*)(char *), struct passwd *, char **); -FILE *cron_popen(char *, char *, entry *); +FILE *cron_popen(char *, char *, entry *, PID_T *); /* in the C tradition, we only create Modified: stable/12/usr.sbin/cron/cron/do_command.c ============================================================================== --- stable/12/usr.sbin/cron/cron/do_command.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/12/usr.sbin/cron/cron/do_command.c Sun Oct 6 03:56:02 2019 (r353134) @@ -41,6 +41,7 @@ static const char rcsid[] = static void child_process(entry *, user *), do_univ(user *); +static WAIT_T wait_on_child(PID_T, const char *); void do_command(e, u) @@ -94,7 +95,10 @@ child_process(e, u) int stdin_pipe[2], stdout_pipe[2]; register char *input_data; char *usernm, *mailto, *mailfrom; - int children = 0; + PID_T jobpid, stdinjob, mailpid; + register FILE *mail; + register int bytes = 1; + int status = 0; # if defined(LOGIN_CAP) struct passwd *pwd; login_cap_t *lc; @@ -216,7 +220,7 @@ child_process(e, u) /* fork again, this time so we can exec the user's command. */ - switch (vfork()) { + switch (jobpid = vfork()) { case -1: log_it("CRON",getpid(),"error","can't vfork"); exit(ERROR_EXIT); @@ -237,7 +241,7 @@ child_process(e, u) * the actual user command shell was going to get and the * PID is part of the log message. */ - /*local*/{ + if ((e->flags & DONT_LOG) == 0) { char *x = mkprints((u_char *)e->cmd, strlen(e->cmd)); log_it(usernm, getpid(), "CMD", x); @@ -359,8 +363,6 @@ child_process(e, u) break; } - children++; - /* middle process, child of original cron, parent of process running * the user's command. */ @@ -384,7 +386,7 @@ child_process(e, u) * we would block here. thus we must fork again. */ - if (*input_data && fork() == 0) { + if (*input_data && (stdinjob = fork()) == 0) { register FILE *out = fdopen(stdin_pipe[WRITE_PIPE], "w"); register int need_newline = FALSE; register int escaped = FALSE; @@ -440,8 +442,6 @@ child_process(e, u) */ close(stdin_pipe[WRITE_PIPE]); - children++; - /* * read output from the grandchild. it's stderr has been redirected to * it's stdout, which has been redirected to our pipe. if there is any @@ -462,10 +462,6 @@ child_process(e, u) ch = getc(in); if (ch != EOF) { - register FILE *mail; - register int bytes = 1; - int status = 0; - Debug(DPROC|DEXT, ("[%d] got data (%x:%c) from grandchild\n", getpid(), ch, ch)) @@ -500,7 +496,7 @@ child_process(e, u) hostname[sizeof(hostname) - 1] = '\0'; (void) snprintf(mailcmd, sizeof(mailcmd), MAILARGS, MAILCMD); - if (!(mail = cron_popen(mailcmd, "w", e))) { + if (!(mail = cron_popen(mailcmd, "w", e, &mailpid))) { warn("%s", MAILCMD); (void) _exit(ERROR_EXIT); } @@ -538,28 +534,56 @@ child_process(e, u) if (mailto) putc(ch, mail); } + } + /*if data from grandchild*/ - /* only close pipe if we opened it -- i.e., we're - * mailing... - */ + Debug(DPROC, ("[%d] got EOF from grandchild\n", getpid())) - if (mailto) { - Debug(DPROC, ("[%d] closing pipe to mail\n", - getpid())) - /* Note: the pclose will probably see - * the termination of the grandchild - * in addition to the mail process, since - * it (the grandchild) is likely to exit - * after closing its stdout. - */ - status = cron_pclose(mail); - } + /* also closes stdout_pipe[READ_PIPE] */ + fclose(in); + } + /* wait for children to die. + */ + if (jobpid > 0) { + WAIT_T waiter; + + waiter = wait_on_child(jobpid, "grandchild command job"); + + /* If everything went well, and -n was set, _and_ we have mail, + * we won't be mailing... so shoot the messenger! + */ + if (WIFEXITED(waiter) && WEXITSTATUS(waiter) == 0 + && (e->flags & MAIL_WHEN_ERR) == MAIL_WHEN_ERR + && mailto) { + Debug(DPROC, ("[%d] %s executed successfully, mail suppressed\n", + getpid(), "grandchild command job")) + kill(mailpid, SIGKILL); + (void)fclose(mail); + mailto = NULL; + } + + + /* only close pipe if we opened it -- i.e., we're + * mailing... + */ + + if (mailto) { + Debug(DPROC, ("[%d] closing pipe to mail\n", + getpid())) + /* Note: the pclose will probably see + * the termination of the grandchild + * in addition to the mail process, since + * it (the grandchild) is likely to exit + * after closing its stdout. + */ + status = cron_pclose(mail); + /* if there was output and we could not mail it, * log the facts so the poor user can figure out * what's going on. */ - if (mailto && status) { + if (status) { char buf[MAX_TEMPSTR]; snprintf(buf, sizeof(buf), @@ -568,35 +592,38 @@ child_process(e, u) status); log_it(usernm, getpid(), "MAIL", buf); } + } + } - } /*if data from grandchild*/ + if (*input_data && stdinjob > 0) + wait_on_child(stdinjob, "grandchild stdinjob"); +} - Debug(DPROC, ("[%d] got EOF from grandchild\n", getpid())) +static WAIT_T +wait_on_child(PID_T childpid, const char *name) { + WAIT_T waiter; + PID_T pid; - fclose(in); /* also closes stdout_pipe[READ_PIPE] */ - } + Debug(DPROC, ("[%d] waiting for %s (%d) to finish\n", + getpid(), name, childpid)) - /* wait for children to die. - */ - for (; children > 0; children--) - { - WAIT_T waiter; - PID_T pid; +#ifdef POSIX + while ((pid = waitpid(childpid, &waiter, 0)) < 0 && errno == EINTR) +#else + while ((pid = wait4(childpid, &waiter, 0, NULL)) < 0 && errno == EINTR) +#endif + ; - Debug(DPROC, ("[%d] waiting for grandchild #%d to finish\n", - getpid(), children)) - pid = wait(&waiter); - if (pid < OK) { - Debug(DPROC, ("[%d] no more grandchildren--mail written?\n", - getpid())) - break; - } - Debug(DPROC, ("[%d] grandchild #%d finished, status=%04x", - getpid(), pid, WEXITSTATUS(waiter))) - if (WIFSIGNALED(waiter) && WCOREDUMP(waiter)) - Debug(DPROC, (", dumped core")) - Debug(DPROC, ("\n")) - } + if (pid < OK) + return waiter; + + Debug(DPROC, ("[%d] %s (%d) finished, status=%04x", + getpid(), name, pid, WEXITSTATUS(waiter))) + if (WIFSIGNALED(waiter) && WCOREDUMP(waiter)) + Debug(DPROC, (", dumped core")) + Debug(DPROC, ("\n")) + + return waiter; } Modified: stable/12/usr.sbin/cron/cron/popen.c ============================================================================== --- stable/12/usr.sbin/cron/cron/popen.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/12/usr.sbin/cron/cron/popen.c Sun Oct 6 03:56:02 2019 (r353134) @@ -55,9 +55,10 @@ static PID_T *pids; static int fds; FILE * -cron_popen(program, type, e) +cron_popen(program, type, e, pidptr) char *program, *type; entry *e; + PID_T *pidptr; { register char *cp; FILE *iop; @@ -218,6 +219,9 @@ pfree: free((char *)argv[argc]); } #endif + + *pidptr = pid; + return(iop); } Modified: stable/12/usr.sbin/cron/crontab/crontab.5 ============================================================================== --- stable/12/usr.sbin/cron/crontab/crontab.5 Sun Oct 6 03:33:28 2019 (r353133) +++ stable/12/usr.sbin/cron/crontab/crontab.5 Sun Oct 6 03:56:02 2019 (r353134) @@ -17,7 +17,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 19, 2019 +.Dd September 24, 2019 .Dt CRONTAB 5 .Os .Sh NAME @@ -199,6 +199,8 @@ lists of names are not allowed. .Pp The ``sixth'' field (the rest of the line) specifies the command to be run. +One or more command options may precede the command to modify processing +behavior. The entire command portion of the line, up to a newline or % character, will be executed by .Pa /bin/sh @@ -211,6 +213,22 @@ Percent-signs (%) in the command, unless escaped with after the first % will be sent to the command as standard input. .Pp +The following command options can be supplied: +.Bl -tag -width Ds +.It Fl n +No mail is sent after a successful run. +The execution output will only be mailed if the command exits with a non-zero +exit code. +The +.Fl n +option is an attempt to cure potentially copious volumes of mail coming from +.Xr cron 8 . +.It Fl q +Execution will not be logged. +.El +.sp +Duplicate options are not allowed. +.Pp Note: The day of a command's execution can be specified by two fields \(em day of month, and day of week. If both fields are @@ -271,6 +289,10 @@ MAILTO=paul 5 4 * * sun echo "run at 5 after 4 every sunday" # run at 5 minutes intervals, no matter how long it takes @300 svnlite up /usr/src +# run every minute, suppress logging +* * * * * -q date +# run every minute, only send mail if ping fails +* * * * * -n ping -c 1 freebsd.org .Ed .Sh SEE ALSO .Xr crontab 1 , @@ -314,6 +336,14 @@ All of the .Sq @ directives that can appear in place of the first five fields are extensions. +.Pp +Command processing can be modified using command options. +The +.Sq -q +option suppresses logging. +The +.Sq -n +option does not mail on successful run. .Sh AUTHORS .An Paul Vixie Aq Mt paul@vix.com .Sh BUGS Modified: stable/12/usr.sbin/cron/lib/entry.c ============================================================================== --- stable/12/usr.sbin/cron/lib/entry.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/12/usr.sbin/cron/lib/entry.c Sun Oct 6 03:56:02 2019 (r353134) @@ -35,7 +35,8 @@ static const char rcsid[] = typedef enum ecode { e_none, e_minute, e_hour, e_dom, e_month, e_dow, - e_cmd, e_timespec, e_username, e_group, e_mem + e_cmd, e_timespec, e_username, e_group, e_option, + e_mem #ifdef LOGIN_CAP , e_class #endif @@ -58,6 +59,7 @@ static char *ecodes[] = "bad time specifier", "bad username", "bad group name", + "bad option", "out of memory", #ifdef LOGIN_CAP "bad class name", @@ -428,6 +430,53 @@ load_entry(file, error_func, pw, envp) goto eof; } #endif + + Debug(DPARS, ("load_entry()...checking for command options\n")) + + ch = get_char(file); + + while (ch == '-') { + Debug(DPARS|DEXT, ("load_entry()...expecting option\n")) + switch (ch = get_char(file)) { + case 'n': + Debug(DPARS|DEXT, ("load_entry()...got MAIL_WHEN_ERR ('n') option\n")) + /* only allow the user to set the option once */ + if ((e->flags & MAIL_WHEN_ERR) == MAIL_WHEN_ERR) { + Debug(DPARS|DEXT, ("load_entry()...duplicate MAIL_WHEN_ERR ('n') option\n")) + ecode = e_option; + goto eof; + } + e->flags |= MAIL_WHEN_ERR; + break; + case 'q': + Debug(DPARS|DEXT, ("load_entry()...got DONT_LOG ('q') option\n")) + /* only allow the user to set the option once */ + if ((e->flags & DONT_LOG) == DONT_LOG) { + Debug(DPARS|DEXT, ("load_entry()...duplicate DONT_LOG ('q') option\n")) + ecode = e_option; + goto eof; + } + e->flags |= DONT_LOG; + break; + default: + Debug(DPARS|DEXT, ("load_entry()...invalid option '%c'\n", ch)) + ecode = e_option; + goto eof; + } + ch = get_char(file); + if (ch!='\t' && ch!=' ') { + ecode = e_option; + goto eof; + } + + Skip_Blanks(ch, file) + if (ch == EOF || ch == '\n') { + ecode = e_cmd; + goto eof; + } + } + + unget_char(ch, file); Debug(DPARS, ("load_entry()...about to parse command\n")) From owner-svn-src-all@freebsd.org Sun Oct 6 03:56:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4E25F98D0; Sun, 6 Oct 2019 03:56:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46m8sw3RLJz4WPV; Sun, 6 Oct 2019 03:56:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3EEC51F6CA; Sun, 6 Oct 2019 03:56:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x963u3Yh035218; Sun, 6 Oct 2019 03:56:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x963u3gR035213; Sun, 6 Oct 2019 03:56:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060356.x963u3gR035213@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 03:56:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353134 - in stable: 11/usr.sbin/cron/cron 11/usr.sbin/cron/crontab 11/usr.sbin/cron/lib 12/usr.sbin/cron/cron 12/usr.sbin/cron/crontab 12/usr.sbin/cron/lib X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/cron/cron 11/usr.sbin/cron/crontab 11/usr.sbin/cron/lib 12/usr.sbin/cron/cron 12/usr.sbin/cron/crontab 12/usr.sbin/cron/lib X-SVN-Commit-Revision: 353134 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 03:56:04 -0000 Author: kevans Date: Sun Oct 6 03:56:02 2019 New Revision: 353134 URL: https://svnweb.freebsd.org/changeset/base/353134 Log: MFC r352668: cron: log suppression and mail suppression for successful runs This commit adds two new extensions to crontab, ported from OpenBSD: - -n: suppress mail on succesful run - -q: suppress logging of command execution The -q option appears decades old, but -n is relatively new. The original proposal by Job Snijder can be found here [1], and gives very convincing reasons for inclusion in base. This patch is a nearly identical port of OpenBSD cron for -q and -n features. It is written to follow existing conventions and style of the existing codebase. Example usage: # should only send email, but won't show up in log * * * * * -q date # should not send email * * * * * -n date # should not send email or log * * * * * -n -q date # should send email because of ping failure * * * * * -n -q ping -c 1 5.5.5.5 [1]: https://marc.info/?l=openbsd-tech&m=152874866117948&w=2 PR: 237538 Relnotes: yes Modified: stable/11/usr.sbin/cron/cron/cron.h stable/11/usr.sbin/cron/cron/do_command.c stable/11/usr.sbin/cron/cron/popen.c stable/11/usr.sbin/cron/crontab/crontab.5 stable/11/usr.sbin/cron/lib/entry.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/cron/cron/cron.h stable/12/usr.sbin/cron/cron/do_command.c stable/12/usr.sbin/cron/cron/popen.c stable/12/usr.sbin/cron/crontab/crontab.5 stable/12/usr.sbin/cron/lib/entry.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/cron/cron/cron.h ============================================================================== --- stable/11/usr.sbin/cron/cron/cron.h Sun Oct 6 03:33:28 2019 (r353133) +++ stable/11/usr.sbin/cron/cron/cron.h Sun Oct 6 03:56:02 2019 (r353134) @@ -191,6 +191,8 @@ typedef struct _entry { #define NOT_UNTIL 0x10 #define SEC_RES 0x20 #define INTERVAL 0x40 +#define DONT_LOG 0x80 +#define MAIL_WHEN_ERR 0x100 time_t lastrun; } entry; @@ -257,7 +259,7 @@ user *load_user(int, struct passwd *, char *), entry *load_entry(FILE *, void (*)(char *), struct passwd *, char **); -FILE *cron_popen(char *, char *, entry *); +FILE *cron_popen(char *, char *, entry *, PID_T *); /* in the C tradition, we only create Modified: stable/11/usr.sbin/cron/cron/do_command.c ============================================================================== --- stable/11/usr.sbin/cron/cron/do_command.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/11/usr.sbin/cron/cron/do_command.c Sun Oct 6 03:56:02 2019 (r353134) @@ -41,6 +41,7 @@ static const char rcsid[] = static void child_process(entry *, user *), do_univ(user *); +static WAIT_T wait_on_child(PID_T, const char *); void do_command(e, u) @@ -94,7 +95,10 @@ child_process(e, u) int stdin_pipe[2], stdout_pipe[2]; register char *input_data; char *usernm, *mailto, *mailfrom; - int children = 0; + PID_T jobpid, stdinjob, mailpid; + register FILE *mail; + register int bytes = 1; + int status = 0; # if defined(LOGIN_CAP) struct passwd *pwd; login_cap_t *lc; @@ -216,7 +220,7 @@ child_process(e, u) /* fork again, this time so we can exec the user's command. */ - switch (vfork()) { + switch (jobpid = vfork()) { case -1: log_it("CRON",getpid(),"error","can't vfork"); exit(ERROR_EXIT); @@ -237,7 +241,7 @@ child_process(e, u) * the actual user command shell was going to get and the * PID is part of the log message. */ - /*local*/{ + if ((e->flags & DONT_LOG) == 0) { char *x = mkprints((u_char *)e->cmd, strlen(e->cmd)); log_it(usernm, getpid(), "CMD", x); @@ -359,8 +363,6 @@ child_process(e, u) break; } - children++; - /* middle process, child of original cron, parent of process running * the user's command. */ @@ -384,7 +386,7 @@ child_process(e, u) * we would block here. thus we must fork again. */ - if (*input_data && fork() == 0) { + if (*input_data && (stdinjob = fork()) == 0) { register FILE *out = fdopen(stdin_pipe[WRITE_PIPE], "w"); register int need_newline = FALSE; register int escaped = FALSE; @@ -440,8 +442,6 @@ child_process(e, u) */ close(stdin_pipe[WRITE_PIPE]); - children++; - /* * read output from the grandchild. it's stderr has been redirected to * it's stdout, which has been redirected to our pipe. if there is any @@ -462,10 +462,6 @@ child_process(e, u) ch = getc(in); if (ch != EOF) { - register FILE *mail; - register int bytes = 1; - int status = 0; - Debug(DPROC|DEXT, ("[%d] got data (%x:%c) from grandchild\n", getpid(), ch, ch)) @@ -500,7 +496,7 @@ child_process(e, u) hostname[sizeof(hostname) - 1] = '\0'; (void) snprintf(mailcmd, sizeof(mailcmd), MAILARGS, MAILCMD); - if (!(mail = cron_popen(mailcmd, "w", e))) { + if (!(mail = cron_popen(mailcmd, "w", e, &mailpid))) { warn("%s", MAILCMD); (void) _exit(ERROR_EXIT); } @@ -538,28 +534,56 @@ child_process(e, u) if (mailto) putc(ch, mail); } + } + /*if data from grandchild*/ - /* only close pipe if we opened it -- i.e., we're - * mailing... - */ + Debug(DPROC, ("[%d] got EOF from grandchild\n", getpid())) - if (mailto) { - Debug(DPROC, ("[%d] closing pipe to mail\n", - getpid())) - /* Note: the pclose will probably see - * the termination of the grandchild - * in addition to the mail process, since - * it (the grandchild) is likely to exit - * after closing its stdout. - */ - status = cron_pclose(mail); - } + /* also closes stdout_pipe[READ_PIPE] */ + fclose(in); + } + /* wait for children to die. + */ + if (jobpid > 0) { + WAIT_T waiter; + + waiter = wait_on_child(jobpid, "grandchild command job"); + + /* If everything went well, and -n was set, _and_ we have mail, + * we won't be mailing... so shoot the messenger! + */ + if (WIFEXITED(waiter) && WEXITSTATUS(waiter) == 0 + && (e->flags & MAIL_WHEN_ERR) == MAIL_WHEN_ERR + && mailto) { + Debug(DPROC, ("[%d] %s executed successfully, mail suppressed\n", + getpid(), "grandchild command job")) + kill(mailpid, SIGKILL); + (void)fclose(mail); + mailto = NULL; + } + + + /* only close pipe if we opened it -- i.e., we're + * mailing... + */ + + if (mailto) { + Debug(DPROC, ("[%d] closing pipe to mail\n", + getpid())) + /* Note: the pclose will probably see + * the termination of the grandchild + * in addition to the mail process, since + * it (the grandchild) is likely to exit + * after closing its stdout. + */ + status = cron_pclose(mail); + /* if there was output and we could not mail it, * log the facts so the poor user can figure out * what's going on. */ - if (mailto && status) { + if (status) { char buf[MAX_TEMPSTR]; snprintf(buf, sizeof(buf), @@ -568,35 +592,38 @@ child_process(e, u) status); log_it(usernm, getpid(), "MAIL", buf); } + } + } - } /*if data from grandchild*/ + if (*input_data && stdinjob > 0) + wait_on_child(stdinjob, "grandchild stdinjob"); +} - Debug(DPROC, ("[%d] got EOF from grandchild\n", getpid())) +static WAIT_T +wait_on_child(PID_T childpid, const char *name) { + WAIT_T waiter; + PID_T pid; - fclose(in); /* also closes stdout_pipe[READ_PIPE] */ - } + Debug(DPROC, ("[%d] waiting for %s (%d) to finish\n", + getpid(), name, childpid)) - /* wait for children to die. - */ - for (; children > 0; children--) - { - WAIT_T waiter; - PID_T pid; +#ifdef POSIX + while ((pid = waitpid(childpid, &waiter, 0)) < 0 && errno == EINTR) +#else + while ((pid = wait4(childpid, &waiter, 0, NULL)) < 0 && errno == EINTR) +#endif + ; - Debug(DPROC, ("[%d] waiting for grandchild #%d to finish\n", - getpid(), children)) - pid = wait(&waiter); - if (pid < OK) { - Debug(DPROC, ("[%d] no more grandchildren--mail written?\n", - getpid())) - break; - } - Debug(DPROC, ("[%d] grandchild #%d finished, status=%04x", - getpid(), pid, WEXITSTATUS(waiter))) - if (WIFSIGNALED(waiter) && WCOREDUMP(waiter)) - Debug(DPROC, (", dumped core")) - Debug(DPROC, ("\n")) - } + if (pid < OK) + return waiter; + + Debug(DPROC, ("[%d] %s (%d) finished, status=%04x", + getpid(), name, pid, WEXITSTATUS(waiter))) + if (WIFSIGNALED(waiter) && WCOREDUMP(waiter)) + Debug(DPROC, (", dumped core")) + Debug(DPROC, ("\n")) + + return waiter; } Modified: stable/11/usr.sbin/cron/cron/popen.c ============================================================================== --- stable/11/usr.sbin/cron/cron/popen.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/11/usr.sbin/cron/cron/popen.c Sun Oct 6 03:56:02 2019 (r353134) @@ -55,9 +55,10 @@ static PID_T *pids; static int fds; FILE * -cron_popen(program, type, e) +cron_popen(program, type, e, pidptr) char *program, *type; entry *e; + PID_T *pidptr; { register char *cp; FILE *iop; @@ -218,6 +219,9 @@ pfree: free((char *)argv[argc]); } #endif + + *pidptr = pid; + return(iop); } Modified: stable/11/usr.sbin/cron/crontab/crontab.5 ============================================================================== --- stable/11/usr.sbin/cron/crontab/crontab.5 Sun Oct 6 03:33:28 2019 (r353133) +++ stable/11/usr.sbin/cron/crontab/crontab.5 Sun Oct 6 03:56:02 2019 (r353134) @@ -17,7 +17,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 19, 2019 +.Dd September 24, 2019 .Dt CRONTAB 5 .Os .Sh NAME @@ -199,6 +199,8 @@ lists of names are not allowed. .Pp The ``sixth'' field (the rest of the line) specifies the command to be run. +One or more command options may precede the command to modify processing +behavior. The entire command portion of the line, up to a newline or % character, will be executed by .Pa /bin/sh @@ -211,6 +213,22 @@ Percent-signs (%) in the command, unless escaped with after the first % will be sent to the command as standard input. .Pp +The following command options can be supplied: +.Bl -tag -width Ds +.It Fl n +No mail is sent after a successful run. +The execution output will only be mailed if the command exits with a non-zero +exit code. +The +.Fl n +option is an attempt to cure potentially copious volumes of mail coming from +.Xr cron 8 . +.It Fl q +Execution will not be logged. +.El +.sp +Duplicate options are not allowed. +.Pp Note: The day of a command's execution can be specified by two fields \(em day of month, and day of week. If both fields are @@ -271,6 +289,10 @@ MAILTO=paul 5 4 * * sun echo "run at 5 after 4 every sunday" # run at 5 minutes intervals, no matter how long it takes @300 svnlite up /usr/src +# run every minute, suppress logging +* * * * * -q date +# run every minute, only send mail if ping fails +* * * * * -n ping -c 1 freebsd.org .Ed .Sh SEE ALSO .Xr crontab 1 , @@ -314,6 +336,14 @@ All of the .Sq @ directives that can appear in place of the first five fields are extensions. +.Pp +Command processing can be modified using command options. +The +.Sq -q +option suppresses logging. +The +.Sq -n +option does not mail on successful run. .Sh AUTHORS .An Paul Vixie Aq Mt paul@vix.com .Sh BUGS Modified: stable/11/usr.sbin/cron/lib/entry.c ============================================================================== --- stable/11/usr.sbin/cron/lib/entry.c Sun Oct 6 03:33:28 2019 (r353133) +++ stable/11/usr.sbin/cron/lib/entry.c Sun Oct 6 03:56:02 2019 (r353134) @@ -35,7 +35,8 @@ static const char rcsid[] = typedef enum ecode { e_none, e_minute, e_hour, e_dom, e_month, e_dow, - e_cmd, e_timespec, e_username, e_group, e_mem + e_cmd, e_timespec, e_username, e_group, e_option, + e_mem #ifdef LOGIN_CAP , e_class #endif @@ -58,6 +59,7 @@ static char *ecodes[] = "bad time specifier", "bad username", "bad group name", + "bad option", "out of memory", #ifdef LOGIN_CAP "bad class name", @@ -428,6 +430,53 @@ load_entry(file, error_func, pw, envp) goto eof; } #endif + + Debug(DPARS, ("load_entry()...checking for command options\n")) + + ch = get_char(file); + + while (ch == '-') { + Debug(DPARS|DEXT, ("load_entry()...expecting option\n")) + switch (ch = get_char(file)) { + case 'n': + Debug(DPARS|DEXT, ("load_entry()...got MAIL_WHEN_ERR ('n') option\n")) + /* only allow the user to set the option once */ + if ((e->flags & MAIL_WHEN_ERR) == MAIL_WHEN_ERR) { + Debug(DPARS|DEXT, ("load_entry()...duplicate MAIL_WHEN_ERR ('n') option\n")) + ecode = e_option; + goto eof; + } + e->flags |= MAIL_WHEN_ERR; + break; + case 'q': + Debug(DPARS|DEXT, ("load_entry()...got DONT_LOG ('q') option\n")) + /* only allow the user to set the option once */ + if ((e->flags & DONT_LOG) == DONT_LOG) { + Debug(DPARS|DEXT, ("load_entry()...duplicate DONT_LOG ('q') option\n")) + ecode = e_option; + goto eof; + } + e->flags |= DONT_LOG; + break; + default: + Debug(DPARS|DEXT, ("load_entry()...invalid option '%c'\n", ch)) + ecode = e_option; + goto eof; + } + ch = get_char(file); + if (ch!='\t' && ch!=' ') { + ecode = e_option; + goto eof; + } + + Skip_Blanks(ch, file) + if (ch == EOF || ch == '\n') { + ecode = e_cmd; + goto eof; + } + } + + unget_char(ch, file); Debug(DPARS, ("load_entry()...about to parse command\n")) From owner-svn-src-all@freebsd.org Sun Oct 6 03:59:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 15F14F9B17; Sun, 6 Oct 2019 03:59:06 +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 46m8xP63ckz4WjP; Sun, 6 Oct 2019 03:59:05 +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 A1D8B1F6D8; Sun, 6 Oct 2019 03:59:05 +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 x963x5hg035445; Sun, 6 Oct 2019 03:59:05 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x963x5F3035444; Sun, 6 Oct 2019 03:59:05 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060359.x963x5F3035444@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 03:59:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353135 - in stable: 11/lib/libusb 12/lib/libusb X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libusb 12/lib/libusb X-SVN-Commit-Revision: 353135 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 03:59:06 -0000 Author: kevans Date: Sun Oct 6 03:59:05 2019 New Revision: 353135 URL: https://svnweb.freebsd.org/changeset/base/353135 Log: MFC r353009: libusb: LIBUSB_DEBUG env var override of libusb_set_debug The debug level generally just controls verbosity of libusb for debugging libusb devices/usage. We allow the environment to set the debug level independent of the application, but the application will always override this if it explicitly sets the debug level. Changing the environment is easy, but patching the software to change the debug level isn't necessarily easy or possible. Further, there's this write-only debug_fixed variable that would seem to imply that the debug level should be fixed, but it isn't currently used. Change the logic to use strtol() so we can detect real 0 vs. conversion failure, then honor debug_fixed in libusb_set_debug. Modified: stable/11/lib/libusb/libusb10.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libusb/libusb10.c Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libusb/libusb10.c ============================================================================== --- stable/11/lib/libusb/libusb10.c Sun Oct 6 03:56:02 2019 (r353134) +++ stable/11/lib/libusb/libusb10.c Sun Oct 6 03:59:05 2019 (r353135) @@ -89,7 +89,8 @@ void libusb_set_debug(libusb_context *ctx, int level) { ctx = GET_CONTEXT(ctx); - if (ctx) + /* debug_fixed is set when the environment overrides libusb_set_debug */ + if (ctx && ctx->debug_fixed == 0) ctx->debug = level; } @@ -130,7 +131,7 @@ libusb_init(libusb_context **context) { struct libusb_context *ctx; pthread_condattr_t attr; - char *debug; + char *debug, *ep; int ret; ctx = malloc(sizeof(*ctx)); @@ -141,9 +142,23 @@ libusb_init(libusb_context **context) debug = getenv("LIBUSB_DEBUG"); if (debug != NULL) { - ctx->debug = atoi(debug); - if (ctx->debug != 0) + /* + * If LIBUSB_DEBUG is set, we'll honor that and use it to + * override libusb_set_debug calls. + */ + errno = 0; + ctx->debug = strtol(debug, &ep, 10); + if (errno == 0 && *ep == '\0') { ctx->debug_fixed = 1; + } else { + /* + * LIBUSB_DEBUG conversion failed for some reason, but + * we don't care about the specifics all that much. We + * can't use it either way. Force it to the default, + * 0, in case we had a partial number. + */ + ctx->debug = 0; + } } TAILQ_INIT(&ctx->pollfds); TAILQ_INIT(&ctx->tr_done); From owner-svn-src-all@freebsd.org Sun Oct 6 03:59:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5BBC4F9B1C; Sun, 6 Oct 2019 03:59:06 +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 46m8xQ1Nmyz4WjQ; Sun, 6 Oct 2019 03:59:06 +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 EB7041F6D9; Sun, 6 Oct 2019 03:59:05 +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 x963x5Sv035451; Sun, 6 Oct 2019 03:59:05 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x963x5b9035450; Sun, 6 Oct 2019 03:59:05 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060359.x963x5b9035450@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 03:59:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353135 - in stable: 11/lib/libusb 12/lib/libusb X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libusb 12/lib/libusb X-SVN-Commit-Revision: 353135 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 03:59:06 -0000 Author: kevans Date: Sun Oct 6 03:59:05 2019 New Revision: 353135 URL: https://svnweb.freebsd.org/changeset/base/353135 Log: MFC r353009: libusb: LIBUSB_DEBUG env var override of libusb_set_debug The debug level generally just controls verbosity of libusb for debugging libusb devices/usage. We allow the environment to set the debug level independent of the application, but the application will always override this if it explicitly sets the debug level. Changing the environment is easy, but patching the software to change the debug level isn't necessarily easy or possible. Further, there's this write-only debug_fixed variable that would seem to imply that the debug level should be fixed, but it isn't currently used. Change the logic to use strtol() so we can detect real 0 vs. conversion failure, then honor debug_fixed in libusb_set_debug. Modified: stable/12/lib/libusb/libusb10.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libusb/libusb10.c Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libusb/libusb10.c ============================================================================== --- stable/12/lib/libusb/libusb10.c Sun Oct 6 03:56:02 2019 (r353134) +++ stable/12/lib/libusb/libusb10.c Sun Oct 6 03:59:05 2019 (r353135) @@ -91,7 +91,8 @@ void libusb_set_debug(libusb_context *ctx, int level) { ctx = GET_CONTEXT(ctx); - if (ctx) + /* debug_fixed is set when the environment overrides libusb_set_debug */ + if (ctx && ctx->debug_fixed == 0) ctx->debug = level; } @@ -132,7 +133,7 @@ libusb_init(libusb_context **context) { struct libusb_context *ctx; pthread_condattr_t attr; - char *debug; + char *debug, *ep; int ret; ctx = malloc(sizeof(*ctx)); @@ -143,9 +144,23 @@ libusb_init(libusb_context **context) debug = getenv("LIBUSB_DEBUG"); if (debug != NULL) { - ctx->debug = atoi(debug); - if (ctx->debug != 0) + /* + * If LIBUSB_DEBUG is set, we'll honor that and use it to + * override libusb_set_debug calls. + */ + errno = 0; + ctx->debug = strtol(debug, &ep, 10); + if (errno == 0 && *ep == '\0') { ctx->debug_fixed = 1; + } else { + /* + * LIBUSB_DEBUG conversion failed for some reason, but + * we don't care about the specifics all that much. We + * can't use it either way. Force it to the default, + * 0, in case we had a partial number. + */ + ctx->debug = 0; + } } TAILQ_INIT(&ctx->pollfds); TAILQ_INIT(&ctx->tr_done); From owner-svn-src-all@freebsd.org Sun Oct 6 04:01:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 37FCDF9C3F; Sun, 6 Oct 2019 04:01:16 +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 46m8zv5kpVz4X1H; Sun, 6 Oct 2019 04:01:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A961E1F72A; Sun, 6 Oct 2019 04:01:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9641FVF039521; Sun, 6 Oct 2019 04:01:15 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9641FPP039280; Sun, 6 Oct 2019 04:01:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060401.x9641FPP039280@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:01:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353136 - in stable: 11/stand/lua 12/stand/lua X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/lua 12/stand/lua X-SVN-Commit-Revision: 353136 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:01:16 -0000 Author: kevans Date: Sun Oct 6 04:01:15 2019 New Revision: 353136 URL: https://svnweb.freebsd.org/changeset/base/353136 Log: MFC r352314: lualoader: Add reload-conf loader command This command will trigger a reload of the configuration from disk. This is useful if you've changed currdev from recovery media to local disk as much as I have over the past ~2 hours and are tired of the extra keystrokes. This is really just a glorified shortcut, but reload-conf is likely easier to remember for other people and does save some keystrokes when reloading the configuration. It is also resilient to the underlying config method changing interface, but this is unlikely to happen. Modified: stable/11/stand/lua/cli.lua stable/11/stand/lua/cli.lua.8 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/lua/cli.lua stable/12/stand/lua/cli.lua.8 Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/lua/cli.lua ============================================================================== --- stable/11/stand/lua/cli.lua Sun Oct 6 03:59:05 2019 (r353135) +++ stable/11/stand/lua/cli.lua Sun Oct 6 04:01:15 2019 (r353136) @@ -126,6 +126,10 @@ cli['boot-conf'] = function(...) core.autoboot(argstr) end +cli['reload-conf'] = function(...) + config.reload() +end + -- Used for splitting cli varargs into cmd_name and the rest of argv function cli.arguments(...) local argv = {...} Modified: stable/11/stand/lua/cli.lua.8 ============================================================================== --- stable/11/stand/lua/cli.lua.8 Sun Oct 6 03:59:05 2019 (r353135) +++ stable/11/stand/lua/cli.lua.8 Sun Oct 6 04:01:15 2019 (r353136) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 31, 2018 +.Dd September 13, 2019 .Dt CLI.LUA 8 .Os .Sh NAME @@ -82,14 +82,27 @@ As of present, the module by default provides commands for .Ic autoboot , .Ic boot , +.Ic boot-conf , and -.Ic boot-conf. -In all three cases, the +.Ic reload-conf . +.Pp +For +.Ic autoboot , +.Ic boot , +and +.Ic boot-conf , +the .Xr core.lua 8 module will load all ELF modules as-needed before executing the equivalent built-in loader commands. All non-kernel arguments to these commands are passed in the same order to the loader command. +.Pp +The +.Ic reload-conf +command will reload the configuration from disk. +This is useful if you have manually changed currdev and would like to easily +reload the configuration from the new device. .Ss Exported Functions The following functions are exported from .Nm : From owner-svn-src-all@freebsd.org Sun Oct 6 04:01:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A860DF9C44; Sun, 6 Oct 2019 04:01:16 +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 46m8zw2ZXqz4X1M; Sun, 6 Oct 2019 04:01:16 +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 36CFF1F72E; Sun, 6 Oct 2019 04:01:16 +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 x9641GpR039578; Sun, 6 Oct 2019 04:01:16 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9641Fen039577; Sun, 6 Oct 2019 04:01:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060401.x9641Fen039577@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:01:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353136 - in stable: 11/stand/lua 12/stand/lua X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/lua 12/stand/lua X-SVN-Commit-Revision: 353136 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:01:16 -0000 Author: kevans Date: Sun Oct 6 04:01:15 2019 New Revision: 353136 URL: https://svnweb.freebsd.org/changeset/base/353136 Log: MFC r352314: lualoader: Add reload-conf loader command This command will trigger a reload of the configuration from disk. This is useful if you've changed currdev from recovery media to local disk as much as I have over the past ~2 hours and are tired of the extra keystrokes. This is really just a glorified shortcut, but reload-conf is likely easier to remember for other people and does save some keystrokes when reloading the configuration. It is also resilient to the underlying config method changing interface, but this is unlikely to happen. Modified: stable/12/stand/lua/cli.lua stable/12/stand/lua/cli.lua.8 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/lua/cli.lua stable/11/stand/lua/cli.lua.8 Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/lua/cli.lua ============================================================================== --- stable/12/stand/lua/cli.lua Sun Oct 6 03:59:05 2019 (r353135) +++ stable/12/stand/lua/cli.lua Sun Oct 6 04:01:15 2019 (r353136) @@ -125,6 +125,10 @@ cli['boot-conf'] = function(...) core.autoboot(argstr) end +cli['reload-conf'] = function(...) + config.reload() +end + -- Used for splitting cli varargs into cmd_name and the rest of argv function cli.arguments(...) local argv = {...} Modified: stable/12/stand/lua/cli.lua.8 ============================================================================== --- stable/12/stand/lua/cli.lua.8 Sun Oct 6 03:59:05 2019 (r353135) +++ stable/12/stand/lua/cli.lua.8 Sun Oct 6 04:01:15 2019 (r353136) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 31, 2018 +.Dd September 13, 2019 .Dt CLI.LUA 8 .Os .Sh NAME @@ -82,14 +82,27 @@ As of present, the module by default provides commands for .Ic autoboot , .Ic boot , +.Ic boot-conf , and -.Ic boot-conf. -In all three cases, the +.Ic reload-conf . +.Pp +For +.Ic autoboot , +.Ic boot , +and +.Ic boot-conf , +the .Xr core.lua 8 module will load all ELF modules as-needed before executing the equivalent built-in loader commands. All non-kernel arguments to these commands are passed in the same order to the loader command. +.Pp +The +.Ic reload-conf +command will reload the configuration from disk. +This is useful if you have manually changed currdev and would like to easily +reload the configuration from the new device. .Ss Exported Functions The following functions are exported from .Nm : From owner-svn-src-all@freebsd.org Sun Oct 6 04:02:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CC257F9E97; Sun, 6 Oct 2019 04:02:30 +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 46m91L2r1Mz4XQp; Sun, 6 Oct 2019 04:02:30 +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 426011F8AB; Sun, 6 Oct 2019 04:02:30 +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 x9642T4R041429; Sun, 6 Oct 2019 04:02:29 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9642TDp041426; Sun, 6 Oct 2019 04:02:29 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060402.x9642TDp041426@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:02:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353137 - in stable: 11/stand/forth 11/stand/lua 12/stand/forth 12/stand/lua X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/forth 11/stand/lua 12/stand/forth 12/stand/lua X-SVN-Commit-Revision: 353137 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:02:30 -0000 Author: kevans Date: Sun Oct 6 04:02:29 2019 New Revision: 353137 URL: https://svnweb.freebsd.org/changeset/base/353137 Log: MFC r352559: loader: Respect loader_color=YES for serial consoles It's not uncommon these days for the terminals attached to serial consoles to support ANSI escape sequences. However, we assume escape sequences may break some serial consoles and default to not using them when boot_serial or boot_multicons (or if console contains "comconsole" in the forth loader) for broader compatibility. We also have loader_color which can be explicitly set to "NO" to disable the use of ANSI escape sequences. The problem is that loader_color=YES gets ignored when boot_serial=YES or boot_multicons=YES (or when console contains "comconsole" in the forth loader). To fix, the existing default behavior remains unchanged when loader_color is unset, loader_color=NO explicitly disables the use of ANSI escape sequences still, and the change is that loader_color=YES can now be used to explicitly allow ANSI escapes when a serial console is enabled. Modified: stable/11/stand/forth/color.4th stable/11/stand/lua/color.lua Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/forth/color.4th stable/12/stand/lua/color.lua Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/forth/color.4th ============================================================================== --- stable/11/stand/forth/color.4th Sun Oct 6 04:01:15 2019 (r353136) +++ stable/11/stand/forth/color.4th Sun Oct 6 04:02:29 2019 (r353137) @@ -27,12 +27,14 @@ marker task-color.4th \ This function returns FALSE if the `loader_color' environment variable is set -\ to NO, no, or 0. Otherwise, TRUE is returned (unless booting serial). +\ to NO, no, or 0. It returns TRUE if `loader_color' is set to any other value. +\ If `loader_color' is unset, TRUE is returned (unless booting serial). \ -: loader_color? ( -- N ) +: loader_color? ( -- t ) s" loader_color" getenv dup -1 <> if - + \ `loader_color' is set. + \ Check if it is explicitly disabled. 2dup s" NO" compare-insensitive 0= if 2drop FALSE exit @@ -42,8 +44,12 @@ marker task-color.4th FALSE exit then drop + \ It is enabled. + TRUE + else + \ `loader_color' is unset. + \ Default to using color unless serial boot is active. + drop + boot_serial? 0= then - drop - - boot_serial? if FALSE else TRUE then ; Modified: stable/11/stand/lua/color.lua ============================================================================== --- stable/11/stand/lua/color.lua Sun Oct 6 04:01:15 2019 (r353136) +++ stable/11/stand/lua/color.lua Sun Oct 6 04:02:29 2019 (r353137) @@ -49,9 +49,7 @@ color.DIM = 2 function color.isEnabled() local c = loader.getenv("loader_color") if c ~= nil then - if c:lower() == "no" or c == "0" then - return false - end + return c:lower() ~= "no" and c ~= "0" end return not core.isSerialBoot() end From owner-svn-src-all@freebsd.org Sun Oct 6 04:02:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0DDFAF9E9C; Sun, 6 Oct 2019 04:02:31 +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 46m91L5WqSz4XQq; Sun, 6 Oct 2019 04:02:30 +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 8B80C1F8AC; Sun, 6 Oct 2019 04:02:30 +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 x9642Ubn041436; Sun, 6 Oct 2019 04:02:30 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9642UPj041434; Sun, 6 Oct 2019 04:02:30 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060402.x9642UPj041434@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:02:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353137 - in stable: 11/stand/forth 11/stand/lua 12/stand/forth 12/stand/lua X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/forth 11/stand/lua 12/stand/forth 12/stand/lua X-SVN-Commit-Revision: 353137 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:02:31 -0000 Author: kevans Date: Sun Oct 6 04:02:29 2019 New Revision: 353137 URL: https://svnweb.freebsd.org/changeset/base/353137 Log: MFC r352559: loader: Respect loader_color=YES for serial consoles It's not uncommon these days for the terminals attached to serial consoles to support ANSI escape sequences. However, we assume escape sequences may break some serial consoles and default to not using them when boot_serial or boot_multicons (or if console contains "comconsole" in the forth loader) for broader compatibility. We also have loader_color which can be explicitly set to "NO" to disable the use of ANSI escape sequences. The problem is that loader_color=YES gets ignored when boot_serial=YES or boot_multicons=YES (or when console contains "comconsole" in the forth loader). To fix, the existing default behavior remains unchanged when loader_color is unset, loader_color=NO explicitly disables the use of ANSI escape sequences still, and the change is that loader_color=YES can now be used to explicitly allow ANSI escapes when a serial console is enabled. Modified: stable/12/stand/forth/color.4th stable/12/stand/lua/color.lua Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/forth/color.4th stable/11/stand/lua/color.lua Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/forth/color.4th ============================================================================== --- stable/12/stand/forth/color.4th Sun Oct 6 04:01:15 2019 (r353136) +++ stable/12/stand/forth/color.4th Sun Oct 6 04:02:29 2019 (r353137) @@ -27,12 +27,14 @@ marker task-color.4th \ This function returns FALSE if the `loader_color' environment variable is set -\ to NO, no, or 0. Otherwise, TRUE is returned (unless booting serial). +\ to NO, no, or 0. It returns TRUE if `loader_color' is set to any other value. +\ If `loader_color' is unset, TRUE is returned (unless booting serial). \ -: loader_color? ( -- N ) +: loader_color? ( -- t ) s" loader_color" getenv dup -1 <> if - + \ `loader_color' is set. + \ Check if it is explicitly disabled. 2dup s" NO" compare-insensitive 0= if 2drop FALSE exit @@ -42,8 +44,12 @@ marker task-color.4th FALSE exit then drop + \ It is enabled. + TRUE + else + \ `loader_color' is unset. + \ Default to using color unless serial boot is active. + drop + boot_serial? 0= then - drop - - boot_serial? if FALSE else TRUE then ; Modified: stable/12/stand/lua/color.lua ============================================================================== --- stable/12/stand/lua/color.lua Sun Oct 6 04:01:15 2019 (r353136) +++ stable/12/stand/lua/color.lua Sun Oct 6 04:02:29 2019 (r353137) @@ -49,9 +49,7 @@ color.DIM = 2 function color.isEnabled() local c = loader.getenv("loader_color") if c ~= nil then - if c:lower() == "no" or c == "0" then - return false - end + return c:lower() ~= "no" and c ~= "0" end return not core.isSerialBoot() end From owner-svn-src-all@freebsd.org Sun Oct 6 04:10:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 76459FA02D; Sun, 6 Oct 2019 04:10:29 +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 46m9BY24Cmz4Xh4; Sun, 6 Oct 2019 04:10:29 +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 2013A1F8B6; Sun, 6 Oct 2019 04:10:29 +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 x964ASJF041942; Sun, 6 Oct 2019 04:10:28 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964ASp5041939; Sun, 6 Oct 2019 04:10:28 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060410.x964ASp5041939@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:10:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353138 - in stable/12: contrib/netbsd-tests/usr.bin/grep usr.bin/grep X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12: contrib/netbsd-tests/usr.bin/grep usr.bin/grep X-SVN-Commit-Revision: 353138 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:10:29 -0000 Author: kevans Date: Sun Oct 6 04:10:28 2019 New Revision: 353138 URL: https://svnweb.freebsd.org/changeset/base/353138 Log: MFC r352691: bsdgrep(1): fixes of empty pattern/exit code/-c behavior When an empty pattern is encountered in the pattern list, I had previously broken bsdgrep to count that as a "match all" and ignore any other patterns in the list. This commit rectifies that mistake, among others: - The -v flag semantics were not quite right; lines matched should have been counted differently based on whether the -v flag was set or not. procline now definitively returns whether it's matched or not, and interpreting that result has been kicked up a level. - Empty patterns with the -x flag was broken similarly to empty patterns with the -w flag. The former is a whole-line match and should be more strict, only matching blank lines. No -x and no -w will will match the empty string at the beginning of each line. - The exit code with -L was broken, w.r.t. modern grep. Modern grap will exit(0) if any file that didn't match was output, so our interpretation was simply backwards. The new interpretation makes sense to me. Tests updated and added to try and catch some of this. This misbehavior was found by autoconf while fixing ports found in PR 229925 expecting either a more sane or a more GNU-like sed. Modified: stable/12/contrib/netbsd-tests/usr.bin/grep/t_grep.sh stable/12/usr.bin/grep/grep.c stable/12/usr.bin/grep/util.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- stable/12/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sun Oct 6 04:02:29 2019 (r353137) +++ stable/12/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sun Oct 6 04:10:28 2019 (r353138) @@ -413,6 +413,60 @@ wflag_emptypat_body() atf_check -o file:test4 grep -w -e "" test4 } +atf_test_case xflag_emptypat +xflag_emptypat_body() +{ + printf "" > test1 + printf "\n" > test2 + printf "qaz" > test3 + printf " qaz\n" > test4 + + # -x is whole-line, more strict than -w. + atf_check -s exit:1 -o empty grep -x -e "" test1 + + atf_check -o file:test2 grep -x -e "" test2 + + atf_check -s exit:1 -o empty grep -x -e "" test3 + + atf_check -s exit:1 -o empty grep -x -e "" test4 + + total=$(wc -l /COPYRIGHT | sed 's/[^0-9]//g') + + # Simple checks that grep -x with an empty pattern isn't matching every + # line. The exact counts aren't important, as long as they don't + # match the total line count and as long as they don't match each other. + atf_check -o save:xpositive.count grep -Fxc '' /COPYRIGHT + atf_check -o save:xnegative.count grep -Fvxc '' /COPYRIGHT + + atf_check -o not-inline:"${total}" cat xpositive.count + atf_check -o not-inline:"${total}" cat xnegative.count + + atf_check -o not-file:xnegative.count cat xpositive.count +} + +atf_test_case xflag_emptypat_plus +xflag_emptypat_plus_body() +{ + printf "foo\n\nbar\n\nbaz\n" > target + printf "foo\n \nbar\n \nbaz\n" > target_spacelines + printf "foo\nbar\nbaz\n" > matches + printf " \n \n" > spacelines + + printf "foo\n\nbar\n\nbaz\n" > patlist1 + printf "foo\n\nba\n\nbaz\n" > patlist2 + + sed -e '/bar/d' target > matches_not2 + + # Normal handling first + atf_check -o file:target grep -Fxf patlist1 target + atf_check -o file:matches grep -Fxf patlist1 target_spacelines + atf_check -o file:matches_not2 grep -Fxf patlist2 target + + # -v handling + atf_check -s exit:1 -o empty grep -Fvxf patlist1 target + atf_check -o file:spacelines grep -Fxvf patlist1 target_spacelines +} + atf_test_case excessive_matches excessive_matches_head() { @@ -551,6 +605,12 @@ grep_nomatch_flags_head() grep_nomatch_flags_body() { + grep_type + + if [ $? -eq $GREP_TYPE_GNU_FREEBSD ]; then + atf_expect_fail "this test does not pass with GNU grep in base" + fi + printf "A\nB\nC\n" > test1 atf_check -o inline:"1\n" grep -c -C 1 -e "B" test1 @@ -563,7 +623,7 @@ grep_nomatch_flags_body() atf_check -o inline:"test1\n" grep -l -A 1 -e "B" test1 atf_check -o inline:"test1\n" grep -l -C 1 -e "B" test1 - atf_check -s exit:1 -o inline:"test1\n" grep -L -e "D" test1 + atf_check -o inline:"test1\n" grep -L -e "D" test1 atf_check -o empty grep -q -e "B" test1 atf_check -o empty grep -q -B 1 -e "B" test1 @@ -777,6 +837,8 @@ atf_init_test_cases() atf_add_test_case egrep_empty_invalid atf_add_test_case zerolen atf_add_test_case wflag_emptypat + atf_add_test_case xflag_emptypat + atf_add_test_case xflag_emptypat_plus atf_add_test_case excessive_matches atf_add_test_case wv_combo_break atf_add_test_case fgrep_sanity Modified: stable/12/usr.bin/grep/grep.c ============================================================================== --- stable/12/usr.bin/grep/grep.c Sun Oct 6 04:02:29 2019 (r353137) +++ stable/12/usr.bin/grep/grep.c Sun Oct 6 04:10:28 2019 (r353138) @@ -218,20 +218,9 @@ static void add_pattern(char *pat, size_t len) { - /* Do not add further pattern is we already match everything */ - if (matchall) - return; - /* Check if we can do a shortcut */ if (len == 0) { matchall = true; - for (unsigned int i = 0; i < patterns; i++) { - free(pattern[i].pat); - } - pattern = grep_realloc(pattern, sizeof(struct pat)); - pattern[0].pat = NULL; - pattern[0].len = 0; - patterns = 1; return; } /* Increase size if necessary */ @@ -652,7 +641,7 @@ main(int argc, char *argv[]) aargv += optind; /* Empty pattern file matches nothing */ - if (!needpattern && (patterns == 0)) + if (!needpattern && (patterns == 0) && !matchall) exit(1); /* Fail if we don't have any pattern */ @@ -699,11 +688,10 @@ main(int argc, char *argv[]) r_pattern = grep_calloc(patterns, sizeof(*r_pattern)); - /* Don't process any patterns if we have a blank one */ #ifdef WITH_INTERNAL_NOSPEC - if (!matchall && grepbehave != GREP_FIXED) { + if (grepbehave != GREP_FIXED) { #else - if (!matchall) { + { #endif /* Check if cheating is allowed (always is for fgrep). */ for (i = 0; i < patterns; ++i) { @@ -735,7 +723,12 @@ main(int argc, char *argv[]) matched = true; } - /* Find out the correct return value according to the - results and the command line option. */ + if (Lflag) + matched = !matched; + + /* + * Calculate the correct return value according to the + * results and the command line option. + */ exit(matched ? (file_err ? (qflag ? 0 : 2) : 0) : (file_err ? 2 : 1)); } Modified: stable/12/usr.bin/grep/util.c ============================================================================== --- stable/12/usr.bin/grep/util.c Sun Oct 6 04:02:29 2019 (r353137) +++ stable/12/usr.bin/grep/util.c Sun Oct 6 04:10:28 2019 (r353138) @@ -210,7 +210,7 @@ procmatch_match(struct mprintc *mc, struct parsec *pc) while (pc->matchidx >= MAX_MATCHES) { /* Reset matchidx and try again */ pc->matchidx = 0; - if (procline(pc)) + if (procline(pc) == !vflag) printline(pc, ':'); else break; @@ -355,7 +355,7 @@ procfile(const char *fn) return (0); } - line_matched = procline(&pc); + line_matched = procline(&pc) == !vflag; if (line_matched) ++lines; @@ -469,18 +469,33 @@ procline(struct parsec *pc) matchidx = pc->matchidx; - /* Special case: empty pattern with -w flag, check first character */ - if (matchall && wflag) { + /* + * With matchall (empty pattern), we can try to take some shortcuts. + * Emtpy patterns trivially match every line except in the -w and -x + * cases. For -w (whole-word) cases, we only match if the first + * character isn't a word-character. For -x (whole-line) cases, we only + * match if the line is empty. + */ + if (matchall) { if (pc->ln.len == 0) return (true); - wend = L' '; - if (sscanf(&pc->ln.dat[0], "%lc", &wend) != 1 || iswword(wend)) - return (false); - else + if (wflag) { + wend = L' '; + if (sscanf(&pc->ln.dat[0], "%lc", &wend) == 1 && + !iswword(wend)) + return (true); + } else if (!xflag) return (true); - } else if (matchall) - return (true); + /* + * If we don't have any other patterns, we really don't match. + * If we do have other patterns, we must fall through and check + * them. + */ + if (patterns == 0) + return (false); + } + matched = false; st = pc->lnstart; nst = 0; @@ -609,8 +624,6 @@ procline(struct parsec *pc) /* Reflect the new matchidx in the context */ pc->matchidx = matchidx; - if (vflag) - matched = !matched; return matched; } From owner-svn-src-all@freebsd.org Sun Oct 6 04:12:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE3D7FA2D0; Sun, 6 Oct 2019 04:12:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46m9DT4qWwz4Y24; Sun, 6 Oct 2019 04:12:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8A49D1FA43; Sun, 6 Oct 2019 04:12:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x964C91k044296; Sun, 6 Oct 2019 04:12:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964C9iq044293; Sun, 6 Oct 2019 04:12:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910060412.x964C9iq044293@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:12:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353139 - in stable/12/usr.bin/grep: . tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12/usr.bin/grep: . tests X-SVN-Commit-Revision: 353139 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:12:09 -0000 Author: kevans Date: Sun Oct 6 04:12:08 2019 New Revision: 353139 URL: https://svnweb.freebsd.org/changeset/base/353139 Log: MFC r348503, r351769: bsdgrep nits r348503: grep: Move lone 'r'grep case into the adjacent switch This 'r' case should have belonged to the switch in the first place, but I had somehow missed the switch when initially adding the rgrep link. The zgrep script later came along and faithfully left this case standing alone, so we will now go ahead and join it. Nearby comment also adjusted a tad bit for wording and style. r351769: bsdgrep(1): add some basic tests for some GNU Extension support These will be expanded later as I come up with good test cases; for now, these seem to be enough to trigger bugs in base gnugrep and expose missing features in bsdgrep. Modified: stable/12/usr.bin/grep/grep.c stable/12/usr.bin/grep/tests/grep_freebsd_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/grep/grep.c ============================================================================== --- stable/12/usr.bin/grep/grep.c Sun Oct 6 04:10:28 2019 (r353138) +++ stable/12/usr.bin/grep/grep.c Sun Oct 6 04:12:08 2019 (r353139) @@ -332,20 +332,22 @@ main(int argc, char *argv[]) setlocale(LC_ALL, ""); - /* Check what is the program name of the binary. In this - way we can have all the funcionalities in one binary - without the need of scripting and using ugly hacks. */ + /* + * Check how we've bene invoked to determine the behavior we should + * exhibit. In this way we can have all the functionalities in one + * binary without the need of scripting and using ugly hacks. + */ pn = getprogname(); - if (pn[0] == 'r') { - dirbehave = DIR_RECURSE; - Hflag = true; - } switch (pn[0]) { case 'e': grepbehave = GREP_EXTENDED; break; case 'f': grepbehave = GREP_FIXED; + break; + case 'r': + dirbehave = DIR_RECURSE; + Hflag = true; break; } Modified: stable/12/usr.bin/grep/tests/grep_freebsd_test.sh ============================================================================== --- stable/12/usr.bin/grep/tests/grep_freebsd_test.sh Sun Oct 6 04:10:28 2019 (r353138) +++ stable/12/usr.bin/grep/tests/grep_freebsd_test.sh Sun Oct 6 04:12:08 2019 (r353139) @@ -82,8 +82,34 @@ rgrep_body() atf_check -o file:d_grep_r_implied.out rgrep --exclude="*.out" -e "test" "$(atf_get_srcdir)" } +atf_test_case gnuext +gnuext_body() +{ + grep_type + _type=$? + if [ $_type -eq $GREP_TYPE_BSD ]; then + atf_expect_fail "this test requires GNU extensions in regex(3)" + elif [ $_type -eq $GREP_TYPE_GNU_FREEBSD ]; then + atf_expect_fail "\\s and \\S are known to be buggy in base gnugrep" + fi + + atf_check -o save:grep_alnum.out grep -o '[[:alnum:]]' /COPYRIGHT + atf_check -o file:grep_alnum.out grep -o '\w' /COPYRIGHT + + atf_check -o save:grep_nalnum.out grep -o '[^[:alnum:]]' /COPYRIGHT + atf_check -o file:grep_nalnum.out grep -o '\W' /COPYRIGHT + + atf_check -o save:grep_space.out grep -o '[[:space:]]' /COPYRIGHT + atf_check -o file:grep_space.out grep -o '\s' /COPYRIGHT + + atf_check -o save:grep_nspace.out grep -o '[^[:space:]]' /COPYRIGHT + atf_check -o file:grep_nspace.out grep -o '\S' /COPYRIGHT + +} + atf_init_test_cases() { atf_add_test_case grep_r_implied atf_add_test_case rgrep + atf_add_test_case gnuext } From owner-svn-src-all@freebsd.org Sun Oct 6 04:19:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 04:26:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7CE09FADAC; Sun, 6 Oct 2019 04:26:39 +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 46m9YC3D7Fz4Z0l; Sun, 6 Oct 2019 04:26:39 +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 36AAF1FC2C; Sun, 6 Oct 2019 04:26:39 +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 x964Qd7i053818; Sun, 6 Oct 2019 04:26:39 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964QcsS053813; Sun, 6 Oct 2019 04:26:38 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910060426.x964QcsS053813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sun, 6 Oct 2019 04:26:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353141 - in vendor/libpcap/dist: . cmake/Modules doc missing msdos pcap rpcapd testprogs X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: in vendor/libpcap/dist: . cmake/Modules doc missing msdos pcap rpcapd testprogs X-SVN-Commit-Revision: 353141 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:26:39 -0000 Author: philip Date: Sun Oct 6 04:26:37 2019 New Revision: 353141 URL: https://svnweb.freebsd.org/changeset/base/353141 Log: Import libpcap 1.9.1 Added: vendor/libpcap/dist/CONTRIBUTING.md vendor/libpcap/dist/INSTALL.md vendor/libpcap/dist/README.md vendor/libpcap/dist/doc/ vendor/libpcap/dist/doc/DLT_ALLOCATE_HOWTO.md vendor/libpcap/dist/doc/README.Win32.md vendor/libpcap/dist/doc/README.aix vendor/libpcap/dist/doc/README.dag vendor/libpcap/dist/doc/README.hpux vendor/libpcap/dist/doc/README.linux.md vendor/libpcap/dist/doc/README.macos vendor/libpcap/dist/doc/README.septel vendor/libpcap/dist/doc/README.sita vendor/libpcap/dist/doc/README.tru64 vendor/libpcap/dist/missing/asprintf.c (contents, props changed) vendor/libpcap/dist/missing/strlcat.c (contents, props changed) vendor/libpcap/dist/missing/strlcpy.c (contents, props changed) vendor/libpcap/dist/missing/win_asprintf.c (contents, props changed) vendor/libpcap/dist/pcap/socket.h (contents, props changed) vendor/libpcap/dist/pcap_set_immediate_mode.3pcap.in (contents, props changed) vendor/libpcap/dist/pcap_set_protocol_linux.3pcap vendor/libpcap/dist/rpcapd/ vendor/libpcap/dist/rpcapd/CMakeLists.txt (contents, props changed) vendor/libpcap/dist/rpcapd/Makefile.in (contents, props changed) vendor/libpcap/dist/rpcapd/config_params.h (contents, props changed) vendor/libpcap/dist/rpcapd/daemon.c (contents, props changed) vendor/libpcap/dist/rpcapd/daemon.h (contents, props changed) vendor/libpcap/dist/rpcapd/fileconf.c (contents, props changed) vendor/libpcap/dist/rpcapd/fileconf.h (contents, props changed) vendor/libpcap/dist/rpcapd/log.c (contents, props changed) vendor/libpcap/dist/rpcapd/log.h (contents, props changed) vendor/libpcap/dist/rpcapd/org.tcpdump.rpcapd.plist vendor/libpcap/dist/rpcapd/rpcapd-config.manfile.in (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd.c (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd.h (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd.inetd.conf (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd.manadmin.in (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd.rc vendor/libpcap/dist/rpcapd/rpcapd.socket vendor/libpcap/dist/rpcapd/rpcapd.xinetd.conf (contents, props changed) vendor/libpcap/dist/rpcapd/rpcapd@.service vendor/libpcap/dist/rpcapd/win32-svc.c (contents, props changed) vendor/libpcap/dist/rpcapd/win32-svc.h (contents, props changed) vendor/libpcap/dist/testprogs/ vendor/libpcap/dist/testprogs/CMakeLists.txt (contents, props changed) vendor/libpcap/dist/testprogs/Makefile.in (contents, props changed) vendor/libpcap/dist/testprogs/can_set_rfmon_test.c (contents, props changed) vendor/libpcap/dist/testprogs/capturetest.c (contents, props changed) vendor/libpcap/dist/testprogs/filtertest.c (contents, props changed) vendor/libpcap/dist/testprogs/findalldevstest.c (contents, props changed) vendor/libpcap/dist/testprogs/opentest.c (contents, props changed) vendor/libpcap/dist/testprogs/reactivatetest.c (contents, props changed) vendor/libpcap/dist/testprogs/selpolltest.c (contents, props changed) vendor/libpcap/dist/testprogs/threadsignaltest.c (contents, props changed) vendor/libpcap/dist/testprogs/unix.h (contents, props changed) vendor/libpcap/dist/testprogs/valgrindtest.c (contents, props changed) Deleted: vendor/libpcap/dist/CONTRIBUTING vendor/libpcap/dist/INSTALL.txt vendor/libpcap/dist/README vendor/libpcap/dist/README.Win32 vendor/libpcap/dist/README.aix vendor/libpcap/dist/README.dag vendor/libpcap/dist/README.hpux vendor/libpcap/dist/README.linux vendor/libpcap/dist/README.macos vendor/libpcap/dist/README.septel vendor/libpcap/dist/README.sita vendor/libpcap/dist/README.tru64 vendor/libpcap/dist/cmake/Modules/FindPthreads-w32.cmake vendor/libpcap/dist/pcap_set_immediate_mode.3pcap vendor/libpcap/dist/pcap_set_protocol.3pcap Modified: vendor/libpcap/dist/CHANGES vendor/libpcap/dist/CMakeLists.txt vendor/libpcap/dist/CREDITS vendor/libpcap/dist/Makefile.in vendor/libpcap/dist/VERSION vendor/libpcap/dist/aclocal.m4 vendor/libpcap/dist/bpf_filter.c vendor/libpcap/dist/cmake/Modules/FindPacket.cmake vendor/libpcap/dist/cmakeconfig.h.in vendor/libpcap/dist/config.guess vendor/libpcap/dist/config.h.in vendor/libpcap/dist/config.sub vendor/libpcap/dist/configure vendor/libpcap/dist/configure.ac vendor/libpcap/dist/diag-control.h vendor/libpcap/dist/fmtutils.c vendor/libpcap/dist/fmtutils.h vendor/libpcap/dist/ftmacros.h vendor/libpcap/dist/gencode.c vendor/libpcap/dist/gencode.h vendor/libpcap/dist/grammar.y vendor/libpcap/dist/missing/snprintf.c vendor/libpcap/dist/missing/win_snprintf.c vendor/libpcap/dist/msdos/readme.dos vendor/libpcap/dist/nametoaddr.c vendor/libpcap/dist/optimize.c vendor/libpcap/dist/pcap-bpf.c vendor/libpcap/dist/pcap-bt-linux.c vendor/libpcap/dist/pcap-bt-monitor-linux.c vendor/libpcap/dist/pcap-common.c vendor/libpcap/dist/pcap-common.h vendor/libpcap/dist/pcap-dag.c vendor/libpcap/dist/pcap-dlpi.c vendor/libpcap/dist/pcap-dos.c vendor/libpcap/dist/pcap-filter.manmisc.in vendor/libpcap/dist/pcap-int.h vendor/libpcap/dist/pcap-libdlpi.c vendor/libpcap/dist/pcap-linktype.manmisc.in vendor/libpcap/dist/pcap-linux.c vendor/libpcap/dist/pcap-netfilter-linux.c vendor/libpcap/dist/pcap-netmap.c vendor/libpcap/dist/pcap-new.c vendor/libpcap/dist/pcap-npf.c vendor/libpcap/dist/pcap-null.c vendor/libpcap/dist/pcap-rpcap.c vendor/libpcap/dist/pcap-rpcap.h vendor/libpcap/dist/pcap-savefile.manfile.in vendor/libpcap/dist/pcap-septel.c vendor/libpcap/dist/pcap-sita.c vendor/libpcap/dist/pcap-sita.html vendor/libpcap/dist/pcap-snf.c vendor/libpcap/dist/pcap-tc.c vendor/libpcap/dist/pcap-tstamp.manmisc.in vendor/libpcap/dist/pcap-usb-linux.c vendor/libpcap/dist/pcap.3pcap.in vendor/libpcap/dist/pcap.c vendor/libpcap/dist/pcap/bpf.h vendor/libpcap/dist/pcap/compiler-tests.h vendor/libpcap/dist/pcap/dlt.h vendor/libpcap/dist/pcap/funcattrs.h vendor/libpcap/dist/pcap/nflog.h vendor/libpcap/dist/pcap/pcap-inttypes.h vendor/libpcap/dist/pcap/pcap.h vendor/libpcap/dist/pcap/sll.h vendor/libpcap/dist/pcap_activate.3pcap vendor/libpcap/dist/pcap_breakloop.3pcap vendor/libpcap/dist/pcap_can_set_rfmon.3pcap vendor/libpcap/dist/pcap_compile.3pcap.in vendor/libpcap/dist/pcap_create.3pcap vendor/libpcap/dist/pcap_datalink.3pcap.in vendor/libpcap/dist/pcap_datalink_name_to_val.3pcap vendor/libpcap/dist/pcap_datalink_val_to_name.3pcap vendor/libpcap/dist/pcap_dump.3pcap vendor/libpcap/dist/pcap_dump_file.3pcap vendor/libpcap/dist/pcap_dump_flush.3pcap vendor/libpcap/dist/pcap_dump_ftell.3pcap vendor/libpcap/dist/pcap_dump_open.3pcap.in vendor/libpcap/dist/pcap_file.3pcap vendor/libpcap/dist/pcap_fileno.3pcap vendor/libpcap/dist/pcap_findalldevs.3pcap vendor/libpcap/dist/pcap_freecode.3pcap vendor/libpcap/dist/pcap_get_required_select_timeout.3pcap vendor/libpcap/dist/pcap_get_selectable_fd.3pcap vendor/libpcap/dist/pcap_get_tstamp_precision.3pcap.in vendor/libpcap/dist/pcap_geterr.3pcap vendor/libpcap/dist/pcap_inject.3pcap vendor/libpcap/dist/pcap_is_swapped.3pcap vendor/libpcap/dist/pcap_list_datalinks.3pcap.in vendor/libpcap/dist/pcap_list_tstamp_types.3pcap.in vendor/libpcap/dist/pcap_lookupdev.3pcap vendor/libpcap/dist/pcap_lookupnet.3pcap vendor/libpcap/dist/pcap_loop.3pcap vendor/libpcap/dist/pcap_major_version.3pcap vendor/libpcap/dist/pcap_next_ex.3pcap vendor/libpcap/dist/pcap_offline_filter.3pcap vendor/libpcap/dist/pcap_open_dead.3pcap.in vendor/libpcap/dist/pcap_open_live.3pcap vendor/libpcap/dist/pcap_open_offline.3pcap.in vendor/libpcap/dist/pcap_set_datalink.3pcap vendor/libpcap/dist/pcap_set_timeout.3pcap vendor/libpcap/dist/pcap_set_tstamp_precision.3pcap.in vendor/libpcap/dist/pcap_set_tstamp_type.3pcap.in vendor/libpcap/dist/pcap_setdirection.3pcap vendor/libpcap/dist/pcap_setfilter.3pcap vendor/libpcap/dist/pcap_setnonblock.3pcap vendor/libpcap/dist/pcap_snapshot.3pcap vendor/libpcap/dist/pcap_stats.3pcap vendor/libpcap/dist/pcap_strerror.3pcap vendor/libpcap/dist/pcap_tstamp_type_name_to_val.3pcap vendor/libpcap/dist/pcap_tstamp_type_val_to_name.3pcap vendor/libpcap/dist/portability.h vendor/libpcap/dist/rpcap-protocol.h vendor/libpcap/dist/savefile.c vendor/libpcap/dist/scanner.l vendor/libpcap/dist/sf-pcap.c vendor/libpcap/dist/sf-pcap.h vendor/libpcap/dist/sf-pcapng.c vendor/libpcap/dist/sf-pcapng.h vendor/libpcap/dist/sockutils.c vendor/libpcap/dist/sockutils.h Modified: vendor/libpcap/dist/CHANGES ============================================================================== --- vendor/libpcap/dist/CHANGES Sun Oct 6 04:19:49 2019 (r353140) +++ vendor/libpcap/dist/CHANGES Sun Oct 6 04:26:37 2019 (r353141) @@ -1,5 +1,129 @@ -Wednesday, Jan. 25, 2017 guy@alum.mit.edu +Sunday, July 22, 2018 + Summary for 1.9.1 libpcap release + Mention pcap_get_required_select_timeout() in the main pcap man page + Fix pcap-usb-linux.c build on systems with musl + Fix assorted man page and other documentation issues + Plug assorted memory leaks + Documentation changes to use https: + Changes to how time stamp calculations are done + Lots of tweaks to make newer compilers happier and warning-free and + to fix instances of C undefined behavior + Warn if AC_PROG_CC_C99 can't enable C99 support + Rename pcap_set_protocol() to pcap_set_protocol_linux(). + Align pcap_t private data on an 8-byte boundary. + Fix various error messages + Use 64-bit clean API in dag_findalldevs() + Fix cleaning up after some errors + Work around some ethtool ioctl bugs in newer Linux kernels (GitHub + issue #689) + Add backwards compatibility sections to some man pages (GitHub issue + #745) + Fix autotool configuration on AIX and macOS + Don't export bpf_filter_with_aux_data() or struct bpf_aux_data; + they're internal-only and subject to change + Fix pcapng block size checking + On macOS, don't build rpcapd or test programs any fatter than they + need to be + Fix reading of capture statistics for Linux USB + Fix packet size values for Linux USB packets (GitHub issue #808) + Check only VID in VLAN test in filterss (GitHub issue #461) + Fix pcap_list_datalinks on 802.11 devices on macOS + Fix overflows with very large snapshot length in pcap file + Improve parsing of rpcapd configuration file (GitHub issue #767) + Handle systems without strlcpy() or strlcat() better + Fix crashes and other errors with invalid filter expressions + Fix use of uninitialized file descriptor in remote capture + Fix some CMake issues + Fix some divide-by-zero issues with the filter compiler + Work around a GNU libc bug in pcap_nametonetaddr() + Add support for DLT_LINUX_SLL2 + Fix handling of the packet-count argument for Myricom SNF devices + Fix --disable-rdma in configure script (GitHub issue #782) + Fix compilation of TurboCap support (GitHub issue #764) + Constify first argument to pcap_findalldevs_ex() + Fix a number of issues when running rpcapd as an inetd-style daemon + Fix CMake issues with D-Bus libraries + In rpcapd, clean up termination of a capture session + Redo remote capture protocol negotiation + In rpcapd, report the same error for "invalid user name" and + "invalid password", to make brute-forcing harder + For remote captures, add an error code for "the server requires TLS" + Fix pcap_dump_fopen() on Windows to avoid clashes between + {Win,N}Pcap and application C runtimes + Fix exporting of functions from Windows DLLs (GitHub issue #810) + Fix building as part of Npcap + Allow rpcapd to rebind more rapidly + Fix building shared libpcap library on midipix (midipix.org) + Fix hack to detect UTF-16LE adapter names on Windows not to go past + the end of the string + Fix handling of "wireless WAN" (mobile phone network modems) on + Windows with WinPcap/Npcap (GitHub issue #824) + Have pcap_dump_open_append() create the dump file if it doesn't + exists (GitHub issue #247) + Fix the maxmum snapshot length for DLT_USBPCAP + Use -fPIC when building for 64-bit SPARC on Linux (GitHub issue #837) + Fix CMake 64-bit library installation directory on some Linux + distributions + Boost the TPACKET_V3 timeout to the maximum if a timeout of 0 was + specified + Five CVE-2019-15161, CVE-2019-15162, CVE-2019-15163, CVE-2019-15164, CVE-2019-15165 + Fixes for CVE-2018-16301, errors in pcapng reading. + PCAPNG reader applies some sanity checks before doing malloc(). + +Sunday, June 24, 2018, by mcr@sandelman.ca Summary for 1.9.0 libpcap release + Added testing system to libpcap, independent of tcpdump + Changes to how pcap_t is activated + Adding support for Large stream buffers on Endace DAG cards + Changes to BSD 3-clause license to 2-clause licence + Additions to TCP header parsing, per RFC3168 + Add CMake build process (extensive number of changes) + Assign a value for OpenBSD DLT_OPENFLOW. + Support setting non-blocking mode before activating. + Extensive build support for Windows VS2010 and MINGW (many many changes, over many months) + Added RPCAPD support when --enable-remote (default no) + Add the rpcap daemon source and build instructions. + Put back the greasy "save the capture filter string so we can tweak it" + hack, that keeps libpcap from capturing rpcap traffic. + Fixes for captures on MacOS, utun0 + fixes so that non-AF_INET addresses, are not ==AF_INET6 addresses. + Add a linktype for IBM SDLC frames containing SNA PDUs. + pcap_compile() in 1.8.0 and later is newly thread-safe. + bound snaplen for linux tpacket_v2 to ~64k + Make VLAN filter handle both metadata and inline tags + D-Bus captures can now be up to 128MB in size + Added LORATAP DLT value + Added DLT_VSOCK for http://qemu-project.org/Features/VirtioVsock + probe_devices() fixes not to overrun buffer for name of device + Add linux-specific pcap_set_protocol_linux() to allow specifying a specific capture protocol. + RDMA sniffing support for pcap + Add Nordic Semiconductor Bluetooth LE sniffer link-layer header type. + fixes for reading /etc/ethers + Make it possible to build on Windows without packet.dll. + Add tests for large file support on UN*X. + Solaris fixes to work with 2.8.6 + configuration test now looks for header files, not capture devices present + Fix to work with Berkeley YACC. + fixes for DragonBSD compilation of pcap-netmap.c + Clean up the ether_hostton() stuff. + Add an option to disable Linux memory-mapped capture support. + Add DAG API support checks. + Add Septel, Myricom SNF, and Riverbed TurboCap checks. + Add checks for Linux USB, Linux Bluetooth, D-Bus, and RDMA sniffing support. + Add a check for hardware time stamping on Linux. + Don't bother supporting pre-2005 Visual Studio. + Increased minimum autoconf version requirement to 2.64 + Add DLT value 273 for XRA-31 sniffer + Clean up handing of signal interrupts in pcap_read_nocb_remote(). + Use the XPG 4.2 versions of the networking APIs in Solaris. + Fix, and better explain, the "IPv6 means IPv6, not IPv4" option setting. + Explicitly warn that negative packet buffer timeouts should not be used. + rpcapd: Add support inetd-likes, including xinetd.conf, and systemd units + Rename DLT_IEEE802_15_4 to DLT_IEEE802_15_4_WITHFCS. + Add DISPLAYPORT AUX link type + Remove the sunos4 kernel modules and all references to them. + Add more interface flags to pcap_findalldevs(). + Summary for 1.9.0 libpcap release (to 2017-01-25 by guy@alum.mit.edu) Man page improvements Fix Linux cooked mode userspace filtering (GitHub pull request #429) Fix compilation if IPv6 support not enabled Modified: vendor/libpcap/dist/CMakeLists.txt ============================================================================== --- vendor/libpcap/dist/CMakeLists.txt Sun Oct 6 04:19:49 2019 (r353140) +++ vendor/libpcap/dist/CMakeLists.txt Sun Oct 6 04:26:37 2019 (r353141) @@ -9,7 +9,7 @@ if(POLICY CMP0042) cmake_policy(SET CMP0042 OLD) endif() -set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) project(pcap) @@ -136,83 +136,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") endif() # -# By default, build universal with the appropriate set of architectures -# for the OS on which we're doing the build. -# -if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "") - # - # Get the major version of Darwin. - # - string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MAJOR "${CMAKE_SYSTEM_VERSION}") - - if(SYSTEM_VERSION_MAJOR LESS 8) - # - # Pre-Tiger. Build only for 32-bit PowerPC. - # - set(CMAKE_OSX_ARCHITECTURES "ppc") - elseif(SYSTEM_VERSION_MAJOR EQUAL 8) - # - # Tiger. Is this prior to, or with, Intel support? - # - # Get the minor version of Darwin. - # - string(REPLACE "${SYSTEM_VERSION_MAJOR}." "" SYSTEM_MINOR_AND_PATCH_VERSION ${CMAKE_SYSTEM_VERSION}) - string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MINOR "${SYSTEM_MINOR_AND_PATCH_VERSION}") - if(SYSTEM_VERSION_MINOR LESS 4) - # - # Prior to Intel support. Build for 32-bit - # PowerPC and 64-bit PowerPC, with 32-bit PowerPC - # first. (I'm guessing that's what Apple does.) - # - set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64") - elseif(SYSTEM_VERSION_MINOR LESS 7) - # - # With Intel support but prior to x86-64 support. - # Build for 32-bit PowerPC, 64-bit PowerPC, and x86, - # with 32-bit PowerPC first. - # (I'm guessing that's what Apple does.) - # - set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386") - else() - # - # With Intel support including x86-64 support. - # Build for 32-bit PowerPC, 64-bit PowerPC, x86, - # and x86-64, with 32-bit PowerPC first. - # (I'm guessing that's what Apple does.) - # - set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64") - endif() - elseif(SYSTEM_VERSION_MAJOR EQUAL 9) - # - # Leopard. Build for 32-bit PowerPC, 64-bit - # PowerPC, x86, and x86-64, with 32-bit PowerPC - # first. (That's what Apple does.) - # - set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64") - elseif(SYSTEM_VERSION_MAJOR EQUAL 10) - # - # Snow Leopard. Build for x86-64, x86, and - # 32-bit PowerPC, with x86-64 first. (That's - # what Apple does, even though Snow Leopard - # doesn't run on PPC, so PPC libpcap runs under - # Rosetta, and Rosetta doesn't support BPF - # ioctls, so PPC programs can't do live - # captures.) - # - set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc") - else() - # - # Post-Snow Leopard. Build for x86-64 and - # x86, with x86-64 first. (That's probably what - # Apple does, given that Rosetta is gone.) - # XXX - update if and when Apple drops support - # for 32-bit x86 code. - # - set(CMAKE_OSX_ARCHITECTURES "x86_64;i386") - endif() -endif() - -# # Additional capture modules. # option(DISABLE_USB "Disable USB sniffing support" OFF) @@ -233,7 +156,7 @@ option(DISABLE_RDMA "Disable RDMA sniffing support" OF option(DISABLE_DAG "Disable Endace DAG card support" OFF) option(DISABLE_SEPTEL "Disable Septel card support" OFF) -set(SEPTEL_ROOT "${CMAKE_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API") +set(SEPTEL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API") option(DISABLE_SNF "Disable Myricom SNF support" OFF) @@ -251,7 +174,7 @@ option(YYDEBUG "Build parser debugging code" OFF) # Get, parse, format and set pcap's version string from [pcap_root]/VERSION # for later use. - + # Get MAJOR, MINOR, PATCH & SUFFIX file(STRINGS ${pcap_SOURCE_DIR}/VERSION PACKAGE_VERSION @@ -264,7 +187,7 @@ string(REGEX MATCH "^([0-9]+)" PACKAGE_VERSION_MAJOR " # Get MAJOR, MINOR & PATCH string(REGEX MATCH "^([0-9]+.)?([0-9]+.)?([0-9]+)" PACKAGE_VERSION_NOSUFFIX "${PACKAGE_VERSION}") -if(WIN32) +if(WIN32) # Convert PCAP_VERSION_NOSUFFIX to Windows preferred version format string(REPLACE "." "," PACKAGE_VERSION_PREDLL ${PACKAGE_VERSION_NOSUFFIX}) @@ -289,6 +212,7 @@ include_directories( include(CheckFunctionExists) include(CMakePushCheckState) +include(CheckSymbolExists) if(WIN32) @@ -310,6 +234,14 @@ if(WIN32) cmake_pop_check_state() endif(PACKET_FOUND) + message(STATUS "checking for Npcap's version.h") + check_symbol_exists(WINPCAP_PRODUCT_NAME "../../version.h" HAVE_VERSION_H) + if(HAVE_VERSION_H) + message(STATUS "HAVE version.h") + else(HAVE_VERSION_H) + message(STATUS "MISSING version.h") + endif(HAVE_VERSION_H) + endif(WIN32) if(MSVC) @@ -344,6 +276,11 @@ include(CheckStructHasMember) include(CheckTypeSize) # +# Tests are a bit expensive with Visual Studio on Windows, so, on +# Windows, we skip tests for UN*X-only headers and functions. +# + +# # Header files. # check_include_file(inttypes.h HAVE_INTTYPES_H) @@ -395,12 +332,44 @@ endif(NOT WIN32) # check_function_exists(strerror HAVE_STRERROR) check_function_exists(strerror_r HAVE_STRERROR_R) -check_function_exists(strerror_s HAVE_STRERROR_S) +if(HAVE_STRERROR_R) + # + # We have strerror_r; if we define _GNU_SOURCE, is it a + # POSIX-compliant strerror_r() or a GNU strerror_r()? + # + check_c_source_compiles( +"#define _GNU_SOURCE +#include + +/* Define it GNU-style; that will cause an error if it's not GNU-style */ +extern char *strerror_r(int, char *, size_t); + +int +main(void) +{ + return 0; +} +" + HAVE_GNU_STRERROR_R) + if(NOT HAVE_GNU_STRERROR_R) + set(HAVE_POSIX_STRERROR_R YES) + endif(NOT HAVE_GNU_STRERROR_R) +else(HAVE_STRERROR_R) + # + # We don't have strerror_r; do we have strerror_s? + # + check_function_exists(strerror_s HAVE_STRERROR_S) +endif(HAVE_STRERROR_R) check_function_exists(strlcpy HAVE_STRLCPY) check_function_exists(strlcat HAVE_STRLCAT) check_function_exists(snprintf HAVE_SNPRINTF) check_function_exists(vsnprintf HAVE_VSNPRINTF) +check_function_exists(asprintf HAVE_ASPRINTF) +check_function_exists(vasprintf HAVE_VASPRINTF) check_function_exists(strtok_r HAVE_STRTOK_R) +if(NOT WIN32) + check_function_exists(vsyslog HAVE_VSYSLOG) +endif() # # These tests are for network applications that need socket functions @@ -429,7 +398,6 @@ check_function_exists(strtok_r HAVE_STRTOK_R) # set(PCAP_LINK_LIBRARIES "") include(CheckLibraryExists) -include(CheckSymbolExists) if(WIN32) # # We need winsock2.h and ws2tcpip.h. @@ -865,11 +833,61 @@ set(PROJECT_SOURCE_LIST_C ) if(WIN32) - set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/win_snprintf.c) + # + # For now, we assume we don't have snprintf() or that it's not one + # that behaves enough like C99's snprintf() for our purposes (i.e., + # it doesn't null-terminate the string if it truncates it to fit in + # the buffer), so we have to provide our own (a wrapper around + # _snprintf() that null-terminates the buffer). + # + # We also assume we don't have asprintf(), and provide an implementation + # that uses _vscprintf() to determine how big the string needs to be. + # + set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} + missing/win_snprintf.c missing/win_asprintf.c) else() + # + # Either: + # + # we have snprintf() and vsnprintf(), and have asprintf() and + # vasprintf(); + # + # we have snprintf() and vsnprintf(), but don't have asprintf() + # or vasprintf(); + # + # we have neither snprintf() nor vsnprintf(), and don't have + # asprintf() or vasprintf(), either. + # + # We assume that if we have asprintf() we have vasprintf(), as well + # as snprintf() and vsnprintf(), and that if we have snprintf() we + # have vsnprintf(). + # + # For the first case, we don't need any replacement routines. + # For the second case, we need replacement asprintf()/vasprintf() + # routines. + # For the third case, we need replacement snprintf()/vsnprintf() and + # asprintf()/vasprintf() routines. + # if(NOT HAVE_SNPRINTF) + # + # We assume we have none of them; missing/snprintf.c supplies + # all of them. + # set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/snprintf.c) - endif(NOT HAVE_SNPRINTF) + elif(NOT HAVE_ASPRINTF) + # + # We assume we have snprintf()/vsnprintf() but lack + # asprintf()/vasprintf(); missing/asprintf.c supplies + # the latter (using vsnprintf()). + # + set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/asprintf.c) + endif() + if(NOT HAVE_STRLCAT) + set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strlcat.c) + endif(NOT HAVE_STRLCAT) + if(NOT HAVE_STRLCPY) + set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strlcpy.c) + endif(NOT HAVE_STRLCPY) if(NOT HAVE_STRTOK_R) set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/strtok_r.c) endif(NOT HAVE_STRTOK_R) @@ -931,13 +949,16 @@ else() # as it's a Linux, it should use packet sockets, # instead. # - # # We need: # # sys/types.h, because FreeBSD 10's net/bpf.h # requires that various BSD-style integer types # be defined; # + # sys/time.h, because AIX 5.2 and 5.3's net/bpf.h + # doesn't include it but does use struct timeval + # in ioctl definitions; + # # sys/ioctl.h and, if we have it, sys/ioccom.h, # because net/bpf.h defines ioctls; # @@ -952,9 +973,9 @@ else() # of those headers itself. # if(HAVE_SYS_IOCCOM_H) - check_symbol_exists(BIOCSETIF "sys/types.h;sys/ioctl.h;sys/socket.h;sys/ioccom.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF) + check_symbol_exists(BIOCSETIF "sys/types.h;sys/time.h;sys/ioctl.h;sys/socket.h;sys/ioccom.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF) else(HAVE_SYS_IOCCOM_H) - check_symbol_exists(BIOCSETIF "sys/types.h;sys/ioctl.h;sys/socket.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF) + check_symbol_exists(BIOCSETIF "sys/types.h;sys/time.h;sys/ioctl.h;sys/socket.h;net/bpf.h;net/if.h" BPF_H_DEFINES_BIOCSETIF) endif(HAVE_SYS_IOCCOM_H) endif(HAVE_NET_BPF_H) check_include_file(net/pfilt.h HAVE_NET_PFILT_H) @@ -1436,7 +1457,28 @@ if(NOT DISABLE_DBUS) set(PCAP_SUPPORT_DBUS TRUE) set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} pcap-dbus.c) include_directories(${DBUS_INCLUDE_DIRS}) - set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${DBUS_LIBRARIES}) + + # + # This "helpfully" supplies DBUS_LIBRARIES as a bunch of + # library names - not paths - and DBUS_LIBRARY_DIRS as + # a bunch of directories. + # + # CMake *really* doesn't like the notion of specifying "here are + # the directories in which to look for libraries" except in + # find_library() calls; it *really* prefers using full paths to + # library files, rather than library names. + # + # Find the libraries and add their full paths. + # + set(DBUS_LIBRARY_FULLPATHS) + foreach(_lib IN LISTS DBUS_LIBRARIES) + # + # Try to find this library, so we get its full path. + # + find_library(_libfullpath ${_lib} HINTS ${DBUS_LIBRARY_DIRS}) + list(APPEND DBUS_LIBRARY_FULLPATHS ${_libfullpath}) + endforeach() + set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${DBUS_LIBRARY_FULLPATHS}) endif(DBUS_FOUND) endif(NOT DISABLE_DBUS) @@ -1499,7 +1541,7 @@ if(NOT DISABLE_DAG) endif() endif() endif() -endif() +endif() # Check for Septel card support. set(PROJECT_EXTERNAL_OBJECT_LIST "") @@ -1521,7 +1563,7 @@ if(NOT DISABLE_SEPTEL) set(PROJECT_EXTERNAL_OBJECT_LIST ${PROJECT_EXTERNAL_OBJECT_LIST} "${SEPTEL_ROOT}/asciibin.o ${SEPTEL_ROOT}/bit2byte.o ${SEPTEL_ROOT}/confirm.o ${SEPTEL_ROOT}/fmtmsg.o ${SEPTEL_ROOT}/gct_unix.o ${SEPTEL_ROOT}/hqueue.o ${SEPTEL_ROOT}/ident.o ${SEPTEL_ROOT}/mem.o ${SEPTEL_ROOT}/pack.o ${SEPTEL_ROOT}/parse.o ${SEPTEL_ROOT}/pool.o ${SEPTEL_ROOT}/sdlsig.o ${SEPTEL_ROOT}/strtonum.o ${SEPTEL_ROOT}/timer.o ${SEPTEL_ROOT}/trace.o") set(HAVE_SEPTEL_API TRUE) endif() -endif() +endif() # Check for Myricom SNF support. if(NOT DISABLE_SNF) @@ -1542,7 +1584,7 @@ if(NOT DISABLE_SNF) set(HAVE_SNF_API TRUE) set(PCAP_LINK_LIBRARIES ${PCAP_LINK_LIBRARIES} ${SNF_LIBRARIES}) endif() -endif() +endif() # Check for Riverbed TurboCap support. if(NOT DISABLE_TC) @@ -1563,7 +1605,7 @@ if(NOT DISABLE_TC) set(HAVE_TC_API TRUE) set(PCAP_LINK_LIBRARIES "${PCAP_LINK_LIBRARIES} ${TC_LIBRARIES} ${CMAKE_USE_PTHREADS_INIT} stdc++") endif() -endif() +endif() # # Remote capture support. @@ -1582,7 +1624,7 @@ if(ENABLE_REMOTE) # the check. # cmake_push_check_state() - set(CMAKE_REQUIRED_INCLUDES ${CMAKE_SOURCE_DIR}) + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}) check_struct_has_member("struct msghdr" msg_control "ftmacros.h;sys/socket.h" HAVE_STRUCT_MSGHDR_MSG_CONTROL) check_struct_has_member("struct msghdr" msg_flags "ftmacros.h;sys/socket.h" HAVE_STRUCT_MSGHDR_MSG_FLAGS) cmake_pop_check_state() @@ -1597,7 +1639,7 @@ endif(ENABLE_REMOTE) # # Check and add warning options if we have a .devel file. # -if(EXISTS ${CMAKE_SOURCE_DIR}/.devel OR EXISTS ${CMAKE_BINARY_DIR}/.devel) +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.devel OR EXISTS ${CMAKE_BINARY_DIR}/.devel) # # Warning options. # @@ -1808,10 +1850,12 @@ set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR # # Assume, by default, no support for shared libraries and V7/BSD -# convention for man pages (file formats in section 5, miscellaneous -# info in section 7, administrative commands and daemons in section 8). +# convention for man pages (devices in section 4, file formats in +# section 5, miscellaneous info in section 7, administrative commands +# and daemons in section 8). Individual cases can override this. # Individual cases can override this. # +set(MAN_DEVICES 4) set(MAN_FILE_FORMATS 5) set(MAN_MISC_INFO 7) set(MAN_ADMIN_COMMANDS 8) @@ -1869,6 +1913,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "OSF1") # set(MAN_FILE_FORMATS 4) set(MAN_MISC_INFO 5) + set(MAN_DEVICES 7) elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION MATCHES "5[.][0-9.]*") # # SunOS 5.x. @@ -1892,6 +1937,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SY set(MAN_ADMIN_COMMANDS 1m) set(MAN_FILE_FORMATS 4) set(MAN_MISC_INFO 5) + set(MAN_DEVICES 7D) endif() endif() @@ -1944,6 +1990,16 @@ if(BUILD_SHARED_LIBS) add_dependencies(${LIBRARY_NAME} SerializeTarget) set_target_properties(${LIBRARY_NAME} PROPERTIES COMPILE_DEFINITIONS BUILDING_PCAP) + # + # No matter what the library is called - it might be called "wpcap" + # in a Windows build - the symbol to define to indicate that we're + # building the library, rather than a program using the library, + # and thus that we're exporting functions defined in our public + # header files, rather than importing those functions, is + # pcap_EXPORTS. + # + set_target_properties(${LIBRARY_NAME} PROPERTIES + DEFINE_SYMBOL pcap_EXPORTS) endif(BUILD_SHARED_LIBS) add_library(${LIBRARY_NAME}_static STATIC @@ -1982,7 +2038,7 @@ if(WIN32) # For compatibility, build the shared library without the "lib" prefix on # MinGW as well. # - set_target_properties(${LIBRARY_NAME} PROPERTIES + set_target_properties(${LIBRARY_NAME} PROPERTIES PREFIX "" OUTPUT_NAME "${LIBRARY_NAME}" ) @@ -2020,6 +2076,118 @@ if(NOT C_ADDITIONAL_FLAGS STREQUAL "") set_target_properties(${LIBRARY_NAME}_static PROPERTIES COMPILE_FLAGS ${C_ADDITIONAL_FLAGS}) endif() +# +# On macOS, build libpcap for the appropriate architectures, if +# CMAKE_OSX_ARCHITECTURES isn't set (if it is, let that control +# the architectures for which to build it). +# +if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + # + # Get the major version of Darwin. + # + string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MAJOR "${CMAKE_SYSTEM_VERSION}") + + if(SYSTEM_VERSION_MAJOR LESS 8) + # + # Pre-Tiger. Build only for 32-bit PowerPC. + # + set(OSX_LIBRARY_ARCHITECTURES "ppc") + elseif(SYSTEM_VERSION_MAJOR EQUAL 8) + # + # Tiger. Is this prior to, or with, Intel support? + # + # Get the minor version of Darwin. + # + string(REPLACE "${SYSTEM_VERSION_MAJOR}." "" SYSTEM_MINOR_AND_PATCH_VERSION ${CMAKE_SYSTEM_VERSION}) + string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MINOR "${SYSTEM_MINOR_AND_PATCH_VERSION}") + if(SYSTEM_VERSION_MINOR LESS 4) + # + # Prior to Intel support. Build for 32-bit + # PowerPC and 64-bit PowerPC, with 32-bit PowerPC + # first. (I'm guessing that's what Apple does.) + # + set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64") + elseif(SYSTEM_VERSION_MINOR LESS 7) + # + # With Intel support but prior to x86-64 support. + # Build for 32-bit PowerPC, 64-bit PowerPC, and 32-bit x86, + # with 32-bit PowerPC first. + # (I'm guessing that's what Apple does.) + # + set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386") + else() + # + # With Intel support including x86-64 support. + # Build for 32-bit PowerPC, 64-bit PowerPC, 32-bit x86, + # and x86-64, with 32-bit PowerPC first. + # (I'm guessing that's what Apple does.) + # + set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386;x86_64") + endif() + elseif(SYSTEM_VERSION_MAJOR EQUAL 9) + # + # Leopard. Build for 32-bit PowerPC, 64-bit + # PowerPC, 32-bit x86, and x86-64, with 32-bit PowerPC + # first. (That's what Apple does.) + # + set(OSX_LIBRARY_ARCHITECTURES "ppc;ppc64;i386;x86_64") + elseif(SYSTEM_VERSION_MAJOR EQUAL 10) + # + # Snow Leopard. Build for x86-64, 32-bit x86, and + # 32-bit PowerPC, with x86-64 first. (That's + # what Apple does, even though Snow Leopard + # doesn't run on PPC, so PPC libpcap runs under + # Rosetta, and Rosetta doesn't support BPF + # ioctls, so PPC programs can't do live + # captures.) + # + set(OSX_LIBRARY_ARCHITECTURES "x86_64;i386;ppc") + else() + # + # Post-Snow Leopard. Build for x86-64 and 32-bit x86, + # with x86-64 first. (That's what Apple does) + # XXX - update if and when Apple drops support + # for 32-bit x86 code and if and when Apple adds + # ARM-based Macs. (You're on your own for iOS etc.) + # + # XXX - check whether we *can* build for i386 and, if not, + # suggest that the user install the /usr/include headers if + # they want to build fat. + # + cmake_push_check_state() + set(CMAKE_REQUIRED_FLAGS "-arch i386") + check_c_source_compiles( +"int +main(void) +{ + return 0; +} +" + X86_32_BIT_SUPPORTED) + cmake_pop_check_state() + if(X86_32_BIT_SUPPORTED) + set(OSX_LIBRARY_ARCHITECTURES "x86_64;i386") + else() + set(OSX_LIBRARY_ARCHITECTURES "x86_64") + if(SYSTEM_VERSION_MAJOR LESS 18) + # + # Pre-Mojave; the command-line tools should be sufficient to + # enable 32-bit x86 builds. + # + message(WARNING "Compiling for 32-bit x86 gives an error; try installing the command-line tools") + else() + message(WARNING "Compiling for 32-bit x86 gives an error; try installing the command-line tools and, after that, installing the /usr/include headers from the /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg package") + endif() + endif() + endif() + if(BUILD_SHARED_LIBS) + set_target_properties(${LIBRARY_NAME} PROPERTIES + OSX_ARCHITECTURES "${OSX_LIBRARY_ARCHITECTURES}") + endif(BUILD_SHARED_LIBS) + set_target_properties(${LIBRARY_NAME}_static PROPERTIES + OSX_ARCHITECTURES "${OSX_LIBRARY_ARCHITECTURES}") +endif() + ###################################### # Write out the config.h file ###################################### @@ -2079,6 +2247,7 @@ set(MAN3PCAP_EXPAND pcap_list_tstamp_types.3pcap.in pcap_open_dead.3pcap.in pcap_open_offline.3pcap.in + pcap_set_immediate_mode.3pcap.in pcap_set_tstamp_precision.3pcap.in pcap_set_tstamp_type.3pcap.in ) @@ -2114,9 +2283,8 @@ set(MAN3PCAP_NOEXPAND pcap_open_live.3pcap pcap_set_buffer_size.3pcap pcap_set_datalink.3pcap - pcap_set_immediate_mode.3pcap pcap_set_promisc.3pcap - pcap_set_protocol.3pcap + pcap_set_protocol_linux.3pcap pcap_set_rfmon.3pcap pcap_set_snaplen.3pcap pcap_set_timeout.3pcap @@ -2179,11 +2347,13 @@ if(WIN32) endif(NOT MINGW) endif(MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8) else(WIN32) - install(TARGETS ${LIBRARY_NAME} ${LIBRARY_NAME_STATIC} DESTINATION lib) + install(TARGETS ${LIBRARY_NAME} ${LIBRARY_NAME_STATIC} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) endif(WIN32) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pcap/ DESTINATION include/pcap) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap.h DESTINATION include) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap-bpf.h DESTINATION include) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap-namedb.h DESTINATION include) # On UN*X, and on Windows when not using MSVC, generate libpcap.pc and # pcap-config and process man pages and arrange that they be installed. @@ -2223,8 +2393,8 @@ if(NOT MSVC) foreach(LIB ${PCAP_LINK_LIBRARIES}) set(LIBS "${LIBS} -l${LIB}") endforeach(LIB) - configure_file(${CMAKE_SOURCE_DIR}/pcap-config.in ${CMAKE_CURRENT_BINARY_DIR}/pcap-config @ONLY) - configure_file(${CMAKE_SOURCE_DIR}/libpcap.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcap-config.in ${CMAKE_CURRENT_BINARY_DIR}/pcap-config @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpcap.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc @ONLY) install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pcap-config DESTINATION bin) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc DESTINATION lib/pkgconfig) @@ -2236,17 +2406,17 @@ if(NOT MSVC) # set(MAN1 "") foreach(MANPAGE ${MAN1_NOEXPAND}) - set(MAN1 ${MAN1} ${CMAKE_SOURCE_DIR}/${MANPAGE}) + set(MAN1 ${MAN1} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE}) endforeach(MANPAGE) install(FILES ${MAN1} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) set(MAN3PCAP "") foreach(MANPAGE ${MAN3PCAP_NOEXPAND}) - set(MAN3PCAP ${MAN3PCAP} ${CMAKE_SOURCE_DIR}/${MANPAGE}) + set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE}) endforeach(MANPAGE) foreach(TEMPLATE_MANPAGE ${MAN3PCAP_EXPAND}) string(REPLACE ".in" "" MANPAGE ${TEMPLATE_MANPAGE}) - configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) endforeach(TEMPLATE_MANPAGE) install(FILES ${MAN3PCAP} DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) @@ -2270,7 +2440,7 @@ if(NOT MSVC) set(MANFILE "") foreach(TEMPLATE_MANPAGE ${MANFILE_EXPAND}) string(REPLACE ".manfile.in" ".${MAN_FILE_FORMATS}" MANPAGE ${TEMPLATE_MANPAGE}) - configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) set(MANFILE ${MANFILE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) endforeach(TEMPLATE_MANPAGE) install(FILES ${MANFILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_FILE_FORMATS}) @@ -2278,7 +2448,7 @@ if(NOT MSVC) set(MANMISC "") foreach(TEMPLATE_MANPAGE ${MANMISC_EXPAND}) string(REPLACE ".manmisc.in" ".${MAN_MISC_INFO}" MANPAGE ${TEMPLATE_MANPAGE}) - configure_file(${CMAKE_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) set(MANMISC ${MANMISC} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) endforeach(TEMPLATE_MANPAGE) install(FILES ${MANMISC} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_MISC_INFO}) Added: vendor/libpcap/dist/CONTRIBUTING.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libpcap/dist/CONTRIBUTING.md Sun Oct 6 04:26:37 2019 (r353141) @@ -0,0 +1,29 @@ +Guidelines for contributing +=========================== + +To report a security issue (segfault, buffer overflow, infinite loop, arbitrary +code execution etc) please send an e-mail to security@tcpdump.org, do not use +the bug tracker! + +To report a non-security problem (failure to compile, failure to capture packets +properly, missing support for a network interface type or DLT) please check +first that it reproduces with the latest stable release of libpcap. If it does, +please check that the problem reproduces with the current git master branch of +libpcap. If it does (and it is not a security-related problem, otherwise see +above), please navigate to https://github.com/the-tcpdump-group/libpcap/issues +and check if the problem has already been reported. If it has not, please open +a new issue and provide the following details: + +* libpcap version (e.g. from tcpdump --version) +* operating system name and version and any other details that may be relevant + (uname -a, compiler name and version, CPU type etc.) +* configure flags if any were used +* statement of the problem +* steps to reproduce + +Please note that if you know exactly how to solve the problem and the solution +would not be too intrusive, it would be best to contribute some development time +and open a pull request instead. + +Still not sure how to do? Feel free to [subscribe](https://www.tcpdump.org/#mailing-lists) +to the mailing list tcpdump-workers@lists.tcpdump.org and ask! Modified: vendor/libpcap/dist/CREDITS ============================================================================== --- vendor/libpcap/dist/CREDITS Sun Oct 6 04:19:49 2019 (r353140) +++ vendor/libpcap/dist/CREDITS Sun Oct 6 04:26:37 2019 (r353141) @@ -1,21 +1,18 @@ -This file lists people who have contributed to libpcap: +This file lists people who have contributed to libpcap. -The current maintainers: - Bill Fenner +The current maintainers (in alphabetical order): Denis Ovsienko - Fulvio Risso + Francois-Xavier Le Bail Guy Harris - Hannes Gredler Michael Richardson - Francois-Xavier Le Bail -Additional people who have contributed patches: - +Additional people who have contributed patches (in alphabetical order): Akos Vandra Alan Bawden Albert Chin Alexander 'Leo' Bergolth Alexey Kuznetsov + Ali Abdulkadir Alon Bar-Lev Andres Perera Andrew Brown @@ -62,6 +59,7 @@ Additional people who have contributed patches: Gabor Tatarka Garrett Cooper George Neville-Neil + Gerard Garcia Gianluca Varenni Gilbert Hoyek Gisle Vanem @@ -99,6 +97,7 @@ Additional people who have contributed patches: Koryn Grant Kris Katterjohn Krzysztof Halasa + Lennert Buytenhek Lorenzo Cavallaro Loris Degioanni Love Hörnquist-Ã…strand @@ -114,6 +113,7 @@ Additional people who have contributed patches: Márton Németh Matthew Luckie Max Laier + Michal Kubecek Michal Labedzki Michal Sekletar Mike Frysinger @@ -129,7 +129,7 @@ Additional people who have contributed patches: Olaf Kirch Ollie Wild Onno van der Linden - Paolo Abeni + Paolo Abeni Patrick Marie Patrick McHardy Paul Mundt @@ -145,6 +145,8 @@ Additional people who have contributed patches: Rick Jones Robert Edmonds Roberto Mariani + Rongxi Li + Roland Dreier Romain Francoise Sagun Shakya Scott Barron @@ -167,6 +169,7 @@ Additional people who have contributed patches: Wesley Shields Xianjie Zhang Xin Li + Xue Jiang Qing Yen Yen Lim Yoann Vandoorselaere Yvan Vanhullebus @@ -176,5 +179,8 @@ The original LBL crew: Craig Leres Van Jacobson -Past maintainers: - Jun-ichiro itojun Hagino Also see: http://www.wide.ad.jp/itojun-award/ +Past maintainers (in alphabetical order): + Bill Fenner + Fulvio Risso + Hannes Gredler + Jun-ichiro itojun Hagino Also see: http://www.wide.ad.jp/itojun-award/ Added: vendor/libpcap/dist/INSTALL.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libpcap/dist/INSTALL.md Sun Oct 6 04:26:37 2019 (r353141) @@ -0,0 +1,352 @@ +To build libpcap, run "./configure" (a shell script). The configure +script will determine your system attributes and generate an +appropriate Makefile from Makefile.in. Next run "make". If everything +goes well you can su to root and run "make install". However, you need +not install libpcap if you just want to build tcpdump; just make sure +the tcpdump and libpcap directory trees have the same parent +directory. + +If configure says: + + configure: warning: cannot determine packet capture interface + configure: warning: (see INSTALL for more info) + +then your system either does not support packet capture or your system +does support packet capture but libpcap does not support that +particular type. (If you have HP-UX, see below.) If your system uses a +packet capture not supported by libpcap, please send us patches; don't +forget to include an autoconf fragment suitable for use in +configure.ac. + +It is possible to override the default packet capture type, although +the circumstance where this works are limited. For example if you have +installed bpf under SunOS 4 and wish to build a snit libpcap: + + ./configure --with-pcap=snit + +Another example is to force a supported packet capture type in the case +where the configure scripts fails to detect it. + +You will need an ANSI C compiler to build libpcap. The configure script +will abort if your compiler is not ANSI compliant. If this happens, use +the generally available GNU C compiler (GCC). + +You will need either Flex 2.5.31 or later, or a version of Lex +compatible with it (if any exist), to build libpcap. The configure +script will abort if there isn't any such program. If you have an older +version of Flex, or don't have a compatible version of Lex, the current +version of flex is available at flex.sourceforge.net. + +You will need either Bison, Berkeley YACC, or a version of YACC +compatible with them (if any exist), to build libpcap. The configure +script will abort if there isn't any such program. If you don't have +any such program, the current version of Bison can be found at +http://ftp.gnu.org/gnu/bison/ and the current version of Berkeley YACC +can be found at http://invisible-island.net/byacc/. + +Sometimes the stock C compiler does not interact well with Flex and +Bison. The list of problems includes undefined references for alloca. +You can get around this by installing GCC. + +If you use Solaris, there is a bug with bufmod(7) that is fixed in +Solaris 2.3.2 (aka SunOS 5.3.2). Setting a snapshot length with the +broken bufmod(7) results in data be truncated from the FRONT of the +packet instead of the end. The work around is to not set a snapshot +length but this results in performance problems since the entire packet +is copied to user space. If you must run an older version of Solaris, +there is a patch available from Sun; ask for bugid 1149065. After +installing the patch, use "setenv BUFMOD_FIXED" to enable use of +bufmod(7). However, we recommend you run a more current release of +Solaris. + +If you use the SPARCompiler, you must be careful to not use the +/usr/ucb/cc interface. If you do, you will get bogus warnings and +perhaps errors. Either make sure your path has /opt/SUNWspro/bin +before /usr/ucb or else: + + setenv CC /opt/SUNWspro/bin/cc + +before running configure. (You might have to do a "make distclean" +if you already ran configure once). + +If you are trying to do packet capture with a FORE ATM card, you may or +may not be able to. They usually only release their driver in object +code so unless their driver supports packet capture, there's not much +libpcap can do. + +If you get an error like: + + tcpdump: recv_ack: bind error 0x??? + +when using DLPI, look for the DL_ERROR_ACK error return values, usually +in /usr/include/sys/dlpi.h, and find the corresponding value. + +Under {DEC OSF/1, Digital UNIX, Tru64 UNIX}, packet capture must be +enabled before it can be used. For instructions on how to enable packet +filter support, see: + + ftp://ftp.digital.com/pub/Digital/dec-faq/Digital-UNIX + +Look for the "How do I configure the Berkeley Packet Filter and capture +tcpdump traces?" item. + +Once you enable packet filter support, your OSF system will support bpf *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Oct 6 04:27:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2DD2FFAE36; Sun, 6 Oct 2019 04:27:49 +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 46m9ZY05Szz4Z6k; Sun, 6 Oct 2019 04:27:49 +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 C16331FC2D; Sun, 6 Oct 2019 04:27:48 +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 x964Rmtn054001; Sun, 6 Oct 2019 04:27:48 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964RmFY054000; Sun, 6 Oct 2019 04:27:48 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910060427.x964RmFY054000@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sun, 6 Oct 2019 04:27:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353142 - vendor/libpcap/1.9.1 X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: vendor/libpcap/1.9.1 X-SVN-Commit-Revision: 353142 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:27:49 -0000 Author: philip Date: Sun Oct 6 04:27:48 2019 New Revision: 353142 URL: https://svnweb.freebsd.org/changeset/base/353142 Log: Tag libpcap 1.9.1. Added: vendor/libpcap/1.9.1/ - copied from r353141, vendor/libpcap/dist/ From owner-svn-src-all@freebsd.org Sun Oct 6 04:34:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50AE3FB187; Sun, 6 Oct 2019 04:34:13 +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 46m9jx26m3z4ZlR; Sun, 6 Oct 2019 04:34:13 +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 2B00A1FDEB; Sun, 6 Oct 2019 04:34:13 +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 x964YDcW060320; Sun, 6 Oct 2019 04:34:13 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964YChV060317; Sun, 6 Oct 2019 04:34:12 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910060434.x964YChV060317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sun, 6 Oct 2019 04:34:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353143 - in vendor/tcpdump/4.9.3: . lbl missing tests win32 win32/prj win32/src X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: in vendor/tcpdump/4.9.3: . lbl missing tests win32 win32/prj win32/src X-SVN-Commit-Revision: 353143 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:34:13 -0000 Author: philip Date: Sun Oct 6 04:34:12 2019 New Revision: 353143 URL: https://svnweb.freebsd.org/changeset/base/353143 Log: Import tcpdump 4.9.3 Added: vendor/tcpdump/4.9.3/ vendor/tcpdump/4.9.3/CHANGES vendor/tcpdump/4.9.3/CONTRIBUTING vendor/tcpdump/4.9.3/CREDITS vendor/tcpdump/4.9.3/INSTALL.txt (contents, props changed) vendor/tcpdump/4.9.3/LICENSE vendor/tcpdump/4.9.3/Makefile-devel-adds (contents, props changed) vendor/tcpdump/4.9.3/Makefile.in (contents, props changed) vendor/tcpdump/4.9.3/PLATFORMS vendor/tcpdump/4.9.3/README (contents, props changed) vendor/tcpdump/4.9.3/README.md vendor/tcpdump/4.9.3/Readme.Win32 vendor/tcpdump/4.9.3/VERSION vendor/tcpdump/4.9.3/aclocal.m4 vendor/tcpdump/4.9.3/addrtoname.c (contents, props changed) vendor/tcpdump/4.9.3/addrtoname.h (contents, props changed) vendor/tcpdump/4.9.3/addrtostr.c (contents, props changed) vendor/tcpdump/4.9.3/addrtostr.h (contents, props changed) vendor/tcpdump/4.9.3/af.c (contents, props changed) vendor/tcpdump/4.9.3/af.h (contents, props changed) vendor/tcpdump/4.9.3/ah.h (contents, props changed) vendor/tcpdump/4.9.3/appletalk.h (contents, props changed) vendor/tcpdump/4.9.3/ascii_strcasecmp.c (contents, props changed) vendor/tcpdump/4.9.3/ascii_strcasecmp.h (contents, props changed) vendor/tcpdump/4.9.3/atime.awk (contents, props changed) vendor/tcpdump/4.9.3/atm.h (contents, props changed) vendor/tcpdump/4.9.3/bpf_dump.c (contents, props changed) vendor/tcpdump/4.9.3/chdlc.h (contents, props changed) vendor/tcpdump/4.9.3/checksum.c (contents, props changed) vendor/tcpdump/4.9.3/config.guess (contents, props changed) vendor/tcpdump/4.9.3/config.h.in (contents, props changed) vendor/tcpdump/4.9.3/config.sub (contents, props changed) vendor/tcpdump/4.9.3/configure (contents, props changed) vendor/tcpdump/4.9.3/configure.ac vendor/tcpdump/4.9.3/cpack.c (contents, props changed) vendor/tcpdump/4.9.3/cpack.h (contents, props changed) vendor/tcpdump/4.9.3/ether.h (contents, props changed) vendor/tcpdump/4.9.3/ethertype.h (contents, props changed) vendor/tcpdump/4.9.3/extract.h (contents, props changed) vendor/tcpdump/4.9.3/funcattrs.h (contents, props changed) vendor/tcpdump/4.9.3/getopt_long.h (contents, props changed) vendor/tcpdump/4.9.3/gmpls.c (contents, props changed) vendor/tcpdump/4.9.3/gmpls.h (contents, props changed) vendor/tcpdump/4.9.3/gmt2local.c (contents, props changed) vendor/tcpdump/4.9.3/gmt2local.h (contents, props changed) vendor/tcpdump/4.9.3/in_cksum.c (contents, props changed) vendor/tcpdump/4.9.3/install-sh (contents, props changed) vendor/tcpdump/4.9.3/interface.h (contents, props changed) vendor/tcpdump/4.9.3/ip.h (contents, props changed) vendor/tcpdump/4.9.3/ip6.h (contents, props changed) vendor/tcpdump/4.9.3/ipproto.c (contents, props changed) vendor/tcpdump/4.9.3/ipproto.h (contents, props changed) vendor/tcpdump/4.9.3/l2vpn.c (contents, props changed) vendor/tcpdump/4.9.3/l2vpn.h (contents, props changed) vendor/tcpdump/4.9.3/lbl/ vendor/tcpdump/4.9.3/lbl/os-osf4.h (contents, props changed) vendor/tcpdump/4.9.3/lbl/os-solaris2.h (contents, props changed) vendor/tcpdump/4.9.3/lbl/os-sunos4.h (contents, props changed) vendor/tcpdump/4.9.3/lbl/os-ultrix4.h (contents, props changed) vendor/tcpdump/4.9.3/llc.h (contents, props changed) vendor/tcpdump/4.9.3/machdep.c (contents, props changed) vendor/tcpdump/4.9.3/machdep.h (contents, props changed) vendor/tcpdump/4.9.3/makemib (contents, props changed) vendor/tcpdump/4.9.3/mib.h (contents, props changed) vendor/tcpdump/4.9.3/missing/ vendor/tcpdump/4.9.3/missing/datalinks.c (contents, props changed) vendor/tcpdump/4.9.3/missing/dlnames.c (contents, props changed) vendor/tcpdump/4.9.3/missing/getopt_long.c (contents, props changed) vendor/tcpdump/4.9.3/missing/snprintf.c (contents, props changed) vendor/tcpdump/4.9.3/missing/strdup.c (contents, props changed) vendor/tcpdump/4.9.3/missing/strlcat.c (contents, props changed) vendor/tcpdump/4.9.3/missing/strlcpy.c (contents, props changed) vendor/tcpdump/4.9.3/missing/strsep.c (contents, props changed) vendor/tcpdump/4.9.3/mkdep (contents, props changed) vendor/tcpdump/4.9.3/mpls.h (contents, props changed) vendor/tcpdump/4.9.3/nameser.h (contents, props changed) vendor/tcpdump/4.9.3/netdissect-stdinc.h (contents, props changed) vendor/tcpdump/4.9.3/netdissect.c (contents, props changed) vendor/tcpdump/4.9.3/netdissect.h (contents, props changed) vendor/tcpdump/4.9.3/nfs.h (contents, props changed) vendor/tcpdump/4.9.3/nfsfh.h (contents, props changed) vendor/tcpdump/4.9.3/nlpid.c (contents, props changed) vendor/tcpdump/4.9.3/nlpid.h (contents, props changed) vendor/tcpdump/4.9.3/openflow.h (contents, props changed) vendor/tcpdump/4.9.3/ospf.h (contents, props changed) vendor/tcpdump/4.9.3/oui.c (contents, props changed) vendor/tcpdump/4.9.3/oui.h (contents, props changed) vendor/tcpdump/4.9.3/packetdat.awk (contents, props changed) vendor/tcpdump/4.9.3/parsenfsfh.c (contents, props changed) vendor/tcpdump/4.9.3/pcap-missing.h (contents, props changed) vendor/tcpdump/4.9.3/pcap_dump_ftell.c (contents, props changed) vendor/tcpdump/4.9.3/ppp.h (contents, props changed) vendor/tcpdump/4.9.3/print-802_11.c (contents, props changed) vendor/tcpdump/4.9.3/print-802_15_4.c (contents, props changed) vendor/tcpdump/4.9.3/print-ah.c (contents, props changed) vendor/tcpdump/4.9.3/print-ahcp.c (contents, props changed) vendor/tcpdump/4.9.3/print-aodv.c (contents, props changed) vendor/tcpdump/4.9.3/print-aoe.c (contents, props changed) vendor/tcpdump/4.9.3/print-ap1394.c (contents, props changed) vendor/tcpdump/4.9.3/print-arcnet.c (contents, props changed) vendor/tcpdump/4.9.3/print-arp.c (contents, props changed) vendor/tcpdump/4.9.3/print-ascii.c (contents, props changed) vendor/tcpdump/4.9.3/print-atalk.c (contents, props changed) vendor/tcpdump/4.9.3/print-atm.c (contents, props changed) vendor/tcpdump/4.9.3/print-babel.c (contents, props changed) vendor/tcpdump/4.9.3/print-beep.c (contents, props changed) vendor/tcpdump/4.9.3/print-bfd.c (contents, props changed) vendor/tcpdump/4.9.3/print-bgp.c (contents, props changed) vendor/tcpdump/4.9.3/print-bootp.c (contents, props changed) vendor/tcpdump/4.9.3/print-bt.c (contents, props changed) vendor/tcpdump/4.9.3/print-calm-fast.c (contents, props changed) vendor/tcpdump/4.9.3/print-carp.c (contents, props changed) vendor/tcpdump/4.9.3/print-cdp.c (contents, props changed) vendor/tcpdump/4.9.3/print-cfm.c (contents, props changed) vendor/tcpdump/4.9.3/print-chdlc.c (contents, props changed) vendor/tcpdump/4.9.3/print-cip.c (contents, props changed) vendor/tcpdump/4.9.3/print-cnfp.c (contents, props changed) vendor/tcpdump/4.9.3/print-dccp.c (contents, props changed) vendor/tcpdump/4.9.3/print-decnet.c (contents, props changed) vendor/tcpdump/4.9.3/print-dhcp6.c (contents, props changed) vendor/tcpdump/4.9.3/print-domain.c (contents, props changed) vendor/tcpdump/4.9.3/print-dtp.c (contents, props changed) vendor/tcpdump/4.9.3/print-dvmrp.c (contents, props changed) vendor/tcpdump/4.9.3/print-eap.c (contents, props changed) vendor/tcpdump/4.9.3/print-egp.c (contents, props changed) vendor/tcpdump/4.9.3/print-eigrp.c (contents, props changed) vendor/tcpdump/4.9.3/print-enc.c (contents, props changed) vendor/tcpdump/4.9.3/print-esp.c (contents, props changed) vendor/tcpdump/4.9.3/print-ether.c (contents, props changed) vendor/tcpdump/4.9.3/print-fddi.c (contents, props changed) vendor/tcpdump/4.9.3/print-forces.c (contents, props changed) vendor/tcpdump/4.9.3/print-fr.c (contents, props changed) vendor/tcpdump/4.9.3/print-frag6.c (contents, props changed) vendor/tcpdump/4.9.3/print-ftp.c (contents, props changed) vendor/tcpdump/4.9.3/print-geneve.c (contents, props changed) vendor/tcpdump/4.9.3/print-geonet.c (contents, props changed) vendor/tcpdump/4.9.3/print-gre.c (contents, props changed) vendor/tcpdump/4.9.3/print-hncp.c (contents, props changed) vendor/tcpdump/4.9.3/print-hsrp.c (contents, props changed) vendor/tcpdump/4.9.3/print-http.c (contents, props changed) vendor/tcpdump/4.9.3/print-icmp.c (contents, props changed) vendor/tcpdump/4.9.3/print-icmp6.c (contents, props changed) vendor/tcpdump/4.9.3/print-igmp.c (contents, props changed) vendor/tcpdump/4.9.3/print-igrp.c (contents, props changed) vendor/tcpdump/4.9.3/print-ip.c (contents, props changed) vendor/tcpdump/4.9.3/print-ip6.c (contents, props changed) vendor/tcpdump/4.9.3/print-ip6opts.c (contents, props changed) vendor/tcpdump/4.9.3/print-ipcomp.c (contents, props changed) vendor/tcpdump/4.9.3/print-ipfc.c (contents, props changed) vendor/tcpdump/4.9.3/print-ipnet.c (contents, props changed) vendor/tcpdump/4.9.3/print-ipx.c (contents, props changed) vendor/tcpdump/4.9.3/print-isakmp.c (contents, props changed) vendor/tcpdump/4.9.3/print-isoclns.c (contents, props changed) vendor/tcpdump/4.9.3/print-juniper.c (contents, props changed) vendor/tcpdump/4.9.3/print-krb.c (contents, props changed) vendor/tcpdump/4.9.3/print-l2tp.c (contents, props changed) vendor/tcpdump/4.9.3/print-lane.c (contents, props changed) vendor/tcpdump/4.9.3/print-ldp.c (contents, props changed) vendor/tcpdump/4.9.3/print-lisp.c (contents, props changed) vendor/tcpdump/4.9.3/print-llc.c (contents, props changed) vendor/tcpdump/4.9.3/print-lldp.c (contents, props changed) vendor/tcpdump/4.9.3/print-lmp.c (contents, props changed) vendor/tcpdump/4.9.3/print-loopback.c (contents, props changed) vendor/tcpdump/4.9.3/print-lspping.c (contents, props changed) vendor/tcpdump/4.9.3/print-lwapp.c (contents, props changed) vendor/tcpdump/4.9.3/print-lwres.c (contents, props changed) vendor/tcpdump/4.9.3/print-m3ua.c (contents, props changed) vendor/tcpdump/4.9.3/print-medsa.c (contents, props changed) vendor/tcpdump/4.9.3/print-mobile.c (contents, props changed) vendor/tcpdump/4.9.3/print-mobility.c (contents, props changed) vendor/tcpdump/4.9.3/print-mpcp.c (contents, props changed) vendor/tcpdump/4.9.3/print-mpls.c (contents, props changed) vendor/tcpdump/4.9.3/print-mptcp.c (contents, props changed) vendor/tcpdump/4.9.3/print-msdp.c (contents, props changed) vendor/tcpdump/4.9.3/print-msnlb.c (contents, props changed) vendor/tcpdump/4.9.3/print-nflog.c (contents, props changed) vendor/tcpdump/4.9.3/print-nfs.c (contents, props changed) vendor/tcpdump/4.9.3/print-nsh.c (contents, props changed) vendor/tcpdump/4.9.3/print-ntp.c (contents, props changed) vendor/tcpdump/4.9.3/print-null.c (contents, props changed) vendor/tcpdump/4.9.3/print-olsr.c (contents, props changed) vendor/tcpdump/4.9.3/print-openflow-1.0.c (contents, props changed) vendor/tcpdump/4.9.3/print-openflow.c (contents, props changed) vendor/tcpdump/4.9.3/print-ospf.c (contents, props changed) vendor/tcpdump/4.9.3/print-ospf6.c (contents, props changed) vendor/tcpdump/4.9.3/print-otv.c (contents, props changed) vendor/tcpdump/4.9.3/print-pflog.c (contents, props changed) vendor/tcpdump/4.9.3/print-pgm.c (contents, props changed) vendor/tcpdump/4.9.3/print-pim.c (contents, props changed) vendor/tcpdump/4.9.3/print-pktap.c (contents, props changed) vendor/tcpdump/4.9.3/print-ppi.c (contents, props changed) vendor/tcpdump/4.9.3/print-ppp.c (contents, props changed) vendor/tcpdump/4.9.3/print-pppoe.c (contents, props changed) vendor/tcpdump/4.9.3/print-pptp.c (contents, props changed) vendor/tcpdump/4.9.3/print-radius.c (contents, props changed) vendor/tcpdump/4.9.3/print-raw.c (contents, props changed) vendor/tcpdump/4.9.3/print-resp.c (contents, props changed) vendor/tcpdump/4.9.3/print-rip.c (contents, props changed) vendor/tcpdump/4.9.3/print-ripng.c (contents, props changed) vendor/tcpdump/4.9.3/print-rpki-rtr.c (contents, props changed) vendor/tcpdump/4.9.3/print-rrcp.c (contents, props changed) vendor/tcpdump/4.9.3/print-rsvp.c (contents, props changed) vendor/tcpdump/4.9.3/print-rt6.c (contents, props changed) vendor/tcpdump/4.9.3/print-rtsp.c (contents, props changed) vendor/tcpdump/4.9.3/print-rx.c (contents, props changed) vendor/tcpdump/4.9.3/print-sctp.c (contents, props changed) vendor/tcpdump/4.9.3/print-sflow.c (contents, props changed) vendor/tcpdump/4.9.3/print-sip.c (contents, props changed) vendor/tcpdump/4.9.3/print-sl.c (contents, props changed) vendor/tcpdump/4.9.3/print-sll.c (contents, props changed) vendor/tcpdump/4.9.3/print-slow.c (contents, props changed) vendor/tcpdump/4.9.3/print-smb.c (contents, props changed) vendor/tcpdump/4.9.3/print-smtp.c (contents, props changed) vendor/tcpdump/4.9.3/print-snmp.c (contents, props changed) vendor/tcpdump/4.9.3/print-stp.c (contents, props changed) vendor/tcpdump/4.9.3/print-sunatm.c (contents, props changed) vendor/tcpdump/4.9.3/print-sunrpc.c (contents, props changed) vendor/tcpdump/4.9.3/print-symantec.c (contents, props changed) vendor/tcpdump/4.9.3/print-syslog.c (contents, props changed) vendor/tcpdump/4.9.3/print-tcp.c (contents, props changed) vendor/tcpdump/4.9.3/print-telnet.c (contents, props changed) vendor/tcpdump/4.9.3/print-tftp.c (contents, props changed) vendor/tcpdump/4.9.3/print-timed.c (contents, props changed) vendor/tcpdump/4.9.3/print-tipc.c (contents, props changed) vendor/tcpdump/4.9.3/print-token.c (contents, props changed) vendor/tcpdump/4.9.3/print-udld.c (contents, props changed) vendor/tcpdump/4.9.3/print-udp.c (contents, props changed) vendor/tcpdump/4.9.3/print-usb.c (contents, props changed) vendor/tcpdump/4.9.3/print-vjc.c (contents, props changed) vendor/tcpdump/4.9.3/print-vqp.c (contents, props changed) vendor/tcpdump/4.9.3/print-vrrp.c (contents, props changed) vendor/tcpdump/4.9.3/print-vtp.c (contents, props changed) vendor/tcpdump/4.9.3/print-vxlan-gpe.c (contents, props changed) vendor/tcpdump/4.9.3/print-vxlan.c (contents, props changed) vendor/tcpdump/4.9.3/print-wb.c (contents, props changed) vendor/tcpdump/4.9.3/print-zephyr.c (contents, props changed) vendor/tcpdump/4.9.3/print-zeromq.c (contents, props changed) vendor/tcpdump/4.9.3/print.c (contents, props changed) vendor/tcpdump/4.9.3/print.h (contents, props changed) vendor/tcpdump/4.9.3/rpc_auth.h (contents, props changed) vendor/tcpdump/4.9.3/rpc_msg.h (contents, props changed) vendor/tcpdump/4.9.3/rpl.h (contents, props changed) vendor/tcpdump/4.9.3/send-ack.awk (contents, props changed) vendor/tcpdump/4.9.3/setsignal.c (contents, props changed) vendor/tcpdump/4.9.3/setsignal.h (contents, props changed) vendor/tcpdump/4.9.3/signature.c (contents, props changed) vendor/tcpdump/4.9.3/signature.h (contents, props changed) vendor/tcpdump/4.9.3/slcompress.h (contents, props changed) vendor/tcpdump/4.9.3/smb.h (contents, props changed) vendor/tcpdump/4.9.3/smbutil.c (contents, props changed) vendor/tcpdump/4.9.3/stime.awk (contents, props changed) vendor/tcpdump/4.9.3/strtoaddr.c (contents, props changed) vendor/tcpdump/4.9.3/strtoaddr.h (contents, props changed) vendor/tcpdump/4.9.3/tcp.h (contents, props changed) vendor/tcpdump/4.9.3/tcpdump.1.in (contents, props changed) vendor/tcpdump/4.9.3/tcpdump.c (contents, props changed) vendor/tcpdump/4.9.3/tests/ vendor/tcpdump/4.9.3/tests/02-sunrise-sunset-esp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/08-sunrise-sunset-aes.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/08-sunrise-sunset-esp2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/3560_CDP.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802.1D_spanning_tree.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802.1w_rapid_STP.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802_15_4-data.out vendor/tcpdump/4.9.3/tests/802_15_4-data.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802_15_4-oobr-1.out vendor/tcpdump/4.9.3/tests/802_15_4-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802_15_4-oobr-2.out vendor/tcpdump/4.9.3/tests/802_15_4-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/802_15_4_beacon.out vendor/tcpdump/4.9.3/tests/802_15_4_beacon.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/AoE_Linux.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/DECnet_Phone.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/DTP.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/EIGRP_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/EIGRP_goodbye.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/EIGRP_subnet_down.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/EIGRP_subnet_up.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/HDLC.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/HSRP_coup.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/HSRP_election.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/HSRP_failover.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/IGMP_V1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/IGMP_V2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ISAKMP_sa_setup.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ISIS_external_lsp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ISIS_level1_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ISIS_level2_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ISIS_p2p_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/LACP.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/LLDP_and_CDP.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/MSTP_Intra-Region_BPDUs.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/OLSRv1_HNA_sgw_1.out vendor/tcpdump/4.9.3/tests/OLSRv1_HNA_sgw_1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/OSPFv3_NBMA_adjacencies.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/OSPFv3_broadcast_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/OSPFv3_multipoint_adjacencies.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/OSPFv3_with_AH.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/PIM-DM_pruning.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/PIM-SM_join_prune.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/PIM_register_register-stop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/PIMv2_bootstrap.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/PIMv2_hellos.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/QinQpacket.out vendor/tcpdump/4.9.3/tests/QinQpacket.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/QinQpacketv.out vendor/tcpdump/4.9.3/tests/RADIUS-RFC4675.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/RADIUS-RFC5176.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/RADIUS-port1700.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/RADIUS.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/SMBLIST vendor/tcpdump/4.9.3/tests/TESTLIST vendor/tcpdump/4.9.3/tests/TESTonce (contents, props changed) vendor/tcpdump/4.9.3/tests/TESTrun.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/UDLD.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/aarp-heapoverflow-1.out vendor/tcpdump/4.9.3/tests/aarp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/aarp-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/aarp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ahcp-vv.out vendor/tcpdump/4.9.3/tests/ahcp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/aoe-oobr-1.out vendor/tcpdump/4.9.3/tests/aoe-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/aoe_1-v.out vendor/tcpdump/4.9.3/tests/aoe_1.out vendor/tcpdump/4.9.3/tests/arp-oobr.out vendor/tcpdump/4.9.3/tests/arp-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/arp-too-long-tha.out vendor/tcpdump/4.9.3/tests/arp-too-long-tha.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/atm-heapoverflow.out vendor/tcpdump/4.9.3/tests/atm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/atm-oam-heapoverflow.out vendor/tcpdump/4.9.3/tests/atm-oam-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/babel.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/babel1.out vendor/tcpdump/4.9.3/tests/babel1v.out vendor/tcpdump/4.9.3/tests/babel_auth.out vendor/tcpdump/4.9.3/tests/babel_auth.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/babel_pad1.out vendor/tcpdump/4.9.3/tests/babel_pad1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/babel_rtt.out vendor/tcpdump/4.9.3/tests/babel_rtt.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/babel_update_oobr.out vendor/tcpdump/4.9.3/tests/babel_update_oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bad-ipv4-version-pgm-heapoverflow.out vendor/tcpdump/4.9.3/tests/bad-ipv4-version-pgm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/beep-oobr.out vendor/tcpdump/4.9.3/tests/beep-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bfd-raw-auth-md5-v.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-md5.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-md5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bfd-raw-auth-sha1-v.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-sha1.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-sha1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bfd-raw-auth-simple-v.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-simple.out vendor/tcpdump/4.9.3/tests/bfd-raw-auth-simple.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-aigp-oobr-nossl.out vendor/tcpdump/4.9.3/tests/bgp-aigp-oobr-ssl.out vendor/tcpdump/4.9.3/tests/bgp-aigp-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-aigp.out vendor/tcpdump/4.9.3/tests/bgp-aigp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-as-path-oobr-nossl.out vendor/tcpdump/4.9.3/tests/bgp-as-path-oobr-ssl.out vendor/tcpdump/4.9.3/tests/bgp-as-path-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-bgp_capabilities_print-oobr-1.out vendor/tcpdump/4.9.3/tests/bgp-bgp_capabilities_print-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-bgp_capabilities_print-oobr-2.out vendor/tcpdump/4.9.3/tests/bgp-bgp_capabilities_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp-large-community.out vendor/tcpdump/4.9.3/tests/bgp-large-community.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp_infloop-v.out vendor/tcpdump/4.9.3/tests/bgp_mp_reach_nlri-oobr.out vendor/tcpdump/4.9.3/tests/bgp_mp_reach_nlri-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp_mvpn_6_and_7.out vendor/tcpdump/4.9.3/tests/bgp_mvpn_6_and_7.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp_pmsi_tunnel-oobr.out vendor/tcpdump/4.9.3/tests/bgp_pmsi_tunnel-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp_vpn_attrset.out vendor/tcpdump/4.9.3/tests/bgp_vpn_attrset.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bgp_vpn_rt-oobr.out vendor/tcpdump/4.9.3/tests/bgp_vpn_rt-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bootp_asan-2.out vendor/tcpdump/4.9.3/tests/bootp_asan-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/bootp_asan.out vendor/tcpdump/4.9.3/tests/bootp_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/calm-fast-mac-lookup-heapoverflow.out vendor/tcpdump/4.9.3/tests/calm-fast-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cdp-v.out vendor/tcpdump/4.9.3/tests/cfm_sender_id-oobr.out vendor/tcpdump/4.9.3/tests/cfm_sender_id-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/chdlc-slarp-short.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/chdlc-slarp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/crypto.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2014-8767-OLSR.out vendor/tcpdump/4.9.3/tests/cve-2014-8767-OLSR.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2014-8768-Geonet.out vendor/tcpdump/4.9.3/tests/cve-2014-8768-Geonet.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2014-8769-AODV.out vendor/tcpdump/4.9.3/tests/cve-2014-8769-AODV.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2018-10105-segv-sflowprint.out vendor/tcpdump/4.9.3/tests/cve-2018-10105-segv-sflowprint.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2018-10105_smbprint-readofsize1.out vendor/tcpdump/4.9.3/tests/cve-2018-10105_smbprint-readofsize1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve-2018-10105_smbutil_withoutasan.out vendor/tcpdump/4.9.3/tests/cve-2018-10105_smbutil_withoutasan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve2015-0261-crash.out vendor/tcpdump/4.9.3/tests/cve2015-0261-crash.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/cve2015-0261-ipv6.out vendor/tcpdump/4.9.3/tests/cve2015-0261-ipv6.out.stderr vendor/tcpdump/4.9.3/tests/cve2015-0261-ipv6.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dcb_ets.out vendor/tcpdump/4.9.3/tests/dcb_ets.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dcb_pfc.out vendor/tcpdump/4.9.3/tests/dcb_pfc.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dcb_qcn.out vendor/tcpdump/4.9.3/tests/dcb_qcn.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dccp_options-oobr.out vendor/tcpdump/4.9.3/tests/dccp_options-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v4_longer.out vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v4_longer.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v4_simple.out vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v4_simple.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v6_longer.out vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v6_longer.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v6_simple.out vendor/tcpdump/4.9.3/tests/dccp_partial_csum_v6_simple.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/decnet-oobr.out vendor/tcpdump/4.9.3/tests/decnet-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/decnet-shorthdr-oobr.out vendor/tcpdump/4.9.3/tests/decnet-shorthdr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/decnet.out vendor/tcpdump/4.9.3/tests/dhcp-mud.out vendor/tcpdump/4.9.3/tests/dhcp-mud.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcp-rfc3004-v.out vendor/tcpdump/4.9.3/tests/dhcp-rfc3004.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcp-rfc5859-v.out vendor/tcpdump/4.9.3/tests/dhcp-rfc5859.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcp6_reconf_asan.out vendor/tcpdump/4.9.3/tests/dhcp6_reconf_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-AFTR-Name-RFC6334.out vendor/tcpdump/4.9.3/tests/dhcpv6-AFTR-Name-RFC6334.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-domain-list.out vendor/tcpdump/4.9.3/tests/dhcpv6-domain-list.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-ia-na.out vendor/tcpdump/4.9.3/tests/dhcpv6-ia-na.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-ia-pd.out vendor/tcpdump/4.9.3/tests/dhcpv6-ia-pd.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-ia-ta.out vendor/tcpdump/4.9.3/tests/dhcpv6-ia-ta.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-mud.out vendor/tcpdump/4.9.3/tests/dhcpv6-mud.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-ntp-server.out vendor/tcpdump/4.9.3/tests/dhcpv6-ntp-server.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dhcpv6-sip-server-d.out vendor/tcpdump/4.9.3/tests/dhcpv6-sip-server-d.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dns-zlip-1.out vendor/tcpdump/4.9.3/tests/dns-zlip-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dns-zlip-2.out vendor/tcpdump/4.9.3/tests/dns-zlip-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dns-zlip-3.out vendor/tcpdump/4.9.3/tests/dns-zlip-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dns_fwdptr.out vendor/tcpdump/4.9.3/tests/dns_fwdptr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dnssec-vv.out vendor/tcpdump/4.9.3/tests/dnssec.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/dtp-v.out vendor/tcpdump/4.9.3/tests/dvmrp.out vendor/tcpdump/4.9.3/tests/e1000g.out vendor/tcpdump/4.9.3/tests/e1000g.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/eap_extract_read2_asan.out vendor/tcpdump/4.9.3/tests/eap_extract_read2_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/eapon1.gdbinit vendor/tcpdump/4.9.3/tests/eapon1.out vendor/tcpdump/4.9.3/tests/eapon1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/eapon2.out vendor/tcpdump/4.9.3/tests/eapon2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/eigrp-tlv-oobr.out vendor/tcpdump/4.9.3/tests/eigrp-tlv-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/eigrp1-v.out vendor/tcpdump/4.9.3/tests/eigrp2-v.out vendor/tcpdump/4.9.3/tests/eigrp3-v.out vendor/tcpdump/4.9.3/tests/eigrp4-v.out vendor/tcpdump/4.9.3/tests/epgm_zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/epgm_zmtp1v.out vendor/tcpdump/4.9.3/tests/epgmv.out vendor/tcpdump/4.9.3/tests/esis_opt_prot-oobr.out vendor/tcpdump/4.9.3/tests/esis_opt_prot-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esis_snpa_asan-2.out vendor/tcpdump/4.9.3/tests/esis_snpa_asan-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esis_snpa_asan-3.out vendor/tcpdump/4.9.3/tests/esis_snpa_asan-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esis_snpa_asan-4.out vendor/tcpdump/4.9.3/tests/esis_snpa_asan-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esis_snpa_asan-5.out vendor/tcpdump/4.9.3/tests/esis_snpa_asan-5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esis_snpa_asan.out vendor/tcpdump/4.9.3/tests/esis_snpa_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/esp-secrets.txt (contents, props changed) vendor/tcpdump/4.9.3/tests/esp0.out vendor/tcpdump/4.9.3/tests/esp1.gdbinit vendor/tcpdump/4.9.3/tests/esp1.out vendor/tcpdump/4.9.3/tests/esp2.gdbinit vendor/tcpdump/4.9.3/tests/esp2.out vendor/tcpdump/4.9.3/tests/esp3.gdbinit vendor/tcpdump/4.9.3/tests/esp4.gdbinit vendor/tcpdump/4.9.3/tests/esp4.out vendor/tcpdump/4.9.3/tests/esp5.gdbinit vendor/tcpdump/4.9.3/tests/esp5.out vendor/tcpdump/4.9.3/tests/espudp1.out vendor/tcpdump/4.9.3/tests/espudp1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/evb.out vendor/tcpdump/4.9.3/tests/evb.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/extract_read2_asan.out vendor/tcpdump/4.9.3/tests/extract_read2_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/forces1.out vendor/tcpdump/4.9.3/tests/forces1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/forces1vvv.out vendor/tcpdump/4.9.3/tests/forces1vvvv.out vendor/tcpdump/4.9.3/tests/forces2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/forces2v.out vendor/tcpdump/4.9.3/tests/forces2vv.out vendor/tcpdump/4.9.3/tests/forces2vvv.out vendor/tcpdump/4.9.3/tests/forces3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/forces3vvv.out vendor/tcpdump/4.9.3/tests/frf15-heapoverflow.out vendor/tcpdump/4.9.3/tests/frf15-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/frf16_magic_ie-oobr.out vendor/tcpdump/4.9.3/tests/frf16_magic_ie-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/geneve-tcp.out vendor/tcpdump/4.9.3/tests/geneve-vni.out vendor/tcpdump/4.9.3/tests/geneve-vv.out vendor/tcpdump/4.9.3/tests/geneve.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/geonet-mac-lookup-heapoverflow.out vendor/tcpdump/4.9.3/tests/geonet-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/geonet_and_calm_fast.out vendor/tcpdump/4.9.3/tests/geonet_and_calm_fast.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/getname_2_read4_asan.out vendor/tcpdump/4.9.3/tests/getname_2_read4_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/gre-heapoverflow-1.out vendor/tcpdump/4.9.3/tests/gre-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/gre-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/gre-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hdlc1.out vendor/tcpdump/4.9.3/tests/hdlc2.out vendor/tcpdump/4.9.3/tests/hdlc3.out vendor/tcpdump/4.9.3/tests/hdlc4.out vendor/tcpdump/4.9.3/tests/hdlc_slarp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heap-overflow-1.out vendor/tcpdump/4.9.3/tests/heap-overflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heap-overflow-2.out vendor/tcpdump/4.9.3/tests/heap-overflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-EXTRACT_16BITS.out vendor/tcpdump/4.9.3/tests/heapoverflow-EXTRACT_16BITS.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-atalk_print.out vendor/tcpdump/4.9.3/tests/heapoverflow-atalk_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-in_checksum.out vendor/tcpdump/4.9.3/tests/heapoverflow-in_checksum.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-ip_print_demux.out vendor/tcpdump/4.9.3/tests/heapoverflow-ip_print_demux.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-ppp_hdlc_if_print.out vendor/tcpdump/4.9.3/tests/heapoverflow-ppp_hdlc_if_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-q933_printq.out vendor/tcpdump/4.9.3/tests/heapoverflow-q933_printq.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-sl_if_print.out vendor/tcpdump/4.9.3/tests/heapoverflow-sl_if_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/heapoverflow-tcp_print.out vendor/tcpdump/4.9.3/tests/heapoverflow-tcp_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hncp.out vendor/tcpdump/4.9.3/tests/hncp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hncp_dhcpv4data-oobr.out vendor/tcpdump/4.9.3/tests/hncp_dhcpv4data-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hncp_dhcpv6data-oobr.out vendor/tcpdump/4.9.3/tests/hncp_dhcpv6data-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hncp_prefix-oobr.out vendor/tcpdump/4.9.3/tests/hncp_prefix-oobr.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_aodv_extension.out vendor/tcpdump/4.9.3/tests/hoobr_aodv_extension.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_chdlc_print.out vendor/tcpdump/4.9.3/tests/hoobr_chdlc_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_juniper.out vendor/tcpdump/4.9.3/tests/hoobr_juniper.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_juniper2.out vendor/tcpdump/4.9.3/tests/hoobr_juniper2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_juniper3.out vendor/tcpdump/4.9.3/tests/hoobr_juniper3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_juniper4.out vendor/tcpdump/4.9.3/tests/hoobr_juniper4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_lookup_nsap.out vendor/tcpdump/4.9.3/tests/hoobr_lookup_nsap.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_nfs_printfh.out vendor/tcpdump/4.9.3/tests/hoobr_nfs_printfh.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_nfs_xid_map_enter.out vendor/tcpdump/4.9.3/tests/hoobr_nfs_xid_map_enter.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_parse_field.out vendor/tcpdump/4.9.3/tests/hoobr_parse_field.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_pimv1.out vendor/tcpdump/4.9.3/tests/hoobr_pimv1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_ripng_print.out vendor/tcpdump/4.9.3/tests/hoobr_ripng_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_rt6_print.out vendor/tcpdump/4.9.3/tests/hoobr_rt6_print.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hoobr_safeputs.out vendor/tcpdump/4.9.3/tests/hoobr_safeputs.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/hsrp_1-v.out vendor/tcpdump/4.9.3/tests/hsrp_1.out vendor/tcpdump/4.9.3/tests/hsrp_2-v.out vendor/tcpdump/4.9.3/tests/hsrp_3-v.out vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-1.out vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-2.out vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-3.out vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-4.out vendor/tcpdump/4.9.3/tests/icmp-cksum-oobr-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp-icmp_print-oobr-1.out vendor/tcpdump/4.9.3/tests/icmp-icmp_print-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp-icmp_print-oobr-2.out vendor/tcpdump/4.9.3/tests/icmp-icmp_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp6_mobileprefix_asan.out vendor/tcpdump/4.9.3/tests/icmp6_mobileprefix_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmp6_nodeinfo_oobr.out vendor/tcpdump/4.9.3/tests/icmp6_nodeinfo_oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmpv6.out vendor/tcpdump/4.9.3/tests/icmpv6.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/icmpv6_opt24-v.out vendor/tcpdump/4.9.3/tests/icmpv6_opt24.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ieee802.11_exthdr.out vendor/tcpdump/4.9.3/tests/ieee802.11_exthdr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ieee802.11_meshhdr-oobr.out vendor/tcpdump/4.9.3/tests/ieee802.11_meshhdr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ieee802.11_rates_oobr.out vendor/tcpdump/4.9.3/tests/ieee802.11_rates_oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ieee802.11_rx-stbc.out vendor/tcpdump/4.9.3/tests/ieee802.11_rx-stbc.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ieee802.11_tim_ie_oobr.out vendor/tcpdump/4.9.3/tests/ieee802.11_tim_ie_oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/igmpv1.out vendor/tcpdump/4.9.3/tests/igmpv2.out vendor/tcpdump/4.9.3/tests/igmpv3-queries.out vendor/tcpdump/4.9.3/tests/igmpv3-queries.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ikev1_id_ipv6_addr_subnet-oobr.out vendor/tcpdump/4.9.3/tests/ikev1_id_ipv6_addr_subnet-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ikev2four.out vendor/tcpdump/4.9.3/tests/ikev2four.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ikev2fourv.out vendor/tcpdump/4.9.3/tests/ikev2fourv4.out vendor/tcpdump/4.9.3/tests/ikev2pI2-secrets.txt (contents, props changed) vendor/tcpdump/4.9.3/tests/ikev2pI2-segfault-v.out vendor/tcpdump/4.9.3/tests/ikev2pI2-segfault.out vendor/tcpdump/4.9.3/tests/ikev2pI2-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ikev2pI2.out vendor/tcpdump/4.9.3/tests/ikev2pI2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ip6_frag_asan.out vendor/tcpdump/4.9.3/tests/ip6_frag_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ip_printroute_asan.out vendor/tcpdump/4.9.3/tests/ip_printroute_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ip_ts_opts_asan.out vendor/tcpdump/4.9.3/tests/ip_ts_opts_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipcomp-heapoverflow.out vendor/tcpdump/4.9.3/tests/ipcomp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-bad-version.out vendor/tcpdump/4.9.3/tests/ipv6-bad-version.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-mobility-header-oobr.out vendor/tcpdump/4.9.3/tests/ipv6-mobility-header-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-next-header-oobr-1.out vendor/tcpdump/4.9.3/tests/ipv6-next-header-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-next-header-oobr-2.out vendor/tcpdump/4.9.3/tests/ipv6-next-header-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-routing-header.out vendor/tcpdump/4.9.3/tests/ipv6-routing-header.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6-rthdr-oobr.out vendor/tcpdump/4.9.3/tests/ipv6-rthdr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ipv6hdr-heapoverflow-v.out vendor/tcpdump/4.9.3/tests/ipv6hdr-heapoverflow.out vendor/tcpdump/4.9.3/tests/ipv6hdr-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-3948-oobr-2.out vendor/tcpdump/4.9.3/tests/isakmp-3948-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-delete-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-identification-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-ikev1_n_print-oobr.out vendor/tcpdump/4.9.3/tests/isakmp-ikev1_n_print-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-no-none-np.out vendor/tcpdump/4.9.3/tests/isakmp-no-none-np.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-pointer-loop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-rfc3948-oobr.out vendor/tcpdump/4.9.3/tests/isakmp-rfc3948-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp-various-oobr.out vendor/tcpdump/4.9.3/tests/isakmp-various-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp1.out vendor/tcpdump/4.9.3/tests/isakmp2.out vendor/tcpdump/4.9.3/tests/isakmp3.out vendor/tcpdump/4.9.3/tests/isakmp4.out vendor/tcpdump/4.9.3/tests/isakmp4500.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isakmp5-v.out vendor/tcpdump/4.9.3/tests/isakmpv1-attr-oobr.out vendor/tcpdump/4.9.3/tests/isakmpv1-attr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-areaaddr-oobr-1.out vendor/tcpdump/4.9.3/tests/isis-areaaddr-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-areaaddr-oobr-2.out vendor/tcpdump/4.9.3/tests/isis-areaaddr-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-extd-ipreach-oobr.out vendor/tcpdump/4.9.3/tests/isis-extd-ipreach-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-extd-isreach-oobr.out vendor/tcpdump/4.9.3/tests/isis-extd-isreach-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-seg-fault-1-v.out vendor/tcpdump/4.9.3/tests/isis-seg-fault-1-v.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-seg-fault-2-v.out vendor/tcpdump/4.9.3/tests/isis-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis-seg-fault-3-v.out vendor/tcpdump/4.9.3/tests/isis-seg-fault-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_1-v.out vendor/tcpdump/4.9.3/tests/isis_1.out vendor/tcpdump/4.9.3/tests/isis_2-v.out vendor/tcpdump/4.9.3/tests/isis_3-v.out vendor/tcpdump/4.9.3/tests/isis_4-v.out vendor/tcpdump/4.9.3/tests/isis_infloop-v.out vendor/tcpdump/4.9.3/tests/isis_poi.out vendor/tcpdump/4.9.3/tests/isis_poi.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_poi2.out vendor/tcpdump/4.9.3/tests/isis_poi2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_stlv_asan-2.out vendor/tcpdump/4.9.3/tests/isis_stlv_asan-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_stlv_asan-3.out vendor/tcpdump/4.9.3/tests/isis_stlv_asan-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_stlv_asan-4.out vendor/tcpdump/4.9.3/tests/isis_stlv_asan-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_stlv_asan.out vendor/tcpdump/4.9.3/tests/isis_stlv_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isis_sysid_asan.out vendor/tcpdump/4.9.3/tests/isis_sysid_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow-3.out vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow.out vendor/tcpdump/4.9.3/tests/isoclns-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isoclns-oobr.out vendor/tcpdump/4.9.3/tests/isoclns-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isup.out vendor/tcpdump/4.9.3/tests/isup.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/isupvv.out vendor/tcpdump/4.9.3/tests/juniper_atm1.out vendor/tcpdump/4.9.3/tests/juniper_atm1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/juniper_es.out vendor/tcpdump/4.9.3/tests/juniper_es.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/juniper_header-heapoverflow.out vendor/tcpdump/4.9.3/tests/juniper_header-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday1.out vendor/tcpdump/4.9.3/tests/kday1.out.stderr vendor/tcpdump/4.9.3/tests/kday1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday2.out vendor/tcpdump/4.9.3/tests/kday2.out.stderr vendor/tcpdump/4.9.3/tests/kday2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday3.out vendor/tcpdump/4.9.3/tests/kday3.out.stderr vendor/tcpdump/4.9.3/tests/kday3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday4.out vendor/tcpdump/4.9.3/tests/kday4.out.stderr vendor/tcpdump/4.9.3/tests/kday4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday5.out vendor/tcpdump/4.9.3/tests/kday5.out.stderr vendor/tcpdump/4.9.3/tests/kday5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday6.out vendor/tcpdump/4.9.3/tests/kday6.out.stderr vendor/tcpdump/4.9.3/tests/kday6.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday7.out vendor/tcpdump/4.9.3/tests/kday7.out.stderr vendor/tcpdump/4.9.3/tests/kday7.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kday8.out vendor/tcpdump/4.9.3/tests/kday8.out.stderr vendor/tcpdump/4.9.3/tests/kday8.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-001.out vendor/tcpdump/4.9.3/tests/kh-addrfail-001.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-001.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-002.out vendor/tcpdump/4.9.3/tests/kh-addrfail-002.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-002.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-003.out vendor/tcpdump/4.9.3/tests/kh-addrfail-003.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-003.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-004.out vendor/tcpdump/4.9.3/tests/kh-addrfail-004.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-004.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-005.out vendor/tcpdump/4.9.3/tests/kh-addrfail-005.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-005.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-006.out vendor/tcpdump/4.9.3/tests/kh-addrfail-006.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-006.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-007.out vendor/tcpdump/4.9.3/tests/kh-addrfail-007.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-007.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-008.out vendor/tcpdump/4.9.3/tests/kh-addrfail-008.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-008.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-009.out vendor/tcpdump/4.9.3/tests/kh-addrfail-009.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-009.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-010.out vendor/tcpdump/4.9.3/tests/kh-addrfail-010.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-010.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-addrfail-011.out vendor/tcpdump/4.9.3/tests/kh-addrfail-011.out.stderr vendor/tcpdump/4.9.3/tests/kh-addrfail-011.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-tcpdump-001.out vendor/tcpdump/4.9.3/tests/kh-tcpdump-001.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-tcpdump-002.out vendor/tcpdump/4.9.3/tests/kh-tcpdump-002.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/kh-tcpdump-004.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/l2tp-avp-overflow.out vendor/tcpdump/4.9.3/tests/l2tp-avp-overflow.out.stderr vendor/tcpdump/4.9.3/tests/l2tp-avp-overflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lacp-ev.out vendor/tcpdump/4.9.3/tests/ldp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ldp-ldp_tlv_print-oobr.out vendor/tcpdump/4.9.3/tests/ldp-ldp_tlv_print-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ldp_infloop.out vendor/tcpdump/4.9.3/tests/lisp_eid_notify.out vendor/tcpdump/4.9.3/tests/lisp_eid_notify.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lisp_eid_register.out vendor/tcpdump/4.9.3/tests/lisp_eid_register.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lisp_ipv6.out vendor/tcpdump/4.9.3/tests/lisp_ipv6.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/llc-xid-heapoverflow.out vendor/tcpdump/4.9.3/tests/llc-xid-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp-infinite-loop-1.out vendor/tcpdump/4.9.3/tests/lldp-infinite-loop-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp-infinite-loop-2.out vendor/tcpdump/4.9.3/tests/lldp-infinite-loop-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp_8023_mtu-oobr.out vendor/tcpdump/4.9.3/tests/lldp_8023_mtu-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp_asan.out vendor/tcpdump/4.9.3/tests/lldp_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp_cdp-ev.out vendor/tcpdump/4.9.3/tests/lldp_mgmt_addr_tlv_asan.out vendor/tcpdump/4.9.3/tests/lldp_mgmt_addr_tlv_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lldp_mudurl-v.out vendor/tcpdump/4.9.3/tests/lldp_mudurl-vv.out vendor/tcpdump/4.9.3/tests/lldp_mudurl.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lmp-lmp_print_data_link_subobjs-oobr.out vendor/tcpdump/4.9.3/tests/lmp-lmp_print_data_link_subobjs-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lmp-v.out vendor/tcpdump/4.9.3/tests/lmp-v.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/lmp.out vendor/tcpdump/4.9.3/tests/lmp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lmpv1_busyloop.out vendor/tcpdump/4.9.3/tests/lmpv1_busyloop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/loopback.out vendor/tcpdump/4.9.3/tests/loopback.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lspping-fec-ldp-v.out vendor/tcpdump/4.9.3/tests/lspping-fec-ldp-vv.out vendor/tcpdump/4.9.3/tests/lspping-fec-ldp.out vendor/tcpdump/4.9.3/tests/lspping-fec-ldp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/lspping-fec-rsvp-v.out vendor/tcpdump/4.9.3/tests/lspping-fec-rsvp-vv.out vendor/tcpdump/4.9.3/tests/lspping-fec-rsvp.out vendor/tcpdump/4.9.3/tests/lspping-fec-rsvp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/medsa-e.out vendor/tcpdump/4.9.3/tests/medsa.out vendor/tcpdump/4.9.3/tests/medsa.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mlppp-oobr.out vendor/tcpdump/4.9.3/tests/mlppp-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_2.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_3.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_4.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_5.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_6.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_6.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_7.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_7.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mobility_opt_asan_8.out vendor/tcpdump/4.9.3/tests/mobility_opt_asan_8.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mpbgp-linklocal-nexthop.out vendor/tcpdump/4.9.3/tests/mpbgp-linklocal-nexthop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mpls-label-heapoverflow.out vendor/tcpdump/4.9.3/tests/mpls-label-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mpls-ldp-hello.out vendor/tcpdump/4.9.3/tests/mpls-ldp-hello.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mpls-traceroute-v.out vendor/tcpdump/4.9.3/tests/mpls-traceroute.out vendor/tcpdump/4.9.3/tests/mpls-traceroute.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mptcp-dss-oobr.out vendor/tcpdump/4.9.3/tests/mptcp-dss-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mptcp-fclose.out vendor/tcpdump/4.9.3/tests/mptcp-fclose.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mptcp.out vendor/tcpdump/4.9.3/tests/mptcp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mrinfo_query.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/msnlb.out vendor/tcpdump/4.9.3/tests/msnlb.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/msnlb2.out vendor/tcpdump/4.9.3/tests/msnlb2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/mstp-v.out vendor/tcpdump/4.9.3/tests/mtrace.out vendor/tcpdump/4.9.3/tests/mtrace.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/nbns-valgrind.out vendor/tcpdump/4.9.3/tests/nbns-valgrind.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/nflog-e.out vendor/tcpdump/4.9.3/tests/nflog-e.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/nflog.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/nfs-attr-oobr.out vendor/tcpdump/4.9.3/tests/nfs-attr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/nfs-seg-fault-1.out vendor/tcpdump/4.9.3/tests/nfs-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/nsh-over-vxlan-gpe-v.out vendor/tcpdump/4.9.3/tests/nsh-over-vxlan-gpe-vv.out vendor/tcpdump/4.9.3/tests/nsh-over-vxlan-gpe-vvv.out vendor/tcpdump/4.9.3/tests/nsh-over-vxlan-gpe.out vendor/tcpdump/4.9.3/tests/nsh-over-vxlan-gpe.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_7050q-v.out vendor/tcpdump/4.9.3/tests/of10_7050q.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_7050sx_bsn-oobr.out vendor/tcpdump/4.9.3/tests/of10_7050sx_bsn-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_7050sx_bsn-vv.out vendor/tcpdump/4.9.3/tests/of10_7050sx_bsn.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_p3295-vv.out vendor/tcpdump/4.9.3/tests/of10_p3295.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_pf5240-vv.out vendor/tcpdump/4.9.3/tests/of10_pf5240.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/of10_s4810-vvvv.out vendor/tcpdump/4.9.3/tests/of10_s4810.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/olsr-oobr-1.out vendor/tcpdump/4.9.3/tests/olsr-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/olsr-oobr-2.out vendor/tcpdump/4.9.3/tests/olsr-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/oobr_parse_elements.out vendor/tcpdump/4.9.3/tests/oobr_parse_elements.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ospf-gmpls.out vendor/tcpdump/4.9.3/tests/ospf-gmpls.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ospf2-seg-fault-1-v.out vendor/tcpdump/4.9.3/tests/ospf2-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ospf3_ah-vv.out vendor/tcpdump/4.9.3/tests/ospf3_auth-vv.out vendor/tcpdump/4.9.3/tests/ospf3_auth.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ospf3_bc-vv.out vendor/tcpdump/4.9.3/tests/ospf3_mp-vv.out vendor/tcpdump/4.9.3/tests/ospf3_nbma-vv.out vendor/tcpdump/4.9.3/tests/ospf6_decode_v3_asan.out vendor/tcpdump/4.9.3/tests/ospf6_decode_v3_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ospf6_print_lshdr-oobr.out vendor/tcpdump/4.9.3/tests/ospf6_print_lshdr-oobr.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/otv-heapoverflow-1.out vendor/tcpdump/4.9.3/tests/otv-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/otv-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/otv-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pcap-invalid-version-1.out vendor/tcpdump/4.9.3/tests/pcap-invalid-version-1.out.stderr vendor/tcpdump/4.9.3/tests/pcap-invalid-version-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pcap-invalid-version-2.out vendor/tcpdump/4.9.3/tests/pcap-invalid-version-2.out.stderr vendor/tcpdump/4.9.3/tests/pcap-invalid-version-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-1.out vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-1.out.stderr vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-1.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-2.out vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-2.out.stderr vendor/tcpdump/4.9.3/tests/pcapng-invalid-vers-2.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_group_addr_asan.out vendor/tcpdump/4.9.3/tests/pgm_group_addr_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_opts_asan.out vendor/tcpdump/4.9.3/tests/pgm_opts_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_opts_asan_2.out vendor/tcpdump/4.9.3/tests/pgm_opts_asan_2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_opts_asan_3.out vendor/tcpdump/4.9.3/tests/pgm_opts_asan_3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pgm_zmtp1v.out vendor/tcpdump/4.9.3/tests/pgmv.out vendor/tcpdump/4.9.3/tests/pim_header_asan-2.out vendor/tcpdump/4.9.3/tests/pim_header_asan-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pim_header_asan-3.out vendor/tcpdump/4.9.3/tests/pim_header_asan-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pim_header_asan-4.out vendor/tcpdump/4.9.3/tests/pim_header_asan-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pim_header_asan.out vendor/tcpdump/4.9.3/tests/pim_header_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pimv2-oobr-1.out vendor/tcpdump/4.9.3/tests/pimv2-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pimv2-oobr-2.out vendor/tcpdump/4.9.3/tests/pimv2-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pimv2-oobr-3.out vendor/tcpdump/4.9.3/tests/pimv2-oobr-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pimv2-oobr-4.out vendor/tcpdump/4.9.3/tests/pimv2-oobr-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pimv2_bootstrap-v.out vendor/tcpdump/4.9.3/tests/pimv2_dm-v.out vendor/tcpdump/4.9.3/tests/pimv2_hellos-v.out vendor/tcpdump/4.9.3/tests/pimv2_register-v.out vendor/tcpdump/4.9.3/tests/pimv2_sm-v.out vendor/tcpdump/4.9.3/tests/pktap-heap-overflow.out vendor/tcpdump/4.9.3/tests/pktap-heap-overflow.out.stderr vendor/tcpdump/4.9.3/tests/pktap-heap-overflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ppp_ccp_config_deflate_option_asan.out vendor/tcpdump/4.9.3/tests/ppp_ccp_config_deflate_option_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pppoe.out vendor/tcpdump/4.9.3/tests/pppoe.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pppoes.out vendor/tcpdump/4.9.3/tests/pppoes.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/pppoes_id.out vendor/tcpdump/4.9.3/tests/print-A.out vendor/tcpdump/4.9.3/tests/print-AA.out vendor/tcpdump/4.9.3/tests/print-capX.out vendor/tcpdump/4.9.3/tests/print-capXX.out vendor/tcpdump/4.9.3/tests/print-flags.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/print-x.out vendor/tcpdump/4.9.3/tests/print-xx.out vendor/tcpdump/4.9.3/tests/q933-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/q933-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/radiotap-heapoverflow.out vendor/tcpdump/4.9.3/tests/radiotap-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/radius-port1700-v.out vendor/tcpdump/4.9.3/tests/radius-rfc4675-v.out vendor/tcpdump/4.9.3/tests/radius-rfc5176-v.out vendor/tcpdump/4.9.3/tests/radius-v.out vendor/tcpdump/4.9.3/tests/radius_attr_asan.out vendor/tcpdump/4.9.3/tests/radius_attr_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/relts-0x80000000.out vendor/tcpdump/4.9.3/tests/relts-0x80000000.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/resp_1.out vendor/tcpdump/4.9.3/tests/resp_1_benchmark.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/resp_2.out vendor/tcpdump/4.9.3/tests/resp_2_inline.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/resp_3.out vendor/tcpdump/4.9.3/tests/resp_3_malicious.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/resp_4_infiniteloop.out vendor/tcpdump/4.9.3/tests/resp_4_infiniteloop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ripv1v2.out vendor/tcpdump/4.9.3/tests/ripv1v2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/ripv2_auth.out vendor/tcpdump/4.9.3/tests/ripv2_auth.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rpki-rtr-oob.out vendor/tcpdump/4.9.3/tests/rpki-rtr-oob.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rpl-14-dao.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rpl-14-daovvv.out vendor/tcpdump/4.9.3/tests/rpl-19-pickdag.out vendor/tcpdump/4.9.3/tests/rpl-19-pickdag.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rpl-19-pickdagvvv.out vendor/tcpdump/4.9.3/tests/rpl-26-senddaoack.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rpl-26-senddaovv.out vendor/tcpdump/4.9.3/tests/rpl-dao-oobr.out vendor/tcpdump/4.9.3/tests/rpl-dao-oobr.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/rpvst-v.out vendor/tcpdump/4.9.3/tests/rpvstp-trunk-native-vid5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rstp-v.out vendor/tcpdump/4.9.3/tests/rsvp-inf-loop-2-v.out vendor/tcpdump/4.9.3/tests/rsvp-inf-loop-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp-rsvp_obj_print-oobr.out vendor/tcpdump/4.9.3/tests/rsvp-rsvp_obj_print-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp_fast_reroute-oobr.out vendor/tcpdump/4.9.3/tests/rsvp_fast_reroute-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp_infloop-v.out vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-1.out vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-2.out vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-3.out vendor/tcpdump/4.9.3/tests/rsvp_uni-oobr-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rtp-seg-fault-1.out vendor/tcpdump/4.9.3/tests/rtp-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rtp-seg-fault-2.out vendor/tcpdump/4.9.3/tests/rtp-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rx_serviceid_oobr.out vendor/tcpdump/4.9.3/tests/rx_serviceid_oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/rx_ubik-oobr.out vendor/tcpdump/4.9.3/tests/rx_ubik-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/scps_invalid.out vendor/tcpdump/4.9.3/tests/scps_invalid.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/sflow_multiple_counter_30_pdus-nv.out vendor/tcpdump/4.9.3/tests/sflow_multiple_counter_30_pdus.out vendor/tcpdump/4.9.3/tests/sflow_multiple_counter_30_pdus.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/slip-bad-direction.out vendor/tcpdump/4.9.3/tests/slip-bad-direction.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/smb.sh (contents, props changed) vendor/tcpdump/4.9.3/tests/smb_print_trans-oobr1.out vendor/tcpdump/4.9.3/tests/smb_print_trans-oobr1.pcapng (contents, props changed) vendor/tcpdump/4.9.3/tests/smb_print_trans-oobr2.out vendor/tcpdump/4.9.3/tests/smb_print_trans-oobr2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/snmp-heapoverflow-1.out vendor/tcpdump/4.9.3/tests/snmp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/snmp-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/snmp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/spb.out vendor/tcpdump/4.9.3/tests/spb.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/spb_bpduv4-v.out vendor/tcpdump/4.9.3/tests/spb_bpduv4.out vendor/tcpdump/4.9.3/tests/spb_bpduv4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-heapoverflow-1.out vendor/tcpdump/4.9.3/tests/stp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-heapoverflow-2.out vendor/tcpdump/4.9.3/tests/stp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-heapoverflow-3.out vendor/tcpdump/4.9.3/tests/stp-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-heapoverflow-4.out vendor/tcpdump/4.9.3/tests/stp-heapoverflow-4.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-heapoverflow-5.out vendor/tcpdump/4.9.3/tests/stp-heapoverflow-5.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/stp-v.out vendor/tcpdump/4.9.3/tests/stp-v4-length-sigsegv.out vendor/tcpdump/4.9.3/tests/stp-v4-length-sigsegv.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/syslog-v.out vendor/tcpdump/4.9.3/tests/syslog_udp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tcp-auth-heapoverflow.out vendor/tcpdump/4.9.3/tests/tcp-auth-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tcp_header_heapoverflow.out vendor/tcpdump/4.9.3/tests/tcp_header_heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/telnet-iac-check-oobr.out vendor/tcpdump/4.9.3/tests/telnet-iac-check-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tfo-5c1fa7f9ae91.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tfo.out vendor/tcpdump/4.9.3/tests/tftp-heapoverflow.out vendor/tcpdump/4.9.3/tests/tftp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tok2str-oobr-1.out vendor/tcpdump/4.9.3/tests/tok2str-oobr-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/tok2str-oobr-2.out vendor/tcpdump/4.9.3/tests/tok2str-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/trunc_aack.out vendor/tcpdump/4.9.3/tests/truncated-aack.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/udld-inf-loop-1-v.out vendor/tcpdump/4.9.3/tests/udld-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/udld-v.out vendor/tcpdump/4.9.3/tests/udp-length-heapoverflow.out vendor/tcpdump/4.9.3/tests/udp-length-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/unaligned-nfs-1.out vendor/tcpdump/4.9.3/tests/unaligned-nfs-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vqp-oobr.out vendor/tcpdump/4.9.3/tests/vqp-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vrrp-v.out vendor/tcpdump/4.9.3/tests/vrrp-vrrp_print-oobr-2.out vendor/tcpdump/4.9.3/tests/vrrp-vrrp_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vrrp-vrrp_print-oobr.out vendor/tcpdump/4.9.3/tests/vrrp-vrrp_print-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vrrp.out vendor/tcpdump/4.9.3/tests/vrrp.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vtp_asan-2.out vendor/tcpdump/4.9.3/tests/vtp_asan-2.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vtp_asan-3.out vendor/tcpdump/4.9.3/tests/vtp_asan-3.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vtp_asan.out vendor/tcpdump/4.9.3/tests/vtp_asan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/vxlan.out vendor/tcpdump/4.9.3/tests/vxlan.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/wb-oobr.out vendor/tcpdump/4.9.3/tests/wb-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/zephyr-oobr.out vendor/tcpdump/4.9.3/tests/zephyr-oobr.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/zmtp1-inf-loop-1.out vendor/tcpdump/4.9.3/tests/zmtp1-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/4.9.3/tests/zmtp1.out vendor/tcpdump/4.9.3/tests/zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.3/timeval-operations.h (contents, props changed) vendor/tcpdump/4.9.3/udp.h (contents, props changed) vendor/tcpdump/4.9.3/util-print.c (contents, props changed) vendor/tcpdump/4.9.3/vfprintf.c (contents, props changed) vendor/tcpdump/4.9.3/win32/ vendor/tcpdump/4.9.3/win32/prj/ vendor/tcpdump/4.9.3/win32/prj/GNUmakefile vendor/tcpdump/4.9.3/win32/prj/WinDump.dsp vendor/tcpdump/4.9.3/win32/prj/WinDump.dsw vendor/tcpdump/4.9.3/win32/prj/WinDump.sln vendor/tcpdump/4.9.3/win32/prj/WinDump.vcproj vendor/tcpdump/4.9.3/win32/src/ vendor/tcpdump/4.9.3/win32/src/ether_ntohost.c (contents, props changed) Added: vendor/tcpdump/4.9.3/CHANGES ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/4.9.3/CHANGES Sun Oct 6 04:34:12 2019 (r353143) @@ -0,0 +1,1479 @@ +Friday, September 20, 2019, by mcr@sandelman.ca + A huge thank you to Denis, Francois-Xavier and Guy who did much of the heavy lifting. + Summary for 4.9.3 tcpdump release + Fix buffer overflow/overread vulnerabilities: + CVE-2017-16808 (AoE) + CVE-2018-14468 (FrameRelay) + CVE-2018-14469 (IKEv1) + CVE-2018-14470 (BABEL) + CVE-2018-14466 (AFS/RX) + CVE-2018-14461 (LDP) + CVE-2018-14462 (ICMP) + CVE-2018-14465 (RSVP) + CVE-2018-14881 (BGP) + CVE-2018-14464 (LMP) + CVE-2018-14463 (VRRP) + CVE-2018-14467 (BGP) + CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled) + CVE-2018-10105 (SMB - too unreliably reproduced, SMB printing disabled) + CVE-2018-14880 (OSPF6) + CVE-2018-16451 (SMB) + CVE-2018-14882 (RPL) + CVE-2018-16227 (802.11) + CVE-2018-16229 (DCCP) + CVE-2018-16301 (was fixed in libpcap) + CVE-2018-16230 (BGP) + CVE-2018-16452 (SMB) + CVE-2018-16300 (BGP) + CVE-2018-16228 (HNCP) + CVE-2019-15166 (LMP) + CVE-2019-15167 (VRRP) + Fix for cmdline argument/local issues: + CVE-2018-14879 (tcpdump -V) + +Sunday September 3, 2017 denis@ovsienko.info + Summary for 4.9.2 tcpdump release + Do not use getprotobynumber() for protocol name resolution. Do not do + any protocol name resolution if -n is specified. + Improve errors detection in the test scripts. + Fix a segfault with OpenSSL 1.1 and improve OpenSSL usage. + Clean up IS-IS printing. + Fix buffer overflow vulnerabilities: + CVE-2017-11543 (SLIP) + CVE-2017-13011 (bittok2str_internal) + Fix infinite loop vulnerabilities: + CVE-2017-12989 (RESP) + CVE-2017-12990 (ISAKMP) + CVE-2017-12995 (DNS) + CVE-2017-12997 (LLDP) + Fix buffer over-read vulnerabilities: + CVE-2017-11541 (safeputs) + CVE-2017-11542 (PIMv1) + CVE-2017-12893 (SMB/CIFS) + CVE-2017-12894 (lookup_bytestring) + CVE-2017-12895 (ICMP) + CVE-2017-12896 (ISAKMP) + CVE-2017-12897 (ISO CLNS) + CVE-2017-12898 (NFS) + CVE-2017-12899 (DECnet) + CVE-2017-12900 (tok2strbuf) + CVE-2017-12901 (EIGRP) + CVE-2017-12902 (Zephyr) + CVE-2017-12985 (IPv6) + CVE-2017-12986 (IPv6 routing headers) + CVE-2017-12987 (IEEE 802.11) + CVE-2017-12988 (telnet) + CVE-2017-12991 (BGP) + CVE-2017-12992 (RIPng) + CVE-2017-12993 (Juniper) + CVE-2017-11542 (PIMv1) + CVE-2017-11541 (safeputs) + CVE-2017-12994 (BGP) + CVE-2017-12996 (PIMv2) + CVE-2017-12998 (ISO IS-IS) + CVE-2017-12999 (ISO IS-IS) + CVE-2017-13000 (IEEE 802.15.4) + CVE-2017-13001 (NFS) + CVE-2017-13002 (AODV) + CVE-2017-13003 (LMP) + CVE-2017-13004 (Juniper) + CVE-2017-13005 (NFS) + CVE-2017-13006 (L2TP) + CVE-2017-13007 (Apple PKTAP) + CVE-2017-13008 (IEEE 802.11) + CVE-2017-13009 (IPv6 mobility) + CVE-2017-13010 (BEEP) + CVE-2017-13012 (ICMP) + CVE-2017-13013 (ARP) + CVE-2017-13014 (White Board) + CVE-2017-13015 (EAP) + CVE-2017-11543 (SLIP) + CVE-2017-13016 (ISO ES-IS) + CVE-2017-13017 (DHCPv6) + CVE-2017-13018 (PGM) + CVE-2017-13019 (PGM) + CVE-2017-13020 (VTP) + CVE-2017-13021 (ICMPv6) + CVE-2017-13022 (IP) + CVE-2017-13023 (IPv6 mobility) + CVE-2017-13024 (IPv6 mobility) + CVE-2017-13025 (IPv6 mobility) + CVE-2017-13026 (ISO IS-IS) + CVE-2017-13027 (LLDP) + CVE-2017-13028 (BOOTP) + CVE-2017-13029 (PPP) + CVE-2017-13030 (PIM) + CVE-2017-13031 (IPv6 fragmentation header) + CVE-2017-13032 (RADIUS) + CVE-2017-13033 (VTP) + CVE-2017-13034 (PGM) + CVE-2017-13035 (ISO IS-IS) + CVE-2017-13036 (OSPFv3) + CVE-2017-13037 (IP) + CVE-2017-13038 (PPP) + CVE-2017-13039 (ISAKMP) + CVE-2017-13040 (MPTCP) + CVE-2017-13041 (ICMPv6) + CVE-2017-13042 (HNCP) + CVE-2017-13043 (BGP) + CVE-2017-13044 (HNCP) + CVE-2017-13045 (VQP) + CVE-2017-13046 (BGP) + CVE-2017-13047 (ISO ES-IS) + CVE-2017-13048 (RSVP) + CVE-2017-13049 (Rx) + CVE-2017-13050 (RPKI-Router) + CVE-2017-13051 (RSVP) + CVE-2017-13052 (CFM) + CVE-2017-13053 (BGP) + CVE-2017-13054 (LLDP) + CVE-2017-13055 (ISO IS-IS) + CVE-2017-13687 (Cisco HDLC) + CVE-2017-13688 (OLSR) + CVE-2017-13689 (IKEv1) + CVE-2017-13690 (IKEv2) + CVE-2017-13725 (IPv6 routing headers) + +Sunday July 23, 2017 denis@ovsienko.info + Summary for 4.9.1 tcpdump release + CVE-2017-11108/Fix bounds checking for STP. + Make assorted documentation updates and fix a few typos in tcpdump output. + Fixup -C for file size >2GB (GH #488). + Show AddressSanitizer presence in version output. + Fix a bug in test scripts (exposed in GH #613). + On FreeBSD adjust Capsicum capabilities for netmap. + On Linux fix a use-after-free when the requested interface does not exist. + +Wednesday January 18, 2017 devel.fx.lebail@orange.fr + Summary for 4.9.0 tcpdump release + General updates: + Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others + (More information in the log with CVE-2016-* and CVE-2017-*) + Change the way protocols print link-layer addresses (Fix heap overflows + in CALM-FAST and GeoNetworking printers) + Pass correct caplen value to ether_print() and some other functions + Fix lookup_nsap() to match what isonsap_string() expects + Clean up relative time stamp printing (Fix an array overflow) + Fix some alignment issues with GCC on Solaris 10 SPARC + Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks + Add a fn_printztn() which returns the number of bytes processed + Add nd_init() and nd_cleanup() functions. Improve libsmi support + Add CONTRIBUTING file + Add a summary comment in all printers + Compile with more warning options in devel mode if supported (-Wcast-qual, ...) + Fix some leaks found by Valgrind/Memcheck + Fix a bunch of de-constifications + Squelch some Coverity warnings and some compiler warnings + Update Coverity and Travis-CI setup + Update Visual Studio files + + Frontend: + Fix capsicum support to work with zerocopy buffers in bpf + Try opening interfaces by name first, then by name-as-index + Work around pcap_create() failures fetching time stamp type lists + Fix a segmentation fault with 'tcpdump -J' + Improve addrtostr6() bounds checking + Add exit_tcpdump() function + Don't drop CAP_SYS_CHROOT before chrooting + Fixes issue where statistics not reported when -G and -W options used + + Updated printers: + 802.11: Beginnings of 11ac radiotap support + 802.11: Check the Protected bit for management frames + 802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow) + 802.11: Fix the radiotap printer to handle the special bits correctly + 802.11: If we have the MCS field, it's 11n + 802.11: Only print unknown frame type or subtype messages once + 802.11: Radiotap dBm values get printed as dB; Update a test output accordingly + 802.11: Source and destination addresses were backwards + AH: Add a bounds check + AH: Report to our caller that dissection failed if a bounds check fails + AP1394: Print src > dst, not dst > src + ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow) + ATALK: Add bounds and length checks (Fix heap overflows) + ATM: Add some bounds checks (Fix a heap overflow) + ATM: Fix an incorrect bounds check + BFD: Update specification from draft to RFC 5880 + BFD: Update to print optional authentication field + BGP: Add support for the AIGP attribute (RFC7311) + BGP: Print LARGE_COMMUNITY Path Attribute + BGP: Update BGP numbers from IANA; Print minor values for FSM notification + BOOTP: Add a bounds check + Babel: Add decoder for source-specific extension + CDP: Filter out non-printable characters + CFM: Fixes to match the IEEE standard, additional bounds and length checks + CSLIP: Add more bounds checks (Fix a heap overflow) + ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow) + DHCP: Fix MUDURL and TZ options + DHCPv6: Process MUDURL and TZ options + DHCPv6: Update Status Codes with RFCs/IANA names + DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case + DTP: Improve packet integrity checks + EGP: Fix bounds checks + ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later + Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow) + Ethernet: Print the Length/Type field as length when needed + FDDI: Fix -e output for FDDI + FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows) + GRE: Add some bounds checks (Fix heap overflows) + Geneve: Fix error message with invalid option length; Update list option classes + HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes + ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS() + IGMP: Add a length check + IP: Add a bounds check (Fix a heap overflow) + IP: Check before fetching the protocol version (Fix a heap overflow) + IP: Don't try to dissect if IP version != 4 (Fix a heap overflow) + IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow) + IPoFC: Fix -e output (IP-over-Fibre Channel) + IPv6: Don't overwrite the destination IPv6 address for routing headers + IPv6: Fix header printing + IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + ISAKMP: Clean up parsing of IKEv2 Security Associations + ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases + ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature + ISOCLNS/IS-IS: Filter out non-printable characters + ISOCLNS/IS-IS: Fix segmentation faults + ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing + ISOCLNS: Add some bounds checks + Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow) + LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header + LLC: Add a bounds check (Fix a heap overflow) + LLC: Clean up printing of LLC packets + LLC: Fix the printing of RFC 948-style IP packets + LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols + LLDP: Implement IANA OUI and LLDP MUD option + MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks + MPLS: "length" is now the *remaining* packet length + MPLS: Add bounds and length checks (Fix a heap overflow) + NFS: Don't assume the ONC RPC header is nicely aligned + NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault) + NFS: Don't run past the end of an NFSv3 file handle + OLSR: Add a test to cover a HNA sgw case + OLSR: Fix 'Advertised networks' count + OLSR: Fix printing of smart-gateway HNAs in IPv4 + OSPF: Add a bounds check for the Hello packet options + OSPF: Do more bounds checking + OSPF: Fix a segmentation fault + OSPF: Fix printing 'ospf_topology_values' default + OTV: Add missing bounds checks + PGM: Print the formatted IP address, not the raw binary address, as a string + PIM: Add some bounds checking (Fix a heap overflow) + PIMv2: Fix checksumming of Register messages + PPP: Add some bounds checks (Fix a heap overflow) + PPP: Report invalid PAP AACK/ANAK packets + Q.933: Add a missing bounds check + RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute + RADIUS: Filter out non-printable characters + RADIUS: Translate UDP/1700 as RADIUS + RESP: Do better checking of RESP packets + RPKI-RTR: Add a return value check for "fn_printn" call + RPKI-RTR: Remove printing when truncated condition already detected + RPL: Fix 'Consistency Check' control code + RPL: Fix suboption print + RSVP: An INTEGRITY object in a submessage covers only the submessage + RSVP: Fix an infinite loop; Add bounds and length checks + RSVP: Fix some if statements missing brackets + RSVP: Have signature_verify() do the copying and clearing + RTCP: Add some bounds checks + RTP: Add some bounds checks, fix two segmentation faults + SCTP: Do more bounds checking + SFLOW: Fix bounds checking + SLOW: Fix bugs, add checks + SMB: Before fetching the flags2 field, make sure we have it + SMB: Do bounds checks on NBNS resource types and resource data lengths + SNMP: Clean up the "have libsmi but no modules loaded" case + SNMP: Clean up the object abbreviation list and fix the code to match them + SNMP: Do bounds checks when printing character and octet strings + SNMP: Improve ASN.1 bounds checks + SNMP: More bounds and length checks + STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows) + STP: Filter out non-printable characters + TCP: Add bounds and length checks for packets with TCP option 20 + TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP + TCP: Fix two bounds checks (Fix heap overflows) + TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow) + TCP: Put TCP-AO option decoding right + TFTP: Don't use strchr() to scan packet data (Fix a heap overflow) + Telnet: Add some bounds checks + TokenRing: Fix -e output + UDLD: Fix an infinite loop + UDP: Add a bounds check (Fix a heap overflow) + UDP: Check against the packet length first + VAT: Add some bounds checks + VTP: Add a test on Mgmt Domain Name length + VTP: Add bounds checks and filter out non-printable characters + VXLAN: Add a bound check and a test case + ZeroMQ: Fix an infinite loop + +Tuesday October 25, 2016 mcr@sandelman.ca + Summary for 4.8.1 tcpdump release + Fix "-x" for Apple PKTAP and PPI packets + Improve separation frontend/backend (tcpdump/libnetdissect) + Fix display of timestamps with -tt, -ttt and -ttttt options + Add support for the Marvell Extended Distributed Switch Architecture header + Use PRIx64 to print a 64-bit number in hex. + Printer for HNCP (RFCs 7787 and 7788). + dagid is always an IPv6 address, not an opaque 128-bit string, and other fixes to RPL printer. + RSVP: Add bounds and length checks + OSPF: Do more bounds checking + Handle OpenSSL 1.1.x. + Initial support for the REdis Serialization Protocol known as RESP. + Add printing function for Generic Protocol Extension for VXLAN + draft-ietf-nvo3-vxlan-gpe-01 + Network Service Header: draft-ietf-sfc-nsh-01 + Don't recompile the filter if the new file has the same DLT. + Pass an adjusted struct pcap_pkthdr to the sub-printer. + Add three test cases for already fixed CVEs + CVE-2014-8767: OLSR + CVE-2014-8768: Geonet + CVE-2014-8769: AODV + Don't do the DDP-over-UDP heuristic first: GitHub issue #499. + Use the new debugging routines in libpcap. + Harmonize TCP source or destination ports tests with UDP ones + Introduce data types to use for integral values in packet structures. + RSVP: Fix an infinite loop + Support of Type 3 and Type 4 LISP packets. + Don't require IPv6 library support in order to support IPv6 addresses. + Many many changes to support libnetdissect usage. + Add a test that makes unaligned accesses: GitHub issue #478. + add a DNSSEC test case: GH #445 and GH #467. + BGP: add decoding of ADD-PATH capability + fixes to LLC header printing, and RFC948-style IP packets + +Friday April 10, 2015 guy@alum.mit.edu + Summary for 4.7.4 tcpdump release + RPKI to Router Protocol: Fix Segmentation Faults and other problems + RPKI to Router Protocol: print strings with fn_printn() + wb: fix some bounds checks + +Wednesday March 11, 2015 mcr@sandelman.ca + Summary for 4.7.3 tcpdump release + Capsicum fixes for FreeBSD 10 + +Tuesday March 10, 2015 mcr@sandelman.ca + Summary for 4.7.2 tcpdump release + DCCP: update Packet Types with RFC4340/IANA names + fixes for CVE-2015-0261: IPv6 mobility header check issue + fixes for CVE-2015-2153, 2154, 2155: kday packets + +Friday Nov. 12, 2014 guy@alum.mit.edu + Summary for 4.7.0 tcpdump release + changes to hex printing of CDP packets + Fix PPI printing + Radius: update Packet Type Codes and Attribute Types with RFC/IANA names + Add a routine to print "text protocols", and add FTP/HTTP/SMTP/RTSP support. + improvements to telnet printer, even if not -v + omit length for bcp, print-tcp uses it + formatting fixes for a bunch of protocols + new bounds checks for a number of protocols + split netflow 1,6, and 6 dissector up. + added geneve dissector + CVE-2014-9140 PPP dissector fixed. + +Tuesday Sep. 2, 2014 mcr@sandelman.ca + Summary for 4.6.2 tcpdump release + fix out-of-source-tree builds: find libpcap that is out of source + better configure check for libsmi + +Saturday Jul. 19, 2014 mcr@sandelman.ca + Summary for 4.6.1 tcpdump release + added FreeBSD capsicum + add a short option '#', same as long option '--number' + +Wednesday Jul. 2, 2014 mcr@sandelman.ca + Summary for 4.6.0 tcpdump release + all of tcpdump is now using the new "NDO" code base (Thanks Denis!) + nflog, mobile, forces, pptp, AODV, AHCP, IPv6, OSPFv4, RPL, DHCPv6 enhancements/fixes + M3UA decode added. + many new test cases: 82 in 4.5.1 to 133 in 4.6.0 + many improvements to travis continuous integration system: OSX, and Coverity options + cleaned up some unnecessary header files + Added bittok2str(). + a number of unaligned access faults fixed + -A flag does not consider CR to be printable anymore + fx.lebail took over coverity baby sitting + default snapshot size increased to 256K for accomodate USB captures + WARNING: this release contains a lot of very worthwhile code churn. + +Wednesday Jan. 15, 2014 guy@alum.mit.edu + Summary for 4.5.2 tcpdump release + Man page fix + Fix crashes on SPARC + +Monday Nov. 11, 2013 mcr@sandelman.ca + Summary for 4.5.1 tcpdump release + CREDITS file fixes + +Thursday Nov. 7, 2013 mcr@sandelman.ca and guy@alum.mit.edu. + Summary for 4.5.0 tcpdump release + some NFSv4 fixes for printing + fix printing of unknown TCP options, and tcp fast-open + fixes for syslog parser + some gcc-version-specific flag tuning + adopt MacOS deprecation workarounds for openssl + improvements to babel printing + add OpenFlow 1.0 (no SSL) and test cases + GeoNet printer. + added STBC Rx support + improvements to DHCPv6 decoder + clarify which autoconf is needed + Point users to the the-tcpdump-group repository on GitHub rather + than the mcr repository + Add MSDP printer. + Fixed IPv6 check on Solaris and other OSes requiring extra + networking libraries. + Add support for VXLAN (draft-mahalingam-dutt-dcops-vxlan-03), + and add "vxlan" as an option for -T. + Add support for OTV (draft-hasmit-otv-04). + fixes for DLT_IEEE802_11_RADIO datalink types + added MPTCP decoder + +Saturday April 6, 2013 guy@alum.mit.edu. + Summary for 4.4.0 tcpdump release + RPKI-RTR (RFC6810) is now official (TCP Port 323) + Fix detection of OpenSSL libcrypto. + Add DNSSL (RFC6106) support. + Add "radius" as an option for -T. + Update Action codes for handle_action function according to + 802.11s amendment. + Decode DHCPv6 AFTR-Name option (RFC6334). + Updates for Babel. + Fix printing of infinite lifetime in ICMPv6. + Added support for SPB, SPBM Service Identifier, and Unicast + Address sub-TLV in ISIS. + Decode RIPv2 authentication up to RFC4822. + Fix RIP Request/full table decoding issues. + On Linux systems with cap-ng.h, drop root privileges + using Linux Capabilities. + Add support for reading multiple files. + Add MS NLB heartbeat printer. + Separate multiple nexthops in BGP. + +Wednesday November 28, 2012 guy@alum.mit.edu. + Summary for 4.3.1 tcpdump release + Print "LLDP, length N" for LLDP packets even when not in verbose + mode, so something is printed even if only the timestamp is + present + Document "-T carp" + Print NTP poll interval correctly (it's an exponent, so print + both its raw value and 2^value) + Document that "-e" is used to get MAC addresses + More clearly document that you need to escape or quote + backslashes in filter expressions on the command line + Fix some "the the" in the man page + Use the right maximum path length + Don't treat 192_1_2, when passed to -i, as an interface number + +Friday April 3, 2012. mcr@sandelman.ca. + Summary for 4.3.0 tcpdump release + fixes for forces: SPARSE data (per RFC 5810) + some more test cases added + updates to documentation on -l, -U and -w flags. + Fix printing of BGP optional headers. + Tried to include DLT_PFSYNC support, failed due to headers required. + added TIPC support. + Fix LLDP Network Policy bit definitions. + fixes for IGMPv3's Max Response Time: it is in units of 0.1 second. + SIGUSR1 can be used rather than SIGINFO for stats + permit -n flag to affect print-ip for protocol numbers + ND_OPT_ADVINTERVAL is in milliseconds, not seconds + Teach PPPoE parser about RFC 4638 + + +Friday December 9, 2011. guy@alum.mit.edu. + Summary for 4.2.1 tcpdump release + Only build the Babel printer if IPv6 is enabled. + Support Babel on port 6696 as well as 6697. + Include ppi.h in release tarball. + Include all the test files in the release tarball, and don't + "include" test files that no longer exist. + Don't assume we have - check for it. + Support "-T carp" as a way of dissecting IP protocol 112 as CARP + rather than VRRP. + Support Hilscher NetAnalyzer link-layer header format. + Constify some pointers and fix compiler warnings. + Get rid of never-true test. + Fix an unintended fall-through in a case statement in the ARP + printer. + Fix several cases where sizeof(sizeof(XXX)) was used when just + sizeof(XXX) was intended. + Make stricter sanity checks in the ES-IS printer. + Get rid of some GCCisms that caused builds to fai with compilers + that don't support them. + Fix typo in man page. + Added length checks to Babel printer. + +Sunday July 24, 2011. mcr@sandelman.ca. + Summary for 4.2.+ + merged 802.15.4 decoder from Dmitry Eremin-Solenikov + updates to forces for new port numbers + Use "-H", not "-h", for the 802.11s option. (-h always help) + Better ICMPv6 checksum handling. + add support for the RPKI/Router Protocol, per -ietf-sidr-rpki-rtr-12 + get rid of uuencoded pcap test files, git can do binary. + sFlow changes for 64-bit counters. + fixes for PPI packet header handling and printing. + Add DCB Exchange protocol (DCBX) version 1.01. + Babel dissector, from Juliusz Chroboczek and Grégoire Henry. + improvements to radiotap for rate values > 127. + Many improvements to ForCES decode, including fix SCTP TML port + updated RPL type code to RPL-17 draft + Improve printout of DHCPv6 options. + added support and test case for QinQ (802.1q VLAN) packets + Handle DLT_IEEE802_15_4_NOFCS like DLT_IEEE802_15_4. + Build fixes for Sparc and other machines with alignment restrictions. + Merged changes from Debian package. + PGM: Add ACK decoding and add PGMCC DATA and FEEDBACK options. + Build fixes for OSX (Snow Leopard and others) + Add support for IEEE 802.15.4 packets + +Tue. July 20, 2010. guy@alum.mit.edu. + Summary for 4.1.2 tcpdump release + If -U is specified, flush the file after creating it, so it's + not zero-length + Fix TCP flags output description, and some typoes, in the man + page + Add a -h flag, and only attempt to recognize 802.11s mesh + headers if it's set + When printing the link-layer type list, send *all* output to + stderr + Include the CFLAGS setting when configure was run in the + compiler flags + +Thu. April 1, 2010. guy@alum.mit.edu. + Summary for 4.1.1 tcpdump release + Fix build on systems with PF, such as FreeBSD and OpenBSD. + Don't blow up if a zero-length link-layer address is passed to + linkaddr_string(). + +Thu. March 11, 2010. ken@netfunctional.ca/guy@alum.mit.edu. + Summary for 4.1.0 tcpdump release + Fix printing of MAC addresses for VLAN frames with a length + field + Add some additional bounds checks and use the EXTRACT_ macros + more + Add a -b flag to print the AS number in BGP packets in ASDOT + notation rather than ASPLAIN notation + Add ICMPv6 RFC 5006 support + Decode the access flags in NFS access requests + Handle the new DLT_ for memory-mapped USB captures on Linux + Make the default snapshot (-s) the maximum + Print name of device (when -L is used) + Support for OpenSolaris (and SXCE build 125 and later) + Print new TCP flags + Add support for RPL DIO + Add support for TCP User Timeout (UTO) + Add support for non-standard Ethertypes used by 3com PPPoE gear + Add support for 802.11n and 802.11s + Add support for Transparent Ethernet Bridge ethertype in GRE + Add 4 byte AS support for BGP printer + Add support for the MDT SAFI 66 BG printer + Add basic IPv6 support to print-olsr + Add USB printer + Add printer for ForCES + Handle frames with an FCS + Handle 802.11n Control Wrapper, Block Acq Req and Block Ack frames + Fix TCP sequence number printing + Report 802.2 packets as 802.2 instead of 802.3 + Don't include -L/usr/lib in LDFLAGS + On x86_64 Linux, look in lib64 directory too + Lots of code clean ups + Autoconf clean ups + Update testcases to make output changes + Fix compiling with/out smi (--with{,out}-smi) + Fix compiling without IPv6 support (--disable-ipv6) + +Mon. October 27, 2008. ken@netfunctional.ca. Summary for 4.0.0 tcpdump release + Add support for Bluetooth Sniffing + Add support for Realtek Remote Control Protocol (openrrcp.org.ru) + Add support for 802.11 AVS + Add support for SMB over TCP + Add support for 4 byte BGP AS printing + Add support for compiling on case-insensitive file systems + Add support for ikev2 printing + Update support for decoding AFS + Update DHCPv6 printer + Use newer libpcap API's (allows -B option on all platforms) + Add -I to turn on monitor mode + Bugfixes in lldp, lspping, dccp, ESP, NFS printers + Cleanup unused files and various cruft + +Mon. September 10, 2007. ken@xelerance.com. Summary for 3.9.8 tcpdump release + Rework ARP printer + Rework OSPFv3 printer + Add support for Frame-Relay ARP + Decode DHCP Option 121 (RFC 3442 Classless Static Route) + Decode DHCP Option 249 (MS Classless Static Route) the same as Option 121 + TLV: Add support for Juniper .pcap extensions + Print EGP header in new-world-order style + Converted print-isakmp.c to NETDISSECT + Moved AF specific stuff into af.h + Test subsystem now table driven, and saves outputs and diffs to one place + Require for pf definitions - allows reading of pflog formatted + libpcap files on an OS other than where the file was generated + + +Wed. July 23, 2007. mcr@xelerance.com. Summary for 3.9.7 libpcap release + + NFS: Print unsigned values as such. + RX: parse safely. + BGP: fixes for IPv6-less builds. + 801.1ag: use standard codepoint. + use /dev/bpf on systems with such a device. + 802.11: print QoS data, avoid dissect of no-data frame, ignore padding. + smb: make sure that we haven't gone past the end of the captured data. + smb: squelch an uninitialized complaint from coverity. + NFS: from NetBSD; don't interpret the reply as a possible NFS reply + if it got MSG_DENIED. + BGP: don't print TLV values that didn't fit, from www.digit-labs.org. + revised INSTALL.txt about libpcap dependancy. + +Wed. April 25, 2007. ken@xelerance.com. Summary for 3.9.6 tcpdump release + Update man page to reflect changes to libpcap + Changes to both TCP and IP Printer Output + Fix a potential buffer overflow in the 802.11 printer + Print basic info about a few more Cisco LAN protocols. + mDNS cleanup + ICMP MPLS rework of the extension code + bugfix: use the correct codepoint for the OSPF simple text auth token + entry, and use safeputs to print the password. + Add support in pflog for additional values + Add support for OIF RSVP Extensions UNI 1.0 Rev. 2 and additional RSVP objects + Add support for the Message-id NACK c-type. + Add support for 802.3ah loopback ctrl msg + Add support for Multiple-STP as per 802.1s + Add support for rapid-SPT as per 802.1w + Add support for CFM Link-trace msg, Link-trace-Reply msg, + Sender-ID tlv, private tlv, port, interface status + Add support for unidirectional link detection as per + http://www.ietf.org/internet-drafts/draft-foschiano-udld-02.txt + Add support for the olsr protocol as per RFC 3626 plus the LQ + extensions from olsr.org + Add support for variable-length checksum in DCCP, as per section 9 of + RFC 4340. + Add support for per-VLAN spanning tree and per-VLAN rapid spanning tree + Add support for Multiple-STP as per 802.1s + Add support for the cisco propriatry 'dynamic trunking protocol' + Add support for the cisco proprietary VTP protocol + Update dhcp6 options table as per IETF standardization activities + + +Tue. September 19, 2006. ken@xelerance.com. Summary for 3.9.5 tcpdump release + + Fix compiling on AIX (, at end of ENUM) + Updated list of DNS RR typecodes + Use local Ethernet defs on WIN32 + Add support for Frame-Relay ARP + Fixes for compiling under MSVC++ + Add support for parsing Juniper .pcap files + Add support for FRF.16 Multilink Frame-Relay (DLT_MFR) + Rework the OSPFv3 printer + Fix printing for 4.4BSD/NetBSD NFS Filehandles + Add support for Cisco style NLPID encapsulation + Add cisco prop. eigrp related, extended communities + Add support for BGP signaled VPLS + Cleanup the bootp printer + Add support for PPP over Frame-Relay + Add some bounds checking to the IP options code, and clean up + the options output a bit. + Add additional modp groups to ISAKMP printer + Add support for Address-Withdraw and Label-Withdraw Msgs + Add support for the BFD Discriminator TLV + Fixes for 64bit compiling + Add support for PIMv2 checksum verification + Add support for further dissection of the IPCP Compression Option + Add support for Cisco's proposed VQP protocol + Add basic support for keyed authentication TCP option + Lots of minor cosmetic changes to output printers + + +Mon. September 19, 2005. ken@xelerance.com. Summary for 3.9.4 tcpdump release + Decoder support for more Juniper link-layer types + Fix a potential buffer overflow (although it can't occur in + practice). + Fix the handling of unknown management frame types in the 802.11 + printer. + Add FRF.16 support, fix various Frame Relay bugs. + Add support for RSVP integrity objects, update fast-reroute + object printer to latest spec. + Clean up documentation of vlan filter expression, document mpls + filter expression. + Document new pppoed and pppoes filter expressions. + Update diffserver-TE codepoints as per RFC 4124. + Spelling fixes in ICMPv6. + Don't require any fields other than flags to be present in IS-IS + restart signaling TLVs, and only print the system ID in + those TLVs as system IDs, not as node IDs. + Support for DCCP. + +Tue. July 5, 2005. ken@xelerance.com. Summary for 3.9.3 tcpdump release + + Option to chroot() when dropping privs + Fixes for compiling on nearly every platform, + including improved 64bit support + Many new testcases + Support for sending packets + Many compliation fixes on most platforms + Fixes for recent version of GCC to eliminate warnings + Improved Unicode support + + Decoders & DLT Changes, Updates and New: + AES ESP support + Juniper ATM, FRF.15, FRF.16, PPPoE, + ML-FR, ML-PIC, ML-PPP, PL-PPP, LS-PIC + GGSN,ES,MONITOR,SERVICES + L2VPN + Axent Raptor/Symantec Firewall + TCP-MD5 (RFC 2385) + ESP-in-UDP (RFC 3948) + ATM OAM + LMP, LMP Service Discovery + IP over FC + IP over IEEE 1394 + BACnet MS/TP + SS7 + LDP over TCP + LACP, MARKER as per 802.3ad + PGM (RFC 3208) + LSP-PING + G.7041/Y.1303 Generic Framing Procedure + EIGRP-IP, EIGRP-IPX + ICMP6 + Radio - via radiotap + DHCPv6 + HDLC over PPP + +Tue. March 30, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.3 release + + No changes from 3.8.2. Version bumped only to maintain consistency + with libpcap 0.8.3. + +Mon. March 29, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.2 release + + Fixes for print-isakmp.c CVE: CAN-2004-0183, CAN-2004-0184 + http://www.rapid7.com/advisories/R7-0017.html + IP-over-IEEE1394 printing. + some MINGW32 changes. + updates for autoconf 2.5 + fixes for print-aodv.c - check for too short packets + formatting changes to print-ascii for hex output. + check for too short packets: print-bgp.c, print-bootp.c, print-cdp.c, + print-chdlc.c, print-domain.c, print-icmp.c, print-icmp6.c, + print-ip.c, print-lwres.c, print-ospf.c, print-pim.c, + print-ppp.c,print-pppoe.c, print-rsvp.c, print-wb.c + print-ether.c - better handling of unknown types. + print-isoclns.c - additional decoding of types. + print-llc.c - strings for LLC names added. + print-pfloc.c - various enhancements + print-radius.c - better decoding to strings. + +Wed. November 12, 2003. mcr@sandelman.ottawa.on.ca. Summary for 3.8 release + + changed syntax of -E argument so that multiple SAs can be decrypted + fixes for Digital Unix headers and Documentation + __attribute__ fixes + CDP changes from Terry Kennedy . + IPv6 mobility updates from Kazushi Sugyo + Fixes for ASN.1 decoder for 2.100.3 forms. + Added a count of packets received and processed to clarify numbers. + Incorporated WinDUMP patches for Win32 builds. + PPPoE payload length headers. + Fixes for HP C compiler builds. + Use new pcap_breakloop() and pcap_findalldevs() if we can. + BGP output split into multiple lines. + Fixes to 802.11 decoding. + Fixes to PIM decoder. + SuperH is a CPU that can't handle unaligned access. Many fixes for + unaligned access work. + Fixes to Frame-Relay decoder for Q.933/922 frames. + Clarified when Solaris can do captures as non-root. + Added tests/ subdir for examples/regression tests. + New -U flag. -flush stdout after every packet + New -A flag -print ascii only + support for decoding IS-IS inside Cisco HDLC Frames + more verbosity for tftp decoder + mDNS decoder + new BFD decoder + cross compilation patches + RFC 3561 AODV support. + UDP/TCP pseudo-checksum properly for source-route options. + sanitized all files to modified BSD license + Add support for RFC 2625 IP-over-Fibre Channel. + fixes for DECnet support. + Support RFC 2684 bridging of Ethernet, 802.5 Token Ring, and FDDI. + RFC 2684 encapsulation of BPDUs. + +Tuesday, February 25, 2003. fenner@research.att.com. 3.7.2 release + + Fixed infinite loop when parsing invalid isakmp packets. + (reported by iDefense; already fixed in CVS) + Fixed infinite loop when parsing invalid BGP packets. + Fixed buffer overflow with certain invalid NFS packets. + Pretty-print unprintable network names in 802.11 printer. + Handle truncated nbp (appletalk) packets. + Updated DHCPv6 printer to match draft-ietf-dhc-dhcpv6-22.txt + Print IP protocol name even if we don't have a printer for it. + Print IP protocol name or number for fragments. + Print the whole MPLS label stack, not just the top label. + Print request header and file handle for NFS v3 FSINFO and PATHCONF + requests. + Fix NFS packet truncation checks. + Handle "old" DR-Priority and Bidir-Capable PIM HELLO options. + Handle unknown RADIUS attributes properly. + Fix an ASN.1 parsing error that would cause e.g. the OID + 2.100.3 to be misrepresented as 4.20.3 . + +Monday, January 21, 2002. mcr@sandelman.ottawa.on.ca. Summary for 3.7 release +see http://www.tcpdump.org/cvs-log/2002-01-21.10:16:48.html for commit log. + keyword "ipx" added. + Better OSI/802.2 support on Linux. + IEEE 802.11 support, from clenahan@fortresstech.com, achirica@ttd.net. + LLC SAP support for FDDI/token ring/RFC-1483 style ATM + BXXP protocol was replaced by the BEEP protocol; + improvements to SNAP demux. + Changes to "any" interface documentation. + Documentation on pcap_stats() counters. + Fix a memory leak found by Miklos Szeredi - pcap_ether_aton(). + Added MPLS encapsulation decoding per RFC3032. + DNS dissector handles TKEY, TSIG and IXFR. + adaptive SLIP interface patch from Igor Khristophorov + SMB printing has much improved bounds checks + OUI 0x0000f8 decoded as encapsulated ethernet for Cisco-custom bridging + Zephyr support, from Nickolai Zeldovich . + Solaris - devices with digits in them. Stefan Hudson + IPX socket 0x85be is for Cisco EIGRP over IPX. + Improvements to fragmented ESP handling. + SCTP support from Armando L. Caro Jr. + Linux ARPHDR_ATM support fixed. + Added a "netbeui" keyword, which selects NetBEUI packets. + IPv6 ND improvements, MobileIP dissector, 2292bis-02 for RA option. + Handle ARPHDR_HDLC from Marcus Felipe Pereira . + Handle IPX socket 0x553 -> NetBIOS-over-IPX socket, "nwlink-dgm" + Better Linux libc5 compat. + BIND9 lwres dissector added. + MIPS and SPARC get strict alignment macros (affects print-bgp.c) + Apple LocalTalk LINKTYPE_ reserved. + New time stamp formats documented. + DHCP6 updated to draft-22.txt spec. + ICMP types/codes now accept symbolic names. + Add SIGINFO handler from LBL + encrypted CIPE tunnels in IRIX, from Franz Schaefer . + now we are -Wstrict-prototype clean. + NetBSD DLT_PPP_ETHER; adapted from Martin Husemann . + PPPoE dissector cleaned up. + Support for LocalTalk hardware, from Uns Lider . + In dissector, now the caller prints the IP addresses rather than proto. + cjclark@alum.mit.edu: print the IP proto for non-initial fragments. + LLC frames with a DSAP and LSAP of 0xe0 are IPX frames. + Linux cooked frames with a type value of LINUX_SLL_P_802_3 are IPX. + captures on the "any" device won't be done in promiscuous mode + Token Ring support on DLPI - Onno van der Linden + ARCNet support, from NetBSD. + HSRP dissector, from Julian Cowley . + Handle (GRE-encapsulated) PPTP + added -C option to rotate save file every optarg * 1,000,000 bytes. + support for "vrrp" name - NetBSD, by Klaus Klein . + PPTP support, from Motonori Shindo . + IS-IS over PPP support, from Hannes Gredler . + CNFP support for IPv6,format. Harry Raaymakers . + ESP printing updated to RFC2406. + HP-UX can now handle large number of PPAs. + MSDP printer added. + L2TP dissector improvements from Motonori Shindo. + +Tuesday January 9, 2001. mcr@sandelman.ottawa.on.ca. Summary for 3.6 release + Cleaned up documentation. + Promisc mode fixes for Linux + IPsec changes/cleanups. + Alignment fixes for picky architectures + + Removed dependency on native headers for packet dissectors. + Removed Linux specific headers that were shipped + + libpcap changes provide for exchanging capture files between + systems. Save files now have well known PACKET_ values instead of + depending upon system dependant mappings of DLT_* types. + + Support for computing/checking IP and UDP/TCP checksums. + + Updated autoconf stock files. + + IPv6 improvements: dhcp (draft-15), mobile-ip6, ppp, ospf6, + + Added dissector support for: ISOCLNS, Token Ring, IGMPv3, bxxp, + timed, vrrp, radius, chdlc, cnfp, cdp, IEEE802.1d, raw-AppleTalk + + Added filtering support for: VLANs, ESIS, ISIS + + Improvements to: print-telnet, IPTalk, bootp/dhcp, ECN, PPP, + L2TP, PPPoE + + HP-UX 11.0 -- find the right dlpi device. + Solaris 8 - IPv6 works + Linux - Added support for an "any" device to capture on all interfaces + + Security fixes: buffer overrun audit done. Strcpy replaced with + strlcpy, sprintf replaced with snprintf. + Look for lex problems, and warn about them. + + +v3.5 Fri Jan 28 18:00:00 PST 2000 + +Bill Fenner +- switch to config.h for autoconf +- unify RCSID strings +- Updated PIMv1, PIMv2, DVMRP, IGMP parsers, add Cisco Auto-RP parser +- Really fix the RIP printer +- Fix MAC address -> name translation. +- some -Wall -Wformat fixes +- update makemib to parse much of SMIv2 +- Print TCP sequence # with -vv even if you normally wouldn't +- Print as much of IP/TCP/UDP headers as possible even if truncated. + +itojun@iijlab.net +- -X will make a ascii dump. from netbsd. +- telnet command sequence decoder (ff xx xx). from netbsd. +- print-bgp.c: improve options printing. ugly code exists for + unaligned option parsing (need some fix). +- const poisoning in SMB decoder. +- -Wall -Werror clean checks. +- bring in KAME IPv6/IPsec decoding code. + +Assar Westerlund +- SNMPv2 and SNMPv3 printer +- If compiled with libsmi, tcpdump can load MIBs on the fly to decode + SNMP packets. +- Incorporate NFS parsing code from NetBSD. Adds support for nfsv3. +- portability fixes +- permit building in different directories. + +Ken Hornstein +- bring in code at + /afs/transarc.com/public/afs-contrib/tools/tcpdump for parsing + AFS3 packets + +Andrew Tridgell +- SMB printing code + +Love +- print-rx.c: add code for printing MakeDir and StoreStatus. Also + change date format to the right one. + +Michael C. Richardson +- Created tcpdump.org repository + +v3.4 Sat Jul 25 12:40:55 PDT 1998 + +- Hardwire Linux slip support since it's too hard to detect. + +- Redo configuration of "network" libraries (-lsocket and -lnsl) to + deal with IRIX. Thanks to John Hawkinson (jhawk@mit.edu) + +- Added -a which tries to translate network and broadcast addresses to + names. Suggested by Rob van Nieuwkerk (robn@verdi.et.tudelft.nl) + +- Added a configure option to disable gcc. + +- Added a "raw" packet printer. + +- Not having an interface address is no longer fatal. Requested by John + Hawkinson. + +- Rework signal setup to accommodate Linux. + +- OSPF truncation check fix. Also display the type of OSPF packets + using MD5 authentication. Thanks to Brian Wellington + (bwelling@tis.com) + +- Fix truncation check bugs in the Kerberos printer. Reported by Ezra + Peisach (epeisach@mit.edu) + +- Don't catch SIGHUP when invoked with nohup(1). Thanks to Dave Plonka + (plonka@mfa.com) + +- Specify full install target as a way of detecting if install + directory does not exist. Thanks to Dave Plonka. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Oct 6 04:36:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 35E47FB264; Sun, 6 Oct 2019 04:36:56 +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 46m9n41NLdz4Zt8; Sun, 6 Oct 2019 04:36:56 +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 0E15B1FDEC; Sun, 6 Oct 2019 04:36:56 +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 x964at7Z060506; Sun, 6 Oct 2019 04:36:55 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x964asP6060493; Sun, 6 Oct 2019 04:36:54 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201910060436.x964asP6060493@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sun, 6 Oct 2019 04:36:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353144 - in vendor/tcpdump/dist: . tests X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: in vendor/tcpdump/dist: . tests X-SVN-Commit-Revision: 353144 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 04:36:56 -0000 Author: philip Date: Sun Oct 6 04:36:53 2019 New Revision: 353144 URL: https://svnweb.freebsd.org/changeset/base/353144 Log: Vendor import of tcpdump 4.9.3 Added: vendor/tcpdump/dist/configure.ac vendor/tcpdump/dist/tests/SMBLIST vendor/tcpdump/dist/tests/aoe-oobr-1.out vendor/tcpdump/dist/tests/aoe-oobr-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/babel_update_oobr.out vendor/tcpdump/dist/tests/babel_update_oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/bgp-bgp_capabilities_print-oobr-1.out vendor/tcpdump/dist/tests/bgp-bgp_capabilities_print-oobr-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/bgp-bgp_capabilities_print-oobr-2.out vendor/tcpdump/dist/tests/bgp-bgp_capabilities_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/bgp_mp_reach_nlri-oobr.out vendor/tcpdump/dist/tests/bgp_mp_reach_nlri-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve-2018-10105-segv-sflowprint.out vendor/tcpdump/dist/tests/cve-2018-10105-segv-sflowprint.pcapng (contents, props changed) vendor/tcpdump/dist/tests/cve-2018-10105_smbprint-readofsize1.out vendor/tcpdump/dist/tests/cve-2018-10105_smbprint-readofsize1.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve-2018-10105_smbutil_withoutasan.out vendor/tcpdump/dist/tests/cve-2018-10105_smbutil_withoutasan.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve2015-0261-ipv6.out.stderr vendor/tcpdump/dist/tests/dccp_options-oobr.out vendor/tcpdump/dist/tests/dccp_options-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/eapon2.out vendor/tcpdump/dist/tests/eapon2.pcap (contents, props changed) vendor/tcpdump/dist/tests/esp4.out vendor/tcpdump/dist/tests/frf16_magic_ie-oobr.out vendor/tcpdump/dist/tests/frf16_magic_ie-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/hncp_prefix-oobr.out vendor/tcpdump/dist/tests/hncp_prefix-oobr.pcapng (contents, props changed) vendor/tcpdump/dist/tests/icmp-icmp_print-oobr-1.out vendor/tcpdump/dist/tests/icmp-icmp_print-oobr-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/icmp-icmp_print-oobr-2.out vendor/tcpdump/dist/tests/icmp-icmp_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/ieee802.11_meshhdr-oobr.out vendor/tcpdump/dist/tests/ieee802.11_meshhdr-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/isakmp-ikev1_n_print-oobr.out vendor/tcpdump/dist/tests/isakmp-ikev1_n_print-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/kday1.out.stderr vendor/tcpdump/dist/tests/kday2.out.stderr vendor/tcpdump/dist/tests/kday3.out.stderr vendor/tcpdump/dist/tests/kday4.out.stderr vendor/tcpdump/dist/tests/kday5.out.stderr vendor/tcpdump/dist/tests/kday6.out.stderr vendor/tcpdump/dist/tests/kday7.out.stderr vendor/tcpdump/dist/tests/kday8.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-001.out vendor/tcpdump/dist/tests/kh-addrfail-001.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-001.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-002.out vendor/tcpdump/dist/tests/kh-addrfail-002.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-002.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-003.out vendor/tcpdump/dist/tests/kh-addrfail-003.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-003.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-004.out vendor/tcpdump/dist/tests/kh-addrfail-004.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-004.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-005.out vendor/tcpdump/dist/tests/kh-addrfail-005.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-005.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-006.out vendor/tcpdump/dist/tests/kh-addrfail-006.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-006.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-007.out vendor/tcpdump/dist/tests/kh-addrfail-007.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-007.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-008.out vendor/tcpdump/dist/tests/kh-addrfail-008.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-008.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-009.out vendor/tcpdump/dist/tests/kh-addrfail-009.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-009.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-010.out vendor/tcpdump/dist/tests/kh-addrfail-010.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-010.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-addrfail-011.out vendor/tcpdump/dist/tests/kh-addrfail-011.out.stderr vendor/tcpdump/dist/tests/kh-addrfail-011.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-tcpdump-001.out vendor/tcpdump/dist/tests/kh-tcpdump-001.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-tcpdump-002.out vendor/tcpdump/dist/tests/kh-tcpdump-002.pcap (contents, props changed) vendor/tcpdump/dist/tests/kh-tcpdump-004.pcap (contents, props changed) vendor/tcpdump/dist/tests/l2tp-avp-overflow.out.stderr vendor/tcpdump/dist/tests/ldp-ldp_tlv_print-oobr.out vendor/tcpdump/dist/tests/ldp-ldp_tlv_print-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/lmp-lmp_print_data_link_subobjs-oobr.out vendor/tcpdump/dist/tests/lmp-lmp_print_data_link_subobjs-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/of10_7050sx_bsn-oobr.out vendor/tcpdump/dist/tests/of10_7050sx_bsn-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/ospf6_print_lshdr-oobr.out vendor/tcpdump/dist/tests/ospf6_print_lshdr-oobr.pcapng (contents, props changed) vendor/tcpdump/dist/tests/pcap-invalid-version-1.out.stderr vendor/tcpdump/dist/tests/pcap-invalid-version-2.out.stderr vendor/tcpdump/dist/tests/pcapng-invalid-vers-1.out vendor/tcpdump/dist/tests/pcapng-invalid-vers-1.out.stderr vendor/tcpdump/dist/tests/pcapng-invalid-vers-1.pcapng (contents, props changed) vendor/tcpdump/dist/tests/pcapng-invalid-vers-2.out vendor/tcpdump/dist/tests/pcapng-invalid-vers-2.out.stderr vendor/tcpdump/dist/tests/pcapng-invalid-vers-2.pcapng (contents, props changed) vendor/tcpdump/dist/tests/pktap-heap-overflow.out.stderr vendor/tcpdump/dist/tests/rpl-dao-oobr.out vendor/tcpdump/dist/tests/rpl-dao-oobr.pcapng (contents, props changed) vendor/tcpdump/dist/tests/rsvp-rsvp_obj_print-oobr.out vendor/tcpdump/dist/tests/rsvp-rsvp_obj_print-oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/rx_serviceid_oobr.out vendor/tcpdump/dist/tests/rx_serviceid_oobr.pcap (contents, props changed) vendor/tcpdump/dist/tests/smb.sh (contents, props changed) vendor/tcpdump/dist/tests/smb_print_trans-oobr1.out vendor/tcpdump/dist/tests/smb_print_trans-oobr1.pcapng (contents, props changed) vendor/tcpdump/dist/tests/smb_print_trans-oobr2.out vendor/tcpdump/dist/tests/smb_print_trans-oobr2.pcap (contents, props changed) vendor/tcpdump/dist/tests/vrrp-vrrp_print-oobr-2.out vendor/tcpdump/dist/tests/vrrp-vrrp_print-oobr-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/vrrp-vrrp_print-oobr.out vendor/tcpdump/dist/tests/vrrp-vrrp_print-oobr.pcap (contents, props changed) Deleted: vendor/tcpdump/dist/configure.in vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-1.out vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-1.pcap vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-2.out vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-2.pcap Modified: vendor/tcpdump/dist/CHANGES vendor/tcpdump/dist/CONTRIBUTING vendor/tcpdump/dist/INSTALL.txt vendor/tcpdump/dist/Makefile-devel-adds vendor/tcpdump/dist/Makefile.in vendor/tcpdump/dist/Readme.Win32 vendor/tcpdump/dist/VERSION vendor/tcpdump/dist/addrtoname.c vendor/tcpdump/dist/config.guess vendor/tcpdump/dist/config.h.in vendor/tcpdump/dist/config.sub vendor/tcpdump/dist/configure vendor/tcpdump/dist/netdissect.h vendor/tcpdump/dist/print-802_11.c vendor/tcpdump/dist/print-aoe.c vendor/tcpdump/dist/print-babel.c vendor/tcpdump/dist/print-bfd.c vendor/tcpdump/dist/print-bgp.c vendor/tcpdump/dist/print-bootp.c vendor/tcpdump/dist/print-dccp.c vendor/tcpdump/dist/print-decnet.c vendor/tcpdump/dist/print-domain.c vendor/tcpdump/dist/print-dvmrp.c vendor/tcpdump/dist/print-eigrp.c vendor/tcpdump/dist/print-esp.c vendor/tcpdump/dist/print-fr.c vendor/tcpdump/dist/print-hncp.c vendor/tcpdump/dist/print-icmp.c vendor/tcpdump/dist/print-icmp6.c vendor/tcpdump/dist/print-ipnet.c vendor/tcpdump/dist/print-isakmp.c vendor/tcpdump/dist/print-juniper.c vendor/tcpdump/dist/print-l2tp.c vendor/tcpdump/dist/print-ldp.c vendor/tcpdump/dist/print-lmp.c vendor/tcpdump/dist/print-nfs.c vendor/tcpdump/dist/print-openflow.c vendor/tcpdump/dist/print-ospf.c vendor/tcpdump/dist/print-ospf6.c vendor/tcpdump/dist/print-ppi.c vendor/tcpdump/dist/print-rsvp.c vendor/tcpdump/dist/print-rx.c vendor/tcpdump/dist/print-sflow.c vendor/tcpdump/dist/print-sl.c vendor/tcpdump/dist/print-sll.c vendor/tcpdump/dist/print-smb.c vendor/tcpdump/dist/print-tcp.c vendor/tcpdump/dist/print-vrrp.c vendor/tcpdump/dist/print-vtp.c vendor/tcpdump/dist/print-wb.c vendor/tcpdump/dist/signature.c vendor/tcpdump/dist/smbutil.c vendor/tcpdump/dist/tcpdump.1.in vendor/tcpdump/dist/tcpdump.c vendor/tcpdump/dist/tests/TESTLIST vendor/tcpdump/dist/tests/TESTonce vendor/tcpdump/dist/tests/TESTrun.sh vendor/tcpdump/dist/tests/arp-too-long-tha.pcap vendor/tcpdump/dist/tests/crypto.sh vendor/tcpdump/dist/tests/cve2015-0261-ipv6.out vendor/tcpdump/dist/tests/dns-zlip-1.out vendor/tcpdump/dist/tests/dns-zlip-2.out vendor/tcpdump/dist/tests/dns-zlip-3.out vendor/tcpdump/dist/tests/icmp6_mobileprefix_asan.out vendor/tcpdump/dist/tests/icmp6_nodeinfo_oobr.out vendor/tcpdump/dist/tests/icmpv6.out vendor/tcpdump/dist/tests/icmpv6_opt24-v.out vendor/tcpdump/dist/tests/isis-seg-fault-1-v.sh vendor/tcpdump/dist/tests/juniper_header-heapoverflow.pcap vendor/tcpdump/dist/tests/kday1.out vendor/tcpdump/dist/tests/kday2.out vendor/tcpdump/dist/tests/kday3.out vendor/tcpdump/dist/tests/kday4.out vendor/tcpdump/dist/tests/kday5.out vendor/tcpdump/dist/tests/kday6.out vendor/tcpdump/dist/tests/kday7.out vendor/tcpdump/dist/tests/kday8.out vendor/tcpdump/dist/tests/l2tp-avp-overflow.out vendor/tcpdump/dist/tests/lmp-v.sh vendor/tcpdump/dist/tests/lmpv1_busyloop.out vendor/tcpdump/dist/tests/nflog-e.sh vendor/tcpdump/dist/tests/pcap-invalid-version-1.out vendor/tcpdump/dist/tests/pcap-invalid-version-2.out vendor/tcpdump/dist/tests/pktap-heap-overflow.out vendor/tcpdump/dist/tests/relts-0x80000000.pcap vendor/tcpdump/dist/tests/rpl-19-pickdag.out vendor/tcpdump/dist/tests/rpl-19-pickdagvvv.out vendor/tcpdump/dist/tests/stp-v4-length-sigsegv.pcap vendor/tcpdump/dist/tests/tftp-heapoverflow.pcap vendor/tcpdump/dist/util-print.c Modified: vendor/tcpdump/dist/CHANGES ============================================================================== --- vendor/tcpdump/dist/CHANGES Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/CHANGES Sun Oct 6 04:36:53 2019 (r353144) @@ -1,3 +1,36 @@ +Friday, September 20, 2019, by mcr@sandelman.ca + A huge thank you to Denis, Francois-Xavier and Guy who did much of the heavy lifting. + Summary for 4.9.3 tcpdump release + Fix buffer overflow/overread vulnerabilities: + CVE-2017-16808 (AoE) + CVE-2018-14468 (FrameRelay) + CVE-2018-14469 (IKEv1) + CVE-2018-14470 (BABEL) + CVE-2018-14466 (AFS/RX) + CVE-2018-14461 (LDP) + CVE-2018-14462 (ICMP) + CVE-2018-14465 (RSVP) + CVE-2018-14881 (BGP) + CVE-2018-14464 (LMP) + CVE-2018-14463 (VRRP) + CVE-2018-14467 (BGP) + CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled) + CVE-2018-10105 (SMB - too unreliably reproduced, SMB printing disabled) + CVE-2018-14880 (OSPF6) + CVE-2018-16451 (SMB) + CVE-2018-14882 (RPL) + CVE-2018-16227 (802.11) + CVE-2018-16229 (DCCP) + CVE-2018-16301 (was fixed in libpcap) + CVE-2018-16230 (BGP) + CVE-2018-16452 (SMB) + CVE-2018-16300 (BGP) + CVE-2018-16228 (HNCP) + CVE-2019-15166 (LMP) + CVE-2019-15167 (VRRP) + Fix for cmdline argument/local issues: + CVE-2018-14879 (tcpdump -V) + Sunday September 3, 2017 denis@ovsienko.info Summary for 4.9.2 tcpdump release Do not use getprotobynumber() for protocol name resolution. Do not do Modified: vendor/tcpdump/dist/CONTRIBUTING ============================================================================== --- vendor/tcpdump/dist/CONTRIBUTING Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/CONTRIBUTING Sun Oct 6 04:36:53 2019 (r353144) @@ -31,7 +31,7 @@ Please note that if you know exactly how to solve the would not be too intrusive, it would be best to contribute some development time and open a pull request instead as discussed below. -Still not sure how to do? Feel free to [subscribe](http://www.tcpdump.org/#mailing-lists) +Still not sure how to do? Feel free to [subscribe](https://www.tcpdump.org/#mailing-lists) to the mailing list tcpdump-workers@lists.tcpdump.org and ask! Modified: vendor/tcpdump/dist/INSTALL.txt ============================================================================== --- vendor/tcpdump/dist/INSTALL.txt Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/INSTALL.txt Sun Oct 6 04:36:53 2019 (r353144) @@ -63,7 +63,7 @@ config.guess - autoconf support config.h.in - autoconf input config.sub - autoconf support configure - configure script (run this first) -configure.in - configure script source +configure.ac - configure script source ether.h - Ethernet definitions ethertype.h - Ethernet type value definitions extract.h - alignment definitions Modified: vendor/tcpdump/dist/Makefile-devel-adds ============================================================================== --- vendor/tcpdump/dist/Makefile-devel-adds Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/Makefile-devel-adds Sun Oct 6 04:36:53 2019 (r353144) @@ -2,12 +2,12 @@ # Auto-regenerate configure script or Makefile when things change. # From autoconf.info . Works best with GNU Make. # -${srcdir}/configure: configure.in aclocal.m4 +${srcdir}/configure: configure.ac aclocal.m4 cd ${srcdir} && autoconf # autoheader might not change config.h.in, so touch a stamp file. ${srcdir}/config.h.in: ${srcdir}/stamp-h.in -${srcdir}/stamp-h.in: configure.in aclocal.m4 +${srcdir}/stamp-h.in: configure.ac aclocal.m4 cd ${srcdir} && autoheader echo timestamp > ${srcdir}/stamp-h.in Modified: vendor/tcpdump/dist/Makefile.in ============================================================================== --- vendor/tcpdump/dist/Makefile.in Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/Makefile.in Sun Oct 6 04:36:53 2019 (r353144) @@ -334,7 +334,7 @@ EXTRA_DIST = \ config.h.in \ config.sub \ configure \ - configure.in \ + configure.ac \ install-sh \ lbl/os-osf4.h \ lbl/os-solaris2.h \ @@ -366,7 +366,7 @@ EXTRA_DIST = \ win32/prj/WinDump.vcproj \ win32/src/ether_ntohost.c -TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print` +TEST_DIST= `git ls-files tests | grep -v 'tests/\..*'` all: $(PROG) $(LIBNETDISSECT) @@ -438,7 +438,7 @@ distclean: rm -rf autom4te.cache tests/DIFF tests/NEW check: tcpdump - (cd tests && ./TESTrun.sh) + (mkdir -p tests && SRCDIR=`cd ${srcdir}; pwd` && export SRCDIR && $$SRCDIR/tests/TESTrun.sh ) extags: $(TAGFILES) ctags $(TAGFILES) Modified: vendor/tcpdump/dist/Readme.Win32 ============================================================================== --- vendor/tcpdump/dist/Readme.Win32 Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/Readme.Win32 Sun Oct 6 04:36:53 2019 (r353144) @@ -7,7 +7,7 @@ Software Development Kit (SDK), that contains some nec for IPv6 support. You can download it from http://www.microsoft.com/sdk - the WinPcap source code, that includes libpcap for win32. Download it from http://winpcap.polito.it or download libpcap sources from -http://www.tcpdump.org and follow the instructions in the README.Win32 +https://www.tcpdump.org and follow the instructions in the README.Win32 file. First, extract tcpdump and WinPcap in the same folder, and build WinPcap. Modified: vendor/tcpdump/dist/VERSION ============================================================================== --- vendor/tcpdump/dist/VERSION Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/VERSION Sun Oct 6 04:36:53 2019 (r353144) @@ -1 +1 @@ -4.9.2 +4.9.3 Modified: vendor/tcpdump/dist/addrtoname.c ============================================================================== --- vendor/tcpdump/dist/addrtoname.c Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/addrtoname.c Sun Oct 6 04:36:53 2019 (r353144) @@ -120,7 +120,7 @@ win32_gethostbyaddr(const char *addr, int len, int typ hname, sizeof(hname), NULL, 0, 0)) { return NULL; } else { - strcpy(host.h_name, hname); + strlcpy(host.h_name, hname, NI_MAXHOST); return &host; } break; @@ -1226,10 +1226,7 @@ dnaddr_string(netdissect_options *ndo, u_short dnaddr) tp->addr = dnaddr; tp->nxt = newhnamemem(ndo); - if (ndo->ndo_nflag) - tp->name = dnnum_string(ndo, dnaddr); - else - tp->name = dnname_string(ndo, dnaddr); + tp->name = dnnum_string(ndo, dnaddr); return(tp->name); } Modified: vendor/tcpdump/dist/config.guess ============================================================================== --- vendor/tcpdump/dist/config.guess Sun Oct 6 04:34:12 2019 (r353143) +++ vendor/tcpdump/dist/config.guess Sun Oct 6 04:36:53 2019 (r353144) @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2015-02-23' +timestamp='2018-07-06' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2015-02-23' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ timestamp='2015-02-23' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -101,15 +101,15 @@ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmd trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; +case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEAS UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,27 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -205,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -216,39 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -265,63 +291,54 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -333,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -360,38 +377,38 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + eval "$set_cc_for_build" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -400,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -429,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -475,23 +492,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -517,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -544,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -556,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -574,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -588,7 +605,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -597,18 +614,18 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -623,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -677,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -694,23 +711,23 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -735,11 +752,11 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -748,7 +765,7 @@ EOF *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -756,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -783,127 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys + echo "$UNAME_MACHINE"-pc-msys exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Oct 6 08:47:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 16:17:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 18:38:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 19:11:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 20:36:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E3F31330F8; Sun, 6 Oct 2019 20:36:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mb4B6mr8z3JN5; Sun, 6 Oct 2019 20:36:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC49B3CCF; Sun, 6 Oct 2019 20:36:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x96KaQO6025822; Sun, 6 Oct 2019 20:36:26 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x96KaQA1025818; Sun, 6 Oct 2019 20:36:26 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201910062036.x96KaQA1025818@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 6 Oct 2019 20:36:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353148 - in stable/12: contrib/netbsd-tests/lib/libc/sys tests/sys/posixshm tests/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: jilles X-SVN-Commit-Paths: in stable/12: contrib/netbsd-tests/lib/libc/sys tests/sys/posixshm tests/sys/vm X-SVN-Commit-Revision: 353148 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Oct 2019 20:36:27 -0000 Author: jilles Date: Sun Oct 6 20:36:25 2019 New Revision: 353148 URL: https://svnweb.freebsd.org/changeset/base/353148 Log: MFC r352495,r352869: Adjust tests for page fault changes in r353102 PR: 211924 Added: stable/12/tests/sys/vm/page_fault_signal.c - copied, changed from r352495, head/tests/sys/vm/page_fault_signal.c Modified: stable/12/contrib/netbsd-tests/lib/libc/sys/t_mmap.c stable/12/tests/sys/posixshm/posixshm_test.c stable/12/tests/sys/vm/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/netbsd-tests/lib/libc/sys/t_mmap.c ============================================================================== --- stable/12/contrib/netbsd-tests/lib/libc/sys/t_mmap.c Sun Oct 6 19:11:01 2019 (r353147) +++ stable/12/contrib/netbsd-tests/lib/libc/sys/t_mmap.c Sun Oct 6 20:36:25 2019 (r353148) @@ -480,10 +480,6 @@ ATF_TC_BODY(mmap_truncate_signal, tc) int fd, sta; pid_t pid; -#ifdef __FreeBSD__ - atf_tc_expect_fail("testcase fails with SIGSEGV on FreeBSD; bug # 211924"); -#endif - fd = open(path, O_RDWR | O_CREAT, 0700); if (fd < 0) Modified: stable/12/tests/sys/posixshm/posixshm_test.c ============================================================================== --- stable/12/tests/sys/posixshm/posixshm_test.c Sun Oct 6 19:11:01 2019 (r353147) +++ stable/12/tests/sys/posixshm/posixshm_test.c Sun Oct 6 20:36:25 2019 (r353148) @@ -445,7 +445,7 @@ ATF_TC_BODY(object_resize, tc) /* * The previous ftruncate(2) shrunk the backing object * so that this address is no longer valid, so reading - * from it should trigger a SIGSEGV. + * from it should trigger a SIGBUS. */ c = page[pagesize]; fprintf(stderr, "child: page 1: '%c'\n", c); @@ -455,7 +455,7 @@ ATF_TC_BODY(object_resize, tc) if (wait(&status) < 0) atf_tc_fail("wait failed; errno=%d", errno); - if (!WIFSIGNALED(status) || WTERMSIG(status) != SIGSEGV) + if (!WIFSIGNALED(status) || WTERMSIG(status) != SIGBUS) atf_tc_fail("child terminated with status %x", status); /* Grow the object back to 2 pages. */ Modified: stable/12/tests/sys/vm/Makefile ============================================================================== --- stable/12/tests/sys/vm/Makefile Sun Oct 6 19:11:01 2019 (r353147) +++ stable/12/tests/sys/vm/Makefile Sun Oct 6 20:36:25 2019 (r353148) @@ -5,6 +5,7 @@ PACKAGE= tests TESTSDIR= ${TESTSBASE}/sys/vm ATF_TESTS_C+= mlock_test \ - mmap_test + mmap_test \ + page_fault_signal .include Copied and modified: stable/12/tests/sys/vm/page_fault_signal.c (from r352495, head/tests/sys/vm/page_fault_signal.c) ============================================================================== --- head/tests/sys/vm/page_fault_signal.c Wed Sep 18 21:00:32 2019 (r352495, copy source) +++ stable/12/tests/sys/vm/page_fault_signal.c Sun Oct 6 20:36:25 2019 (r353148) @@ -129,7 +129,6 @@ ATF_TC_BODY(page_fault_signal__bus_objerr_1, tc) int fd; int sz; - atf_tc_expect_fail("bug 211924"); sz = getpagesize(); fd = shm_open(SHM_ANON, O_RDWR | O_CREAT, 0600); ATF_REQUIRE(fd != -1); @@ -153,7 +152,6 @@ ATF_TC_BODY(page_fault_signal__bus_objerr_2, tc) int r; int sz; - atf_tc_expect_fail("bug 211924"); sz = getpagesize(); fd = shm_open(SHM_ANON, O_RDWR | O_CREAT, 0600); ATF_REQUIRE(fd != -1); From owner-svn-src-all@freebsd.org Sun Oct 6 22:13:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:14:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:16:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:16:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:17:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:17:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:18:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Sun Oct 6 22:29:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 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-all@freebsd.org Mon Oct 7 01:03:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1C5681396FC; Mon, 7 Oct 2019 01:03:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mj02749vz448Z; Mon, 7 Oct 2019 01:03:14 +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 BDF626E14; Mon, 7 Oct 2019 01:03:14 +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 x9713ECd085920; Mon, 7 Oct 2019 01:03:14 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9713EwQ085919; Mon, 7 Oct 2019 01:03:14 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910070103.x9713EwQ085919@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 01:03:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353157 - in stable: 11/sys/net 12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/net 12/sys/net X-SVN-Commit-Revision: 353157 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 01:03:15 -0000 Author: kevans Date: Mon Oct 7 01:03:14 2019 New Revision: 353157 URL: https://svnweb.freebsd.org/changeset/base/353157 Log: MFC r353103: tuntap(4): loosen up tunclose restrictions Realistically, this cannot work. We don't allow the tun to be opened twice, so it must be done via fd passing, fork, dup, some mechanism like these. Applications demonstrably do not enforce strict ordering when they're handing off tun devices, so the parent closing before the child will easily leave the tun/tap device in a bad state where it can't be destroyed and a confused user because they did nothing wrong. Concede that we can't leave the tun/tap device in this kind of state because of software not playing the TUNSIFPID game, but it is still good to find and fix this kind of thing to keep ifconfig(8) up-to-date and help ensure good discipline in tun handling. Modified: stable/12/sys/net/if_tun.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/net/if_tun.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/net/if_tun.c ============================================================================== --- stable/12/sys/net/if_tun.c Sun Oct 6 22:29:02 2019 (r353156) +++ stable/12/sys/net/if_tun.c Mon Oct 7 01:03:14 2019 (r353157) @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -493,22 +494,28 @@ tunopen(struct cdev *dev, int flag, int mode, struct t static int tunclose(struct cdev *dev, int foo, int bar, struct thread *td) { + struct proc *p; struct tun_softc *tp; struct ifnet *ifp; + p = td->td_proc; tp = dev->si_drv1; ifp = TUN2IFP(tp); mtx_lock(&tp->tun_mtx); + /* - * Simply close the device if this isn't the controlling process. This - * may happen if, for instance, the tunnel has been handed off to - * another process. The original controller should be able to close it - * without putting us into an inconsistent state. + * Realistically, we can't be obstinate here. This only means that the + * tuntap device was closed out of order, and the last closer wasn't the + * controller. These are still good to know about, though, as software + * should avoid multiple processes with a tuntap device open and + * ill-defined transfer of control (e.g., handoff, TUNSIFPID, close in + * parent). */ - if (td->td_proc->p_pid != tp->tun_pid) { - mtx_unlock(&tp->tun_mtx); - return (0); + if (p->p_pid != tp->tun_pid) { + log(LOG_INFO, + "pid %d (%s), %s: tun/tap protocol violation, non-controlling process closed last.\n", + p->p_pid, p->p_comm, dev->si_name); } /* From owner-svn-src-all@freebsd.org Mon Oct 7 01:03:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C36E41396F8; Mon, 7 Oct 2019 01:03:14 +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 46mj024c4qz448Y; Mon, 7 Oct 2019 01:03:14 +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 68B236E13; Mon, 7 Oct 2019 01:03:14 +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 x9713EAM085914; Mon, 7 Oct 2019 01:03:14 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9713EVl085913; Mon, 7 Oct 2019 01:03:14 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910070103.x9713EVl085913@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 01:03:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353157 - in stable: 11/sys/net 12/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/net 12/sys/net X-SVN-Commit-Revision: 353157 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 01:03:14 -0000 Author: kevans Date: Mon Oct 7 01:03:14 2019 New Revision: 353157 URL: https://svnweb.freebsd.org/changeset/base/353157 Log: MFC r353103: tuntap(4): loosen up tunclose restrictions Realistically, this cannot work. We don't allow the tun to be opened twice, so it must be done via fd passing, fork, dup, some mechanism like these. Applications demonstrably do not enforce strict ordering when they're handing off tun devices, so the parent closing before the child will easily leave the tun/tap device in a bad state where it can't be destroyed and a confused user because they did nothing wrong. Concede that we can't leave the tun/tap device in this kind of state because of software not playing the TUNSIFPID game, but it is still good to find and fix this kind of thing to keep ifconfig(8) up-to-date and help ensure good discipline in tun handling. Modified: stable/11/sys/net/if_tun.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/net/if_tun.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/net/if_tun.c ============================================================================== --- stable/11/sys/net/if_tun.c Sun Oct 6 22:29:02 2019 (r353156) +++ stable/11/sys/net/if_tun.c Mon Oct 7 01:03:14 2019 (r353157) @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -493,22 +494,28 @@ tunopen(struct cdev *dev, int flag, int mode, struct t static int tunclose(struct cdev *dev, int foo, int bar, struct thread *td) { + struct proc *p; struct tun_softc *tp; struct ifnet *ifp; + p = td->td_proc; tp = dev->si_drv1; ifp = TUN2IFP(tp); mtx_lock(&tp->tun_mtx); + /* - * Simply close the device if this isn't the controlling process. This - * may happen if, for instance, the tunnel has been handed off to - * another process. The original controller should be able to close it - * without putting us into an inconsistent state. + * Realistically, we can't be obstinate here. This only means that the + * tuntap device was closed out of order, and the last closer wasn't the + * controller. These are still good to know about, though, as software + * should avoid multiple processes with a tuntap device open and + * ill-defined transfer of control (e.g., handoff, TUNSIFPID, close in + * parent). */ - if (td->td_proc->p_pid != tp->tun_pid) { - mtx_unlock(&tp->tun_mtx); - return (0); + if (p->p_pid != tp->tun_pid) { + log(LOG_INFO, + "pid %d (%s), %s: tun/tap protocol violation, non-controlling process closed last.\n", + p->p_pid, p->p_comm, dev->si_name); } /* From owner-svn-src-all@freebsd.org Mon Oct 7 02:36:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 02:57:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F05613B8DB; Mon, 7 Oct 2019 02:57:01 +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 46mlWK2Ywfz48Hk; Mon, 7 Oct 2019 02:57:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 37425817B; Mon, 7 Oct 2019 02:57:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x972v1IR050852; Mon, 7 Oct 2019 02:57:01 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x972v1s5050851; Mon, 7 Oct 2019 02:57:01 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201910070257.x972v1s5050851@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 02:57:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353159 - releng/12.1/sys/net X-SVN-Group: releng X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: releng/12.1/sys/net X-SVN-Commit-Revision: 353159 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 02:57:01 -0000 Author: kevans Date: Mon Oct 7 02:57:00 2019 New Revision: 353159 URL: https://svnweb.freebsd.org/changeset/base/353159 Log: MFS r353157: tuntap(4): loosen up tunclose restrictions Realistically, this cannot work. We don't allow the tun to be opened twice, so it must be done via fd passing, fork, dup, some mechanism like these. Applications demonstrably do not enforce strict ordering when they're handing off tun devices, so the parent closing before the child will easily leave the tun/tap device in a bad state where it can't be destroyed and a confused user because they did nothing wrong. Concede that we can't leave the tun/tap device in this kind of state because of software not playing the TUNSIFPID game, but it is still good to find and fix this kind of thing to keep ifconfig(8) up-to-date and help ensure good discipline in tun handling. Approved by: re (gjb) Modified: releng/12.1/sys/net/if_tun.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/net/if_tun.c ============================================================================== --- releng/12.1/sys/net/if_tun.c Mon Oct 7 02:36:42 2019 (r353158) +++ releng/12.1/sys/net/if_tun.c Mon Oct 7 02:57:00 2019 (r353159) @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -493,22 +494,28 @@ tunopen(struct cdev *dev, int flag, int mode, struct t static int tunclose(struct cdev *dev, int foo, int bar, struct thread *td) { + struct proc *p; struct tun_softc *tp; struct ifnet *ifp; + p = td->td_proc; tp = dev->si_drv1; ifp = TUN2IFP(tp); mtx_lock(&tp->tun_mtx); + /* - * Simply close the device if this isn't the controlling process. This - * may happen if, for instance, the tunnel has been handed off to - * another process. The original controller should be able to close it - * without putting us into an inconsistent state. + * Realistically, we can't be obstinate here. This only means that the + * tuntap device was closed out of order, and the last closer wasn't the + * controller. These are still good to know about, though, as software + * should avoid multiple processes with a tuntap device open and + * ill-defined transfer of control (e.g., handoff, TUNSIFPID, close in + * parent). */ - if (td->td_proc->p_pid != tp->tun_pid) { - mtx_unlock(&tp->tun_mtx); - return (0); + if (p->p_pid != tp->tun_pid) { + log(LOG_INFO, + "pid %d (%s), %s: tun/tap protocol violation, non-controlling process closed last.\n", + p->p_pid, p->p_comm, dev->si_name); } /* From owner-svn-src-all@freebsd.org Mon Oct 7 03:05:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 03:28:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 03:37:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 04:06:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 04:19:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 04:22:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 04:44:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F1D3913DD61; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mntp6CQwz4FfB; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B89539574; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x974i2Wk016717; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x974i2lx016716; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201910070444.x974i2lx016716@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 7 Oct 2019 04:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353164 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 353164 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:44:03 -0000 Author: cy Date: Mon Oct 7 04:44:01 2019 New Revision: 353164 URL: https://svnweb.freebsd.org/changeset/base/353164 Log: MFC r353116: Add missing definition in DEBUG code. Modified: stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) stable/11/ (props changed) Modified: stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:22:03 2019 (r353163) +++ stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:44:01 2019 (r353164) @@ -1323,7 +1323,7 @@ dumptree(rnh) void test_addr(rnh, pref, addr, limit) ipf_rdx_head_t *rnh; - int pref; + int pref, limit; addrfamily_t *addr; { static int extras[14] = { 0, -1, 1, 3, 5, 8, 9, From owner-svn-src-all@freebsd.org Mon Oct 7 04:44:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8CD9213DD6C; Mon, 7 Oct 2019 04:44:03 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mntq2Cphz4FfJ; Mon, 7 Oct 2019 04:44:03 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2F29B9575; Mon, 7 Oct 2019 04:44:03 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x974i2Z8016723; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x974i2t1016722; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201910070444.x974i2t1016722@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 7 Oct 2019 04:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353164 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 353164 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:44:03 -0000 Author: cy Date: Mon Oct 7 04:44:01 2019 New Revision: 353164 URL: https://svnweb.freebsd.org/changeset/base/353164 Log: MFC r353116: Add missing definition in DEBUG code. Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/11/ (props changed) stable/12/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:22:03 2019 (r353163) +++ stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:44:01 2019 (r353164) @@ -1321,7 +1321,7 @@ dumptree(rnh) void test_addr(rnh, pref, addr, limit) ipf_rdx_head_t *rnh; - int pref; + int pref, limit; addrfamily_t *addr; { static int extras[14] = { 0, -1, 1, 3, 5, 8, 9, From owner-svn-src-all@freebsd.org Mon Oct 7 04:44:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A45B013DD5C; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mntp3qwsz4Ff9; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 685B69573; Mon, 7 Oct 2019 04:44:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x974i2bi016711; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x974i22H016710; Mon, 7 Oct 2019 04:44:02 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201910070444.x974i22H016710@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 7 Oct 2019 04:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353164 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Group: stable-11 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 353164 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 04:44:02 -0000 Author: cy Date: Mon Oct 7 04:44:01 2019 New Revision: 353164 URL: https://svnweb.freebsd.org/changeset/base/353164 Log: MFC r353116: Add missing definition in DEBUG code. Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c stable/12/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) stable/12/ (props changed) Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:22:03 2019 (r353163) +++ stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Mon Oct 7 04:44:01 2019 (r353164) @@ -1323,7 +1323,7 @@ dumptree(rnh) void test_addr(rnh, pref, addr, limit) ipf_rdx_head_t *rnh; - int pref; + int pref, limit; addrfamily_t *addr; { static int extras[14] = { 0, -1, 1, 3, 5, 8, 9, From owner-svn-src-all@freebsd.org Mon Oct 7 07:37:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 07:42:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 07:54:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 08:00:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 08:09:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 04EA7FBAA2; Mon, 7 Oct 2019 08:09:40 +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 46mtS36KMTz4RWC; Mon, 7 Oct 2019 08:09:39 +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 B7D2CB8B7; Mon, 7 Oct 2019 08:09:39 +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 x9789d3p034676; Mon, 7 Oct 2019 08:09:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9789df9034675; Mon, 7 Oct 2019 08:09:39 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070809.x9789df9034675@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 08:09:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353169 - stable/12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/controller X-SVN-Commit-Revision: 353169 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:09:40 -0000 Author: hselasky Date: Mon Oct 7 08:09:39 2019 New Revision: 353169 URL: https://svnweb.freebsd.org/changeset/base/353169 Log: MFC r352554: The maximum TD size is 31 and not 15. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/xhci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.c Mon Oct 7 08:00:54 2019 (r353168) +++ stable/12/sys/dev/usb/controller/xhci.c Mon Oct 7 08:09:39 2019 (r353169) @@ -2003,7 +2003,7 @@ restart: /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last data TRB in the chain */ - td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); + td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(31)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); /* remove CHAIN-BIT from last LINK TRB */ td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-all@freebsd.org Mon Oct 7 08:10:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ACEDFFBB60; Mon, 7 Oct 2019 08:10:27 +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 46mtSz44G1z4Rjh; Mon, 7 Oct 2019 08:10:27 +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 6F006B8BC; Mon, 7 Oct 2019 08:10:27 +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 x978ARD1035006; Mon, 7 Oct 2019 08:10:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978ARf0035005; Mon, 7 Oct 2019 08:10:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070810.x978ARf0035005@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 08:10:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353170 - stable/11/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/controller X-SVN-Commit-Revision: 353170 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:10:27 -0000 Author: hselasky Date: Mon Oct 7 08:10:26 2019 New Revision: 353170 URL: https://svnweb.freebsd.org/changeset/base/353170 Log: MFC r352554: The maximum TD size is 31 and not 15. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/xhci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.c Mon Oct 7 08:09:39 2019 (r353169) +++ stable/11/sys/dev/usb/controller/xhci.c Mon Oct 7 08:10:26 2019 (r353170) @@ -2001,7 +2001,7 @@ restart: /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last data TRB in the chain */ - td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); + td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(31)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); /* remove CHAIN-BIT from last LINK TRB */ td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-all@freebsd.org Mon Oct 7 08:11:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C681FBBF7; Mon, 7 Oct 2019 08:11:13 +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 46mtTr6TBcz4S0Q; Mon, 7 Oct 2019 08:11:12 +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 C159FB8F8; Mon, 7 Oct 2019 08:11:12 +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 x978BCbm039390; Mon, 7 Oct 2019 08:11:12 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978BCw3039389; Mon, 7 Oct 2019 08:11:12 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070811.x978BCw3039389@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 08:11:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353171 - stable/10/sys/dev/usb/controller X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/usb/controller X-SVN-Commit-Revision: 353171 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:11:13 -0000 Author: hselasky Date: Mon Oct 7 08:11:12 2019 New Revision: 353171 URL: https://svnweb.freebsd.org/changeset/base/353171 Log: MFC r352554: The maximum TD size is 31 and not 15. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/controller/xhci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/10/sys/dev/usb/controller/xhci.c Mon Oct 7 08:10:26 2019 (r353170) +++ stable/10/sys/dev/usb/controller/xhci.c Mon Oct 7 08:11:12 2019 (r353171) @@ -2007,7 +2007,7 @@ restart: /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last data TRB in the chain */ - td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); + td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(31)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); /* remove CHAIN-BIT from last LINK TRB */ td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-all@freebsd.org Mon Oct 7 08:11:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 08:12:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46D13FBEC8; Mon, 7 Oct 2019 08:12:29 +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 46mtWK1BMFz4SKJ; Mon, 7 Oct 2019 08:12:29 +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 0C20ABA6F; Mon, 7 Oct 2019 08:12: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 x978CSpK040364; Mon, 7 Oct 2019 08:12:28 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978CS7T040363; Mon, 7 Oct 2019 08:12:28 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070812.x978CS7T040363@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 08:12:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353173 - stable/12/sys/dev/usb X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb X-SVN-Commit-Revision: 353173 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:12:29 -0000 Author: hselasky Date: Mon Oct 7 08:12:28 2019 New Revision: 353173 URL: https://svnweb.freebsd.org/changeset/base/353173 Log: MFC r352555: Increase the maximum user-space buffer size from 256kBytes to 32MBytes for libusb. This is useful for speeding up large data transfers while reducing the interrupt rate. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/usb_ioctl.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/usb_ioctl.h ============================================================================== --- stable/12/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:11:49 2019 (r353172) +++ stable/12/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:12:28 2019 (r353173) @@ -224,7 +224,7 @@ struct usb_fs_uninit { } USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_open { -#define USB_FS_MAX_BUFSIZE (1 << 18) +#define USB_FS_MAX_BUFSIZE (1 << 25) /* 32 MBytes */ uint32_t max_bufsize; #define USB_FS_MAX_FRAMES (1U << 12) #define USB_FS_MAX_FRAMES_PRE_SCALE (1U << 31) /* for ISOCHRONOUS transfers */ From owner-svn-src-all@freebsd.org Mon Oct 7 08:13:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4AFD7FBFC7; Mon, 7 Oct 2019 08:13:11 +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 46mtX71HhTz4SX9; Mon, 7 Oct 2019 08:13:11 +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 0FFB3BA74; Mon, 7 Oct 2019 08:13:11 +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 x978DAZ8040465; Mon, 7 Oct 2019 08:13:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978DAMu040464; Mon, 7 Oct 2019 08:13:10 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070813.x978DAMu040464@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 08:13:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353174 - stable/11/sys/dev/usb X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb X-SVN-Commit-Revision: 353174 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:13:11 -0000 Author: hselasky Date: Mon Oct 7 08:13:10 2019 New Revision: 353174 URL: https://svnweb.freebsd.org/changeset/base/353174 Log: MFC r352555: Increase the maximum user-space buffer size from 256kBytes to 32MBytes for libusb. This is useful for speeding up large data transfers while reducing the interrupt rate. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/usb_ioctl.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/usb_ioctl.h ============================================================================== --- stable/11/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:12:28 2019 (r353173) +++ stable/11/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:13:10 2019 (r353174) @@ -220,7 +220,7 @@ struct usb_fs_uninit { } USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_open { -#define USB_FS_MAX_BUFSIZE (1 << 18) +#define USB_FS_MAX_BUFSIZE (1 << 25) /* 32 MBytes */ uint32_t max_bufsize; #define USB_FS_MAX_FRAMES (1U << 12) #define USB_FS_MAX_FRAMES_PRE_SCALE (1U << 31) /* for ISOCHRONOUS transfers */ From owner-svn-src-all@freebsd.org Mon Oct 7 08:13:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5AADFC08B; Mon, 7 Oct 2019 08:13:50 +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 46mtXt3tK2z4Sg9; Mon, 7 Oct 2019 08:13:50 +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 69F43BA76; Mon, 7 Oct 2019 08:13:50 +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 x978Dopc040557; Mon, 7 Oct 2019 08:13:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978DokM040556; Mon, 7 Oct 2019 08:13:50 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070813.x978DokM040556@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 08:13:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353175 - stable/10/sys/dev/usb X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/usb X-SVN-Commit-Revision: 353175 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:13:50 -0000 Author: hselasky Date: Mon Oct 7 08:13:49 2019 New Revision: 353175 URL: https://svnweb.freebsd.org/changeset/base/353175 Log: MFC r352555: Increase the maximum user-space buffer size from 256kBytes to 32MBytes for libusb. This is useful for speeding up large data transfers while reducing the interrupt rate. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/usb_ioctl.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/usb_ioctl.h ============================================================================== --- stable/10/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:13:10 2019 (r353174) +++ stable/10/sys/dev/usb/usb_ioctl.h Mon Oct 7 08:13:49 2019 (r353175) @@ -218,7 +218,7 @@ struct usb_fs_uninit { } USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_open { -#define USB_FS_MAX_BUFSIZE (1 << 18) +#define USB_FS_MAX_BUFSIZE (1 << 25) /* 32 MBytes */ uint32_t max_bufsize; #define USB_FS_MAX_FRAMES (1U << 12) #define USB_FS_MAX_FRAMES_PRE_SCALE (1U << 31) /* for ISOCHRONOUS transfers */ From owner-svn-src-all@freebsd.org Mon Oct 7 08:14:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 08:24:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43171FC56D; Mon, 7 Oct 2019 08:24:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mtmm0vSjz4TYb; Mon, 7 Oct 2019 08:24:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 02B87BDD9; Mon, 7 Oct 2019 08:24:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x978O7cm047557; Mon, 7 Oct 2019 08:24:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978O7YX047554; Mon, 7 Oct 2019 08:24:07 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070824.x978O7YX047554@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 08:24:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353177 - in stable/12/sys/dev/usb: . controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/usb: . controller X-SVN-Commit-Revision: 353177 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:24:08 -0000 Author: hselasky Date: Mon Oct 7 08:24:07 2019 New Revision: 353177 URL: https://svnweb.freebsd.org/changeset/base/353177 Log: MFC r352556: Add quirk for XHCI(4) controllers to support USB control transfers above 1Kbyte. It might look like some XHCI(4) controllers do not support when the USB control transfer is split using a link TRB. The next NORMAL TRB after the link TRB is simply failing with XHCI error code 4. The quirk ensures we allocate a 64Kbyte buffer so that the data stage TRB is not broken with a link TRB. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/xhci.c stable/12/sys/dev/usb/usb_bus.h stable/12/sys/dev/usb/usb_transfer.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.c Mon Oct 7 08:14:45 2019 (r353176) +++ stable/12/sys/dev/usb/controller/xhci.c Mon Oct 7 08:24:07 2019 (r353177) @@ -601,6 +601,9 @@ xhci_init(struct xhci_softc *sc, device_t self, uint8_ device_printf(self, "%d bytes context size, %d-bit DMA\n", 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; + temp = XREAD4(sc, capa, XHCI_HCSPARAMS1); /* get number of device slots */ Modified: stable/12/sys/dev/usb/usb_bus.h ============================================================================== --- stable/12/sys/dev/usb/usb_bus.h Mon Oct 7 08:14:45 2019 (r353176) +++ stable/12/sys/dev/usb/usb_bus.h Mon Oct 7 08:24:07 2019 (r353177) @@ -131,6 +131,7 @@ struct usb_bus { uint8_t do_probe; /* set if USB should be re-probed */ uint8_t no_explore; /* don't explore USB ports */ uint8_t dma_bits; /* number of DMA address lines */ + uint8_t control_ep_quirk; /* need 64kByte buffer for data stage */ }; #endif /* _USB_BUS_H_ */ Modified: stable/12/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/12/sys/dev/usb/usb_transfer.c Mon Oct 7 08:14:45 2019 (r353176) +++ stable/12/sys/dev/usb/usb_transfer.c Mon Oct 7 08:24:07 2019 (r353177) @@ -106,6 +106,33 @@ static const struct usb_config usb_control_ep_cfg[USB_ }, }; +static const struct usb_config usb_control_ep_quirk_cfg[USB_CTRL_XFER_MAX] = { + + /* This transfer is used for generic control endpoint transfers */ + + [0] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control endpoint */ + .direction = UE_DIR_ANY, + .bufsize = 65535, /* bytes */ + .callback = &usb_request_callback, + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + /* This transfer is used for generic clear stall only */ + + [1] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control pipe */ + .direction = UE_DIR_ANY, + .bufsize = sizeof(struct usb_device_request), + .callback = &usb_do_clear_stall_callback, + .timeout = 1000, /* 1 second */ + .interval = 50, /* 50ms */ + .usb_mode = USB_MODE_HOST, + }, +}; + /* function prototypes */ static void usbd_update_max_frame_size(struct usb_xfer *); @@ -1021,7 +1048,8 @@ usbd_transfer_setup(struct usb_device *udev, * context, else there is a chance of * deadlock! */ - if (setup_start == usb_control_ep_cfg) + if (setup_start == usb_control_ep_cfg || + setup_start == usb_control_ep_quirk_cfg) info->done_p = USB_BUS_CONTROL_XFER_PROC(udev->bus); else if (xfer_mtx == &Giant) @@ -3149,7 +3177,8 @@ repeat: */ iface_index = 0; if (usbd_transfer_setup(udev, &iface_index, - udev->ctrl_xfer, usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, + udev->ctrl_xfer, udev->bus->control_ep_quirk ? + usb_control_ep_quirk_cfg : usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, &udev->device_mtx)) { DPRINTFN(0, "could not setup default " "USB transfer\n"); From owner-svn-src-all@freebsd.org Mon Oct 7 08:24:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DBD37FC613; Mon, 7 Oct 2019 08:24:47 +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 46mtnW5Lrvz4Tgv; Mon, 7 Oct 2019 08:24:47 +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 9BAEEBDDB; Mon, 7 Oct 2019 08:24:47 +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 x978OlUY047775; Mon, 7 Oct 2019 08:24:47 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978Olpi047772; Mon, 7 Oct 2019 08:24:47 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070824.x978Olpi047772@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 08:24:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353178 - in stable/11/sys/dev/usb: . controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/usb: . controller X-SVN-Commit-Revision: 353178 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:24:47 -0000 Author: hselasky Date: Mon Oct 7 08:24:46 2019 New Revision: 353178 URL: https://svnweb.freebsd.org/changeset/base/353178 Log: MFC r352556: Add quirk for XHCI(4) controllers to support USB control transfers above 1Kbyte. It might look like some XHCI(4) controllers do not support when the USB control transfer is split using a link TRB. The next NORMAL TRB after the link TRB is simply failing with XHCI error code 4. The quirk ensures we allocate a 64Kbyte buffer so that the data stage TRB is not broken with a link TRB. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/xhci.c stable/11/sys/dev/usb/usb_bus.h stable/11/sys/dev/usb/usb_transfer.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.c Mon Oct 7 08:24:07 2019 (r353177) +++ stable/11/sys/dev/usb/controller/xhci.c Mon Oct 7 08:24:46 2019 (r353178) @@ -599,6 +599,9 @@ xhci_init(struct xhci_softc *sc, device_t self, uint8_ device_printf(self, "%d bytes context size, %d-bit DMA\n", 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; + temp = XREAD4(sc, capa, XHCI_HCSPARAMS1); /* get number of device slots */ Modified: stable/11/sys/dev/usb/usb_bus.h ============================================================================== --- stable/11/sys/dev/usb/usb_bus.h Mon Oct 7 08:24:07 2019 (r353177) +++ stable/11/sys/dev/usb/usb_bus.h Mon Oct 7 08:24:46 2019 (r353178) @@ -129,6 +129,7 @@ struct usb_bus { uint8_t do_probe; /* set if USB should be re-probed */ uint8_t no_explore; /* don't explore USB ports */ uint8_t dma_bits; /* number of DMA address lines */ + uint8_t control_ep_quirk; /* need 64kByte buffer for data stage */ }; #endif /* _USB_BUS_H_ */ Modified: stable/11/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/11/sys/dev/usb/usb_transfer.c Mon Oct 7 08:24:07 2019 (r353177) +++ stable/11/sys/dev/usb/usb_transfer.c Mon Oct 7 08:24:46 2019 (r353178) @@ -105,6 +105,33 @@ static const struct usb_config usb_control_ep_cfg[USB_ }, }; +static const struct usb_config usb_control_ep_quirk_cfg[USB_CTRL_XFER_MAX] = { + + /* This transfer is used for generic control endpoint transfers */ + + [0] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control endpoint */ + .direction = UE_DIR_ANY, + .bufsize = 65535, /* bytes */ + .callback = &usb_request_callback, + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + /* This transfer is used for generic clear stall only */ + + [1] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control pipe */ + .direction = UE_DIR_ANY, + .bufsize = sizeof(struct usb_device_request), + .callback = &usb_do_clear_stall_callback, + .timeout = 1000, /* 1 second */ + .interval = 50, /* 50ms */ + .usb_mode = USB_MODE_HOST, + }, +}; + /* function prototypes */ static void usbd_update_max_frame_size(struct usb_xfer *); @@ -1020,7 +1047,8 @@ usbd_transfer_setup(struct usb_device *udev, * context, else there is a chance of * deadlock! */ - if (setup_start == usb_control_ep_cfg) + if (setup_start == usb_control_ep_cfg || + setup_start == usb_control_ep_quirk_cfg) info->done_p = USB_BUS_CONTROL_XFER_PROC(udev->bus); else if (xfer_mtx == &Giant) @@ -3148,7 +3176,8 @@ repeat: */ iface_index = 0; if (usbd_transfer_setup(udev, &iface_index, - udev->ctrl_xfer, usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, + udev->ctrl_xfer, udev->bus->control_ep_quirk ? + usb_control_ep_quirk_cfg : usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, &udev->device_mtx)) { DPRINTFN(0, "could not setup default " "USB transfer\n"); From owner-svn-src-all@freebsd.org Mon Oct 7 08:25:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 70404FC6E6; Mon, 7 Oct 2019 08:25: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 46mtpG2QYSz4TtL; Mon, 7 Oct 2019 08:25: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 3743CBDDC; Mon, 7 Oct 2019 08:25: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 x978PQR3047881; Mon, 7 Oct 2019 08:25:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978PP6q047878; Mon, 7 Oct 2019 08:25:25 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070825.x978PP6q047878@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 08:25:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353179 - in stable/10/sys/dev/usb: . controller X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/10/sys/dev/usb: . controller X-SVN-Commit-Revision: 353179 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:25:26 -0000 Author: hselasky Date: Mon Oct 7 08:25:25 2019 New Revision: 353179 URL: https://svnweb.freebsd.org/changeset/base/353179 Log: MFC r352556: Add quirk for XHCI(4) controllers to support USB control transfers above 1Kbyte. It might look like some XHCI(4) controllers do not support when the USB control transfer is split using a link TRB. The next NORMAL TRB after the link TRB is simply failing with XHCI error code 4. The quirk ensures we allocate a 64Kbyte buffer so that the data stage TRB is not broken with a link TRB. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/controller/xhci.c stable/10/sys/dev/usb/usb_bus.h stable/10/sys/dev/usb/usb_transfer.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/10/sys/dev/usb/controller/xhci.c Mon Oct 7 08:24:46 2019 (r353178) +++ stable/10/sys/dev/usb/controller/xhci.c Mon Oct 7 08:25:25 2019 (r353179) @@ -605,6 +605,9 @@ xhci_init(struct xhci_softc *sc, device_t self, uint8_ device_printf(self, "%d bytes context size, %d-bit DMA\n", 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; + temp = XREAD4(sc, capa, XHCI_HCSPARAMS1); /* get number of device slots */ Modified: stable/10/sys/dev/usb/usb_bus.h ============================================================================== --- stable/10/sys/dev/usb/usb_bus.h Mon Oct 7 08:24:46 2019 (r353178) +++ stable/10/sys/dev/usb/usb_bus.h Mon Oct 7 08:25:25 2019 (r353179) @@ -129,6 +129,7 @@ struct usb_bus { uint8_t do_probe; /* set if USB should be re-probed */ uint8_t no_explore; /* don't explore USB ports */ uint8_t dma_bits; /* number of DMA address lines */ + uint8_t control_ep_quirk; /* need 64kByte buffer for data stage */ }; #endif /* _USB_BUS_H_ */ Modified: stable/10/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/10/sys/dev/usb/usb_transfer.c Mon Oct 7 08:24:46 2019 (r353178) +++ stable/10/sys/dev/usb/usb_transfer.c Mon Oct 7 08:25:25 2019 (r353179) @@ -105,6 +105,33 @@ static const struct usb_config usb_control_ep_cfg[USB_ }, }; +static const struct usb_config usb_control_ep_quirk_cfg[USB_CTRL_XFER_MAX] = { + + /* This transfer is used for generic control endpoint transfers */ + + [0] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control endpoint */ + .direction = UE_DIR_ANY, + .bufsize = 65535, /* bytes */ + .callback = &usb_request_callback, + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + /* This transfer is used for generic clear stall only */ + + [1] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control pipe */ + .direction = UE_DIR_ANY, + .bufsize = sizeof(struct usb_device_request), + .callback = &usb_do_clear_stall_callback, + .timeout = 1000, /* 1 second */ + .interval = 50, /* 50ms */ + .usb_mode = USB_MODE_HOST, + }, +}; + /* function prototypes */ static void usbd_update_max_frame_size(struct usb_xfer *); @@ -1020,7 +1047,8 @@ usbd_transfer_setup(struct usb_device *udev, * context, else there is a chance of * deadlock! */ - if (setup_start == usb_control_ep_cfg) + if (setup_start == usb_control_ep_cfg || + setup_start == usb_control_ep_quirk_cfg) info->done_p = USB_BUS_CONTROL_XFER_PROC(udev->bus); else if (xfer_mtx == &Giant) @@ -3148,7 +3176,8 @@ repeat: */ iface_index = 0; if (usbd_transfer_setup(udev, &iface_index, - udev->ctrl_xfer, usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, + udev->ctrl_xfer, udev->bus->control_ep_quirk ? + usb_control_ep_quirk_cfg : usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, &udev->device_mtx)) { DPRINTFN(0, "could not setup default " "USB transfer\n"); From owner-svn-src-all@freebsd.org Mon Oct 7 08:28:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21079FC7EF; Mon, 7 Oct 2019 08:28:07 +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 46mtsM0587z4V2p; Mon, 7 Oct 2019 08:28:07 +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 BD643BDDF; Mon, 7 Oct 2019 08:28:06 +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 x978S6fA048062; Mon, 7 Oct 2019 08:28:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978S6pM048059; Mon, 7 Oct 2019 08:28:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070828.x978S6pM048059@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 08:28:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353180 - stable/12/sys/contrib/rdma/krping X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/contrib/rdma/krping X-SVN-Commit-Revision: 353180 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:28:07 -0000 Author: hselasky Date: Mon Oct 7 08:28:05 2019 New Revision: 353180 URL: https://svnweb.freebsd.org/changeset/base/353180 Log: MFC r352954: Notify all sleeping threads of device removal in krping. Implement d_purge for krping_cdevsw. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/contrib/rdma/krping/krping.c stable/12/sys/contrib/rdma/krping/krping.h stable/12/sys/contrib/rdma/krping/krping_dev.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/contrib/rdma/krping/krping.c ============================================================================== --- stable/12/sys/contrib/rdma/krping/krping.c Mon Oct 7 08:25:25 2019 (r353179) +++ stable/12/sys/contrib/rdma/krping/krping.c Mon Oct 7 08:28:05 2019 (r353180) @@ -2189,3 +2189,17 @@ krping_walk_cb_list(void (*f)(struct krping_stats *, v (*f)(cb->pd ? &cb->stats : NULL, arg); mutex_unlock(&krping_mutex); } + +void +krping_cancel_all(void) +{ + struct krping_cb *cb; + + mutex_lock(&krping_mutex); + list_for_each_entry(cb, &krping_cbs, list) { + cb->state = ERROR; + wake_up_interruptible(&cb->sem); + } + mutex_unlock(&krping_mutex); +} + Modified: stable/12/sys/contrib/rdma/krping/krping.h ============================================================================== --- stable/12/sys/contrib/rdma/krping/krping.h Mon Oct 7 08:25:25 2019 (r353179) +++ stable/12/sys/contrib/rdma/krping/krping.h Mon Oct 7 08:28:05 2019 (r353180) @@ -17,3 +17,4 @@ struct krping_stats { int krping_doit(char *); void krping_walk_cb_list(void (*)(struct krping_stats *, void *), void *); int krping_sigpending(void); +void krping_cancel_all(void); Modified: stable/12/sys/contrib/rdma/krping/krping_dev.c ============================================================================== --- stable/12/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 08:25:25 2019 (r353179) +++ stable/12/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 08:28:05 2019 (r353180) @@ -40,6 +40,7 @@ static d_open_t krping_open; static d_close_t krping_close; static d_read_t krping_read; static d_write_t krping_write; +static d_purge_t krping_purge; /* Character device entry points */ static struct cdevsw krping_cdevsw = { @@ -48,6 +49,7 @@ static struct cdevsw krping_cdevsw = { .d_close = krping_close, .d_read = krping_read, .d_write = krping_write, + .d_purge = krping_purge, .d_name = "krping", }; @@ -208,6 +210,13 @@ krping_write(struct cdev *dev, struct uio *uio, int io done: free(krpingmsg, M_DEVBUF); return(err); +} + +static void +krping_purge(struct cdev *dev __unused) +{ + + krping_cancel_all(); } int From owner-svn-src-all@freebsd.org Mon Oct 7 08:28:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7BA7CFC86E; Mon, 7 Oct 2019 08:28:56 +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 46mttJ2jbgz4V9T; Mon, 7 Oct 2019 08:28:56 +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 27221BDE0; Mon, 7 Oct 2019 08:28:56 +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 x978SuAK048160; Mon, 7 Oct 2019 08:28:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978StW2048157; Mon, 7 Oct 2019 08:28:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070828.x978StW2048157@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 08:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353181 - stable/11/sys/contrib/rdma/krping X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/contrib/rdma/krping X-SVN-Commit-Revision: 353181 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:28:56 -0000 Author: hselasky Date: Mon Oct 7 08:28:55 2019 New Revision: 353181 URL: https://svnweb.freebsd.org/changeset/base/353181 Log: MFC r352954: Notify all sleeping threads of device removal in krping. Implement d_purge for krping_cdevsw. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/contrib/rdma/krping/krping.c stable/11/sys/contrib/rdma/krping/krping.h stable/11/sys/contrib/rdma/krping/krping_dev.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/contrib/rdma/krping/krping.c ============================================================================== --- stable/11/sys/contrib/rdma/krping/krping.c Mon Oct 7 08:28:05 2019 (r353180) +++ stable/11/sys/contrib/rdma/krping/krping.c Mon Oct 7 08:28:55 2019 (r353181) @@ -2189,3 +2189,17 @@ krping_walk_cb_list(void (*f)(struct krping_stats *, v (*f)(cb->pd ? &cb->stats : NULL, arg); mutex_unlock(&krping_mutex); } + +void +krping_cancel_all(void) +{ + struct krping_cb *cb; + + mutex_lock(&krping_mutex); + list_for_each_entry(cb, &krping_cbs, list) { + cb->state = ERROR; + wake_up_interruptible(&cb->sem); + } + mutex_unlock(&krping_mutex); +} + Modified: stable/11/sys/contrib/rdma/krping/krping.h ============================================================================== --- stable/11/sys/contrib/rdma/krping/krping.h Mon Oct 7 08:28:05 2019 (r353180) +++ stable/11/sys/contrib/rdma/krping/krping.h Mon Oct 7 08:28:55 2019 (r353181) @@ -17,3 +17,4 @@ struct krping_stats { int krping_doit(char *); void krping_walk_cb_list(void (*)(struct krping_stats *, void *), void *); int krping_sigpending(void); +void krping_cancel_all(void); Modified: stable/11/sys/contrib/rdma/krping/krping_dev.c ============================================================================== --- stable/11/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 08:28:05 2019 (r353180) +++ stable/11/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 08:28:55 2019 (r353181) @@ -40,6 +40,7 @@ static d_open_t krping_open; static d_close_t krping_close; static d_read_t krping_read; static d_write_t krping_write; +static d_purge_t krping_purge; /* Character device entry points */ static struct cdevsw krping_cdevsw = { @@ -48,6 +49,7 @@ static struct cdevsw krping_cdevsw = { .d_close = krping_close, .d_read = krping_read, .d_write = krping_write, + .d_purge = krping_purge, .d_name = "krping", }; @@ -208,6 +210,13 @@ krping_write(struct cdev *dev, struct uio *uio, int io done: free(krpingmsg, M_DEVBUF); return(err); +} + +static void +krping_purge(struct cdev *dev __unused) +{ + + krping_cancel_all(); } int From owner-svn-src-all@freebsd.org Mon Oct 7 08:31:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E9B66FCAF6; Mon, 7 Oct 2019 08:31:32 +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 46mtxJ5xmqz4VSC; Mon, 7 Oct 2019 08:31:32 +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 AF35BBE3D; Mon, 7 Oct 2019 08:31:32 +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 x978VWk3049104; Mon, 7 Oct 2019 08:31:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978VVDU049100; Mon, 7 Oct 2019 08:31:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070831.x978VVDU049100@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 08:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353182 - stable/12/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Commit-Revision: 353182 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:31:33 -0000 Author: hselasky Date: Mon Oct 7 08:31:31 2019 New Revision: 353182 URL: https://svnweb.freebsd.org/changeset/base/353182 Log: MFC r352955: Make sure the transmit loop doesn't get starved in ipoib. When the software send queue gets filled up, callbacks to if_transmit will stop. Make sure the transmit callback routine checks the send queue and outputs any remaining mbufs. Else the remaining mbufs may simply sit in the output queue blocking the transmit path. Sponsored by: Mellanox Technologies Modified: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h ============================================================================== --- stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 08:28:55 2019 (r353181) +++ stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 08:31:31 2019 (r353182) @@ -536,7 +536,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv); int ipoib_dma_map_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req, int max); void ipoib_dma_unmap_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req); -int ipoib_poll_tx(struct ipoib_dev_priv *priv); +int ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start); void ipoib_dma_unmap_rx(struct ipoib_dev_priv *priv, struct ipoib_rx_buf *rx_req); void ipoib_dma_mb(struct ipoib_dev_priv *priv, struct mbuf *mb, unsigned int length); @@ -763,5 +763,7 @@ extern int ipoib_debug_level; #endif /* CONFIG_INFINIBAND_IPOIB_DEBUG_DATA */ #define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff) + +void ipoib_start_locked(struct ifnet *, struct ipoib_dev_priv *); #endif /* _IPOIB_H */ Modified: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c ============================================================================== --- stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 08:28:55 2019 (r353181) +++ stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 08:31:31 2019 (r353182) @@ -618,8 +618,10 @@ void ipoib_cm_send(struct ipoib_dev_priv *priv, struct struct ipoib_cm_tx_buf *tx_req; struct ifnet *dev = priv->dev; - if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)); /* nothing */ + if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) { + while (ipoib_poll_tx(priv, false)) + ; /* nothing */ + } m_adj(mb, sizeof(struct ipoib_pseudoheader)); if (unlikely(mb->m_pkthdr.len > tx->mtu)) { Modified: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c ============================================================================== --- stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 08:28:55 2019 (r353181) +++ stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 08:31:31 2019 (r353182) @@ -366,7 +366,7 @@ static void ipoib_ib_handle_tx_wc(struct ipoib_dev_pri } int -ipoib_poll_tx(struct ipoib_dev_priv *priv) +ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start) { int n, i; @@ -379,6 +379,9 @@ ipoib_poll_tx(struct ipoib_dev_priv *priv) ipoib_ib_handle_tx_wc(priv, wc); } + if (do_start && n != 0) + ipoib_start_locked(priv->dev, priv); + return n == MAX_SEND_CQE; } @@ -425,7 +428,7 @@ static void drain_tx_cq(struct ipoib_dev_priv *priv) struct ifnet *dev = priv->dev; spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ if (dev->if_drv_flags & IFF_DRV_OACTIVE) @@ -482,7 +485,7 @@ ipoib_send(struct ipoib_dev_priv *priv, struct mbuf *m void *phead; if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, false)) ; /* nothing */ m_adj(mb, sizeof (struct ipoib_pseudoheader)); @@ -762,7 +765,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv) spin_unlock(&priv->drain_lock); spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ spin_unlock(&priv->lock); Modified: stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c ============================================================================== --- stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 08:28:55 2019 (r353181) +++ stable/12/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 08:31:31 2019 (r353182) @@ -772,17 +772,13 @@ ipoib_send_one(struct ipoib_dev_priv *priv, struct mbu return 0; } - -static void -_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +void +ipoib_start_locked(struct ifnet *dev, struct ipoib_dev_priv *priv) { struct mbuf *mb; - if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != - IFF_DRV_RUNNING) - return; + assert_spin_locked(&priv->lock); - spin_lock(&priv->lock); while (!IFQ_DRV_IS_EMPTY(&dev->if_snd) && (dev->if_drv_flags & IFF_DRV_OACTIVE) == 0) { IFQ_DRV_DEQUEUE(&dev->if_snd, mb); @@ -791,6 +787,18 @@ _ipoib_start(struct ifnet *dev, struct ipoib_dev_priv IPOIB_MTAP(dev, mb); ipoib_send_one(priv, mb); } +} + +static void +_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +{ + + if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; + + spin_lock(&priv->lock); + ipoib_start_locked(dev, priv); spin_unlock(&priv->lock); } From owner-svn-src-all@freebsd.org Mon Oct 7 08:32:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B784FCBAD; Mon, 7 Oct 2019 08:32:20 +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 46mtyD3fYzz4Vl6; Mon, 7 Oct 2019 08:32:20 +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 6135EBFAC; Mon, 7 Oct 2019 08:32:20 +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 x978WKCe052753; Mon, 7 Oct 2019 08:32:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978WJQQ052749; Mon, 7 Oct 2019 08:32:19 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070832.x978WJQQ052749@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 08:32:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353183 - stable/11/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Commit-Revision: 353183 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:32:20 -0000 Author: hselasky Date: Mon Oct 7 08:32:19 2019 New Revision: 353183 URL: https://svnweb.freebsd.org/changeset/base/353183 Log: MFC r352955: Make sure the transmit loop doesn't get starved in ipoib. When the software send queue gets filled up, callbacks to if_transmit will stop. Make sure the transmit callback routine checks the send queue and outputs any remaining mbufs. Else the remaining mbufs may simply sit in the output queue blocking the transmit path. Sponsored by: Mellanox Technologies Modified: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h ============================================================================== --- stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 08:31:31 2019 (r353182) +++ stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 08:32:19 2019 (r353183) @@ -534,7 +534,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv); int ipoib_dma_map_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req, int max); void ipoib_dma_unmap_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req); -int ipoib_poll_tx(struct ipoib_dev_priv *priv); +int ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start); void ipoib_dma_unmap_rx(struct ipoib_dev_priv *priv, struct ipoib_rx_buf *rx_req); void ipoib_dma_mb(struct ipoib_dev_priv *priv, struct mbuf *mb, unsigned int length); @@ -761,5 +761,7 @@ extern int ipoib_debug_level; #endif /* CONFIG_INFINIBAND_IPOIB_DEBUG_DATA */ #define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff) + +void ipoib_start_locked(struct ifnet *, struct ipoib_dev_priv *); #endif /* _IPOIB_H */ Modified: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c ============================================================================== --- stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 08:31:31 2019 (r353182) +++ stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 08:32:19 2019 (r353183) @@ -616,8 +616,10 @@ void ipoib_cm_send(struct ipoib_dev_priv *priv, struct struct ipoib_cm_tx_buf *tx_req; struct ifnet *dev = priv->dev; - if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)); /* nothing */ + if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) { + while (ipoib_poll_tx(priv, false)) + ; /* nothing */ + } m_adj(mb, sizeof(struct ipoib_pseudoheader)); if (unlikely(mb->m_pkthdr.len > tx->mtu)) { Modified: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c ============================================================================== --- stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 08:31:31 2019 (r353182) +++ stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 08:32:19 2019 (r353183) @@ -364,7 +364,7 @@ static void ipoib_ib_handle_tx_wc(struct ipoib_dev_pri } int -ipoib_poll_tx(struct ipoib_dev_priv *priv) +ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start) { int n, i; @@ -377,6 +377,9 @@ ipoib_poll_tx(struct ipoib_dev_priv *priv) ipoib_ib_handle_tx_wc(priv, wc); } + if (do_start && n != 0) + ipoib_start_locked(priv->dev, priv); + return n == MAX_SEND_CQE; } @@ -423,7 +426,7 @@ static void drain_tx_cq(struct ipoib_dev_priv *priv) struct ifnet *dev = priv->dev; spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ if (dev->if_drv_flags & IFF_DRV_OACTIVE) @@ -480,7 +483,7 @@ ipoib_send(struct ipoib_dev_priv *priv, struct mbuf *m void *phead; if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, false)) ; /* nothing */ m_adj(mb, sizeof (struct ipoib_pseudoheader)); @@ -760,7 +763,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv) spin_unlock(&priv->drain_lock); spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ spin_unlock(&priv->lock); Modified: stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c ============================================================================== --- stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 08:31:31 2019 (r353182) +++ stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 08:32:19 2019 (r353183) @@ -770,17 +770,13 @@ ipoib_send_one(struct ipoib_dev_priv *priv, struct mbu return 0; } - -static void -_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +void +ipoib_start_locked(struct ifnet *dev, struct ipoib_dev_priv *priv) { struct mbuf *mb; - if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != - IFF_DRV_RUNNING) - return; + assert_spin_locked(&priv->lock); - spin_lock(&priv->lock); while (!IFQ_DRV_IS_EMPTY(&dev->if_snd) && (dev->if_drv_flags & IFF_DRV_OACTIVE) == 0) { IFQ_DRV_DEQUEUE(&dev->if_snd, mb); @@ -789,6 +785,18 @@ _ipoib_start(struct ifnet *dev, struct ipoib_dev_priv IPOIB_MTAP(dev, mb); ipoib_send_one(priv, mb); } +} + +static void +_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +{ + + if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; + + spin_lock(&priv->lock); + ipoib_start_locked(dev, priv); spin_unlock(&priv->lock); } From owner-svn-src-all@freebsd.org Mon Oct 7 08:35:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 676C9FCC83; Mon, 7 Oct 2019 08:35:49 +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 46mv2F2756z4Vv9; Mon, 7 Oct 2019 08:35:49 +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 27D7CBFBD; Mon, 7 Oct 2019 08:35:49 +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 x978ZnG0053929; Mon, 7 Oct 2019 08:35:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978ZmAt053927; Mon, 7 Oct 2019 08:35:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070835.x978ZmAt053927@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 08:35:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353184 - stable/12/sys/dev/mlx5/mlx5_ib X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_ib X-SVN-Commit-Revision: 353184 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:35:49 -0000 Author: hselasky Date: Mon Oct 7 08:35:48 2019 New Revision: 353184 URL: https://svnweb.freebsd.org/changeset/base/353184 Log: MFC r352956: Fix reported max SGE calculation in mlx5ib. Add the 512 bytes limit of RDMA READ and the size of remote address to the max SGE calculation. Submitted by: slavash@ Linux commit: 288c01b746aa Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 08:32:19 2019 (r353183) +++ stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 08:35:48 2019 (r353184) @@ -636,6 +636,7 @@ static int mlx5_ib_query_device(struct ib_device *ibde struct mlx5_ib_dev *dev = to_mdev(ibdev); struct mlx5_core_dev *mdev = dev->mdev; int err = -ENOMEM; + int max_sq_desc; int max_rq_sg; int max_sq_sg; u64 min_page_size = 1ull << MLX5_CAP_GEN(mdev, log_pg_sz); @@ -758,9 +759,10 @@ static int mlx5_ib_query_device(struct ib_device *ibde props->max_qp_wr = 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); max_rq_sg = MLX5_CAP_GEN(mdev, max_wqe_sz_rq) / sizeof(struct mlx5_wqe_data_seg); - max_sq_sg = (MLX5_CAP_GEN(mdev, max_wqe_sz_sq) - - sizeof(struct mlx5_wqe_ctrl_seg)) / - sizeof(struct mlx5_wqe_data_seg); + max_sq_desc = min_t(int, MLX5_CAP_GEN(mdev, max_wqe_sz_sq), 512); + max_sq_sg = (max_sq_desc - sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); props->max_sge = min(max_rq_sg, max_sq_sg); props->max_sge_rd = MLX5_MAX_SGE_RD; props->max_cq = 1 << MLX5_CAP_GEN(mdev, log_max_cq); Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Mon Oct 7 08:32:19 2019 (r353183) +++ stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Mon Oct 7 08:35:48 2019 (r353184) @@ -346,6 +346,29 @@ static int calc_send_wqe(struct ib_qp_init_attr *attr) return ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB); } +static int get_send_sge(struct ib_qp_init_attr *attr, int wqe_size) +{ + int max_sge; + + if (attr->qp_type == IB_QPT_RC) + max_sge = (min_t(int, wqe_size, 512) - + sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); + else if (attr->qp_type == IB_QPT_XRC_INI) + max_sge = (min_t(int, wqe_size, 512) - + sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_xrc_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); + else + max_sge = (wqe_size - sq_overhead(attr)) / + sizeof(struct mlx5_wqe_data_seg); + + return min_t(int, max_sge, wqe_size - sq_overhead(attr) / + sizeof(struct mlx5_wqe_data_seg)); +} + static int calc_sq_size(struct mlx5_ib_dev *dev, struct ib_qp_init_attr *attr, struct mlx5_ib_qp *qp) { @@ -382,7 +405,11 @@ static int calc_sq_size(struct mlx5_ib_dev *dev, struc return -ENOMEM; } qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); - qp->sq.max_gs = attr->cap.max_send_sge; + qp->sq.max_gs = get_send_sge(attr, wqe_size); + if (qp->sq.max_gs < attr->cap.max_send_sge) + return -ENOMEM; + + attr->cap.max_send_sge = qp->sq.max_gs; qp->sq.max_post = wq_size / wqe_size; attr->cap.max_send_wr = qp->sq.max_post; From owner-svn-src-all@freebsd.org Mon Oct 7 08:36:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E2555FCD22; Mon, 7 Oct 2019 08:36:45 +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 46mv3K5KTHz4W2R; Mon, 7 Oct 2019 08:36:45 +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 9B7E5BFBE; Mon, 7 Oct 2019 08:36:45 +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 x978ajHG054035; Mon, 7 Oct 2019 08:36:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978ajb1054032; Mon, 7 Oct 2019 08:36:45 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070836.x978ajb1054032@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 08:36:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353185 - stable/11/sys/dev/mlx5/mlx5_ib X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_ib X-SVN-Commit-Revision: 353185 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:36:45 -0000 Author: hselasky Date: Mon Oct 7 08:36:44 2019 New Revision: 353185 URL: https://svnweb.freebsd.org/changeset/base/353185 Log: MFC r352956: Fix reported max SGE calculation in mlx5ib. Add the 512 bytes limit of RDMA READ and the size of remote address to the max SGE calculation. Submitted by: slavash@ Linux commit: 288c01b746aa Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 08:35:48 2019 (r353184) +++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 08:36:44 2019 (r353185) @@ -636,6 +636,7 @@ static int mlx5_ib_query_device(struct ib_device *ibde struct mlx5_ib_dev *dev = to_mdev(ibdev); struct mlx5_core_dev *mdev = dev->mdev; int err = -ENOMEM; + int max_sq_desc; int max_rq_sg; int max_sq_sg; u64 min_page_size = 1ull << MLX5_CAP_GEN(mdev, log_pg_sz); @@ -758,9 +759,10 @@ static int mlx5_ib_query_device(struct ib_device *ibde props->max_qp_wr = 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); max_rq_sg = MLX5_CAP_GEN(mdev, max_wqe_sz_rq) / sizeof(struct mlx5_wqe_data_seg); - max_sq_sg = (MLX5_CAP_GEN(mdev, max_wqe_sz_sq) - - sizeof(struct mlx5_wqe_ctrl_seg)) / - sizeof(struct mlx5_wqe_data_seg); + max_sq_desc = min_t(int, MLX5_CAP_GEN(mdev, max_wqe_sz_sq), 512); + max_sq_sg = (max_sq_desc - sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); props->max_sge = min(max_rq_sg, max_sq_sg); props->max_sge_rd = MLX5_MAX_SGE_RD; props->max_cq = 1 << MLX5_CAP_GEN(mdev, log_max_cq); Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Mon Oct 7 08:35:48 2019 (r353184) +++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Mon Oct 7 08:36:44 2019 (r353185) @@ -346,6 +346,29 @@ static int calc_send_wqe(struct ib_qp_init_attr *attr) return ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB); } +static int get_send_sge(struct ib_qp_init_attr *attr, int wqe_size) +{ + int max_sge; + + if (attr->qp_type == IB_QPT_RC) + max_sge = (min_t(int, wqe_size, 512) - + sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); + else if (attr->qp_type == IB_QPT_XRC_INI) + max_sge = (min_t(int, wqe_size, 512) - + sizeof(struct mlx5_wqe_ctrl_seg) - + sizeof(struct mlx5_wqe_xrc_seg) - + sizeof(struct mlx5_wqe_raddr_seg)) / + sizeof(struct mlx5_wqe_data_seg); + else + max_sge = (wqe_size - sq_overhead(attr)) / + sizeof(struct mlx5_wqe_data_seg); + + return min_t(int, max_sge, wqe_size - sq_overhead(attr) / + sizeof(struct mlx5_wqe_data_seg)); +} + static int calc_sq_size(struct mlx5_ib_dev *dev, struct ib_qp_init_attr *attr, struct mlx5_ib_qp *qp) { @@ -382,7 +405,11 @@ static int calc_sq_size(struct mlx5_ib_dev *dev, struc return -ENOMEM; } qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); - qp->sq.max_gs = attr->cap.max_send_sge; + qp->sq.max_gs = get_send_sge(attr, wqe_size); + if (qp->sq.max_gs < attr->cap.max_send_sge) + return -ENOMEM; + + attr->cap.max_send_sge = qp->sq.max_gs; qp->sq.max_post = wq_size / wqe_size; attr->cap.max_send_wr = qp->sq.max_post; From owner-svn-src-all@freebsd.org Mon Oct 7 08:38:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F097DFCDB9; Mon, 7 Oct 2019 08:38:32 +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 46mv5N654qz4W99; Mon, 7 Oct 2019 08:38:32 +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 B0D9EBFBF; Mon, 7 Oct 2019 08:38:32 +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 x978cWJd054176; Mon, 7 Oct 2019 08:38:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978cWDx054175; Mon, 7 Oct 2019 08:38:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070838.x978cWDx054175@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 08:38:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353186 - stable/12/sys/dev/mlx5/mlx5_ib X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_ib X-SVN-Commit-Revision: 353186 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:38:33 -0000 Author: hselasky Date: Mon Oct 7 08:38:32 2019 New Revision: 353186 URL: https://svnweb.freebsd.org/changeset/base/353186 Log: MFC r352957: Update warning and error print formats in mlx5ib. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Mon Oct 7 08:36:44 2019 (r353185) +++ stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Mon Oct 7 08:38:32 2019 (r353186) @@ -46,11 +46,11 @@ pr_debug("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.n __LINE__, current->pid, ##arg) #define mlx5_ib_err(dev, format, arg...) \ -pr_err("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ +pr_err("%s: ERR: %s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ __LINE__, current->pid, ##arg) #define mlx5_ib_warn(dev, format, arg...) \ -pr_warn("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ +pr_warn("%s: WARN: %s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ __LINE__, current->pid, ##arg) #define field_avail(type, fld, sz) (offsetof(type, fld) + \ From owner-svn-src-all@freebsd.org Mon Oct 7 08:39:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9409DFCE4D; Mon, 7 Oct 2019 08:39:13 +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 46mv693Nzwz4WHY; Mon, 7 Oct 2019 08:39:13 +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 5776EBFC1; Mon, 7 Oct 2019 08:39:13 +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 x978dD9X054268; Mon, 7 Oct 2019 08:39:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978dDap054267; Mon, 7 Oct 2019 08:39:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070839.x978dDap054267@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 08:39:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353187 - stable/11/sys/dev/mlx5/mlx5_ib X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_ib X-SVN-Commit-Revision: 353187 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:39:13 -0000 Author: hselasky Date: Mon Oct 7 08:39:12 2019 New Revision: 353187 URL: https://svnweb.freebsd.org/changeset/base/353187 Log: MFC r352957: Update warning and error print formats in mlx5ib. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Mon Oct 7 08:38:32 2019 (r353186) +++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Mon Oct 7 08:39:12 2019 (r353187) @@ -46,11 +46,11 @@ pr_debug("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.n __LINE__, current->pid, ##arg) #define mlx5_ib_err(dev, format, arg...) \ -pr_err("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ +pr_err("%s: ERR: %s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ __LINE__, current->pid, ##arg) #define mlx5_ib_warn(dev, format, arg...) \ -pr_warn("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ +pr_warn("%s: WARN: %s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__, \ __LINE__, current->pid, ##arg) #define field_avail(type, fld, sz) (offsetof(type, fld) + \ From owner-svn-src-all@freebsd.org Mon Oct 7 08:39:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8A46BFCEE2; Mon, 7 Oct 2019 08:39:56 +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 46mv7036Zlz4WPv; Mon, 7 Oct 2019 08:39:56 +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 4E368BFC2; Mon, 7 Oct 2019 08:39:56 +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 x978du6q054359; Mon, 7 Oct 2019 08:39:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978dutx054358; Mon, 7 Oct 2019 08:39:56 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070839.x978dutx054358@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 08:39:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353188 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353188 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:39:56 -0000 Author: hselasky Date: Mon Oct 7 08:39:55 2019 New Revision: 353188 URL: https://svnweb.freebsd.org/changeset/base/353188 Log: MFC r352958: Make sure the number of IRQ vectors doesn't exceed 256 in mlx5core. The "intr" field in "struct mlx5_ifc_eqc_bits" is only 8 bits wide. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:39:12 2019 (r353187) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:39:55 2019 (r353188) @@ -275,7 +275,10 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) else nvec += MLX5_CAP_GEN(dev, num_ports) * num_online_cpus(); - nvec = min_t(int, nvec, num_eqs); + if (nvec > num_eqs) + nvec = num_eqs; + if (nvec > 256) + nvec = 256; /* limit of firmware API */ if (nvec <= MLX5_EQ_VEC_COMP_BASE) return -ENOMEM; From owner-svn-src-all@freebsd.org Mon Oct 7 08:40:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB75BFCFBF; Mon, 7 Oct 2019 08:40:34 +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 46mv7k4JJ5z4Wcy; Mon, 7 Oct 2019 08:40:34 +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 78727BFCD; Mon, 7 Oct 2019 08:40:34 +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 x978eYDO054653; Mon, 7 Oct 2019 08:40:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978eYZb054652; Mon, 7 Oct 2019 08:40:34 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070840.x978eYZb054652@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 08:40:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353189 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353189 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:40:34 -0000 Author: hselasky Date: Mon Oct 7 08:40:34 2019 New Revision: 353189 URL: https://svnweb.freebsd.org/changeset/base/353189 Log: MFC r352958: Make sure the number of IRQ vectors doesn't exceed 256 in mlx5core. The "intr" field in "struct mlx5_ifc_eqc_bits" is only 8 bits wide. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:39:55 2019 (r353188) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:40:34 2019 (r353189) @@ -275,7 +275,10 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) else nvec += MLX5_CAP_GEN(dev, num_ports) * num_online_cpus(); - nvec = min_t(int, nvec, num_eqs); + if (nvec > num_eqs) + nvec = num_eqs; + if (nvec > 256) + nvec = 256; /* limit of firmware API */ if (nvec <= MLX5_EQ_VEC_COMP_BASE) return -ENOMEM; From owner-svn-src-all@freebsd.org Mon Oct 7 08:41:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 18D2BFD1CB; Mon, 7 Oct 2019 08:41:17 +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 46mv8X4ktPz4WrN; Mon, 7 Oct 2019 08:41:16 +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 81367C00D; Mon, 7 Oct 2019 08:41:16 +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 x978fG0f058411; Mon, 7 Oct 2019 08:41:16 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978fGAl058410; Mon, 7 Oct 2019 08:41:16 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070841.x978fGAl058410@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 08:41:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353190 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353190 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:41:17 -0000 Author: hselasky Date: Mon Oct 7 08:41:16 2019 New Revision: 353190 URL: https://svnweb.freebsd.org/changeset/base/353190 Log: MFC r352959: Check return value of mlx5_vector2eqn() function in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 08:40:34 2019 (r353189) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 08:41:16 2019 (r353190) @@ -1913,12 +1913,14 @@ mlx5e_create_cq(struct mlx5e_priv *priv, param->wq.buf_numa_node = 0; param->wq.db_numa_node = 0; + err = mlx5_vector2eqn(mdev, eq_ix, &eqn_not_used, &irqn); + if (err) + return (err); + err = mlx5_cqwq_create(mdev, ¶m->wq, param->cqc, &cq->wq, &cq->wq_ctrl); if (err) return (err); - - mlx5_vector2eqn(mdev, eq_ix, &eqn_not_used, &irqn); mcq->cqe_sz = 64; mcq->set_ci_db = cq->wq_ctrl.db.db; From owner-svn-src-all@freebsd.org Mon Oct 7 08:41:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A9A12FD45C; Mon, 7 Oct 2019 08:41:54 +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 46mv9G2xrmz4X7c; Mon, 7 Oct 2019 08:41:54 +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 2EE80C043; Mon, 7 Oct 2019 08:41:54 +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 x978frqc058499; Mon, 7 Oct 2019 08:41:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978frFM058498; Mon, 7 Oct 2019 08:41:53 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070841.x978frFM058498@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 08:41:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353191 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353191 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:41:54 -0000 Author: hselasky Date: Mon Oct 7 08:41:53 2019 New Revision: 353191 URL: https://svnweb.freebsd.org/changeset/base/353191 Log: MFC r352959: Check return value of mlx5_vector2eqn() function in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 08:41:16 2019 (r353190) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 08:41:53 2019 (r353191) @@ -1806,12 +1806,14 @@ mlx5e_create_cq(struct mlx5e_priv *priv, param->wq.buf_numa_node = 0; param->wq.db_numa_node = 0; + err = mlx5_vector2eqn(mdev, eq_ix, &eqn_not_used, &irqn); + if (err) + return (err); + err = mlx5_cqwq_create(mdev, ¶m->wq, param->cqc, &cq->wq, &cq->wq_ctrl); if (err) return (err); - - mlx5_vector2eqn(mdev, eq_ix, &eqn_not_used, &irqn); mcq->cqe_sz = 64; mcq->set_ci_db = cq->wq_ctrl.db.db; From owner-svn-src-all@freebsd.org Mon Oct 7 08:43:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C832CFD596; Mon, 7 Oct 2019 08:43:03 +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 46mvBb4nF0z4XK1; Mon, 7 Oct 2019 08:43:03 +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 86763C17C; Mon, 7 Oct 2019 08:43:03 +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 x978h3qD060010; Mon, 7 Oct 2019 08:43:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978h3gQ060009; Mon, 7 Oct 2019 08:43:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070843.x978h3gQ060009@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 08:43:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353192 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353192 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:43:03 -0000 Author: hselasky Date: Mon Oct 7 08:43:03 2019 New Revision: 353192 URL: https://svnweb.freebsd.org/changeset/base/353192 Log: MFC r352960: Fix for missing cleanup code in error case in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:41:53 2019 (r353191) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:43:03 2019 (r353192) @@ -1133,13 +1133,13 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_fpga_device_start(dev); if (err) { dev_err(&pdev->dev, "fpga device start failed %d\n", err); - goto err_fpga_start; + goto err_fs; } err = mlx5_register_device(dev); if (err) { dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); - goto err_fs; + goto err_fpga; } set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); @@ -1148,7 +1148,9 @@ out: mutex_unlock(&dev->intf_state_mutex); return 0; -err_fpga_start: +err_fpga: + mlx5_fpga_device_stop(dev); + err_fs: mlx5_cleanup_fs(dev); From owner-svn-src-all@freebsd.org Mon Oct 7 08:43:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F3340FD61D; Mon, 7 Oct 2019 08:43:45 +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 46mvCP69XYz4XRT; Mon, 7 Oct 2019 08:43:45 +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 B6F07C17D; Mon, 7 Oct 2019 08:43:45 +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 x978hjiE060098; Mon, 7 Oct 2019 08:43:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978hjCt060097; Mon, 7 Oct 2019 08:43:45 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070843.x978hjCt060097@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 08:43:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353193 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353193 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:43:46 -0000 Author: hselasky Date: Mon Oct 7 08:43:45 2019 New Revision: 353193 URL: https://svnweb.freebsd.org/changeset/base/353193 Log: MFC r352960: Fix for missing cleanup code in error case in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:43:03 2019 (r353192) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:43:45 2019 (r353193) @@ -1115,13 +1115,13 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_fpga_device_start(dev); if (err) { dev_err(&pdev->dev, "fpga device start failed %d\n", err); - goto err_fpga_start; + goto err_fs; } err = mlx5_register_device(dev); if (err) { dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); - goto err_fs; + goto err_fpga; } set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); @@ -1130,7 +1130,9 @@ out: mutex_unlock(&dev->intf_state_mutex); return 0; -err_fpga_start: +err_fpga: + mlx5_fpga_device_stop(dev); + err_fs: mlx5_cleanup_fs(dev); From owner-svn-src-all@freebsd.org Mon Oct 7 08:44:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C48FEFD6D5; Mon, 7 Oct 2019 08:44: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 46mvDG13mnz4Xby; Mon, 7 Oct 2019 08:44: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 E29DCC181; Mon, 7 Oct 2019 08:44: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 x978iTMn060217; Mon, 7 Oct 2019 08:44:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978iTQM060215; Mon, 7 Oct 2019 08:44:29 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070844.x978iTQM060215@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 08:44:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353194 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353194 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:44:30 -0000 Author: hselasky Date: Mon Oct 7 08:44:29 2019 New Revision: 353194 URL: https://svnweb.freebsd.org/changeset/base/353194 Log: MFC r352961: Implement macro for asserting priv lock in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:43:45 2019 (r353193) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:44:29 2019 (r353194) @@ -987,6 +987,7 @@ struct mlx5e_priv { #define PRIV_LOCK(priv) sx_xlock(&(priv)->state_lock) #define PRIV_UNLOCK(priv) sx_xunlock(&(priv)->state_lock) #define PRIV_LOCKED(priv) sx_xlocked(&(priv)->state_lock) +#define PRIV_ASSERT_LOCKED(priv) sx_assert(&(priv)->state_lock, SA_XLOCKED) struct sx state_lock; /* Protects Interface state */ struct mlx5_uar cq_uar; u32 pdn; Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:43:45 2019 (r353193) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:44:29 2019 (r353194) @@ -772,6 +772,8 @@ mlx5e_sync_ifp_addr(struct mlx5e_priv *priv) struct ifaddr *ifa; struct ifmultiaddr *ifma; + PRIV_ASSERT_LOCKED(priv); + /* XXX adding this entry might not be needed */ mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, LLADDR((struct sockaddr_dl *)(ifp->if_addr->ifa_addr))); From owner-svn-src-all@freebsd.org Mon Oct 7 08:45:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99FCFFD7ED; Mon, 7 Oct 2019 08:45:07 +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 46mvDz3T80z4XlB; Mon, 7 Oct 2019 08:45:07 +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 5A5C9C182; Mon, 7 Oct 2019 08:45:07 +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 x978j7TP060321; Mon, 7 Oct 2019 08:45:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978j65M060319; Mon, 7 Oct 2019 08:45:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070845.x978j65M060319@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 08:45:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353195 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353195 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:45:07 -0000 Author: hselasky Date: Mon Oct 7 08:45:06 2019 New Revision: 353195 URL: https://svnweb.freebsd.org/changeset/base/353195 Log: MFC r352961: Implement macro for asserting priv lock in mlx5en. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:44:29 2019 (r353194) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:45:06 2019 (r353195) @@ -951,6 +951,7 @@ struct mlx5e_priv { #define PRIV_LOCK(priv) sx_xlock(&(priv)->state_lock) #define PRIV_UNLOCK(priv) sx_xunlock(&(priv)->state_lock) #define PRIV_LOCKED(priv) sx_xlocked(&(priv)->state_lock) +#define PRIV_ASSERT_LOCKED(priv) sx_assert(&(priv)->state_lock, SA_XLOCKED) struct sx state_lock; /* Protects Interface state */ struct mlx5_uar cq_uar; u32 pdn; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:44:29 2019 (r353194) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:45:06 2019 (r353195) @@ -772,6 +772,8 @@ mlx5e_sync_ifp_addr(struct mlx5e_priv *priv) struct ifaddr *ifa; struct ifmultiaddr *ifma; + PRIV_ASSERT_LOCKED(priv); + /* XXX adding this entry might not be needed */ mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, LLADDR((struct sockaddr_dl *)(ifp->if_addr->ifa_addr))); From owner-svn-src-all@freebsd.org Mon Oct 7 08:46:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CBD8FD8D1; Mon, 7 Oct 2019 08:46:24 +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 46mvGS30y0z4XvQ; Mon, 7 Oct 2019 08:46: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 4B963C183; Mon, 7 Oct 2019 08:46: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 x978kO5E060448; Mon, 7 Oct 2019 08:46:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978kMb0060441; Mon, 7 Oct 2019 08:46:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070846.x978kMb0060441@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 08:46:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353196 - in stable/12/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5 X-SVN-Commit-Revision: 353196 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:46:24 -0000 Author: hselasky Date: Mon Oct 7 08:46:22 2019 New Revision: 353196 URL: https://svnweb.freebsd.org/changeset/base/353196 Log: MFC r352962: Add support for Multi-Physical Function Switch, MPFS, in mlx5en. MPFS is a logical switch in the Mellanox device which forward packets based on a hardware driven L2 address table, to one or more physical- or virtual- functions. The physical- or virtual- function is required to tell the MPFS by using the MPFS firmware commands, which unicast MAC addresses it is requesting from the physical port's traffic. Broadcast and multicast traffic however, is copied to all listening physical- and virtual- functions and does not need a rule in the MPFS switching table. Linux commit: eeb66cdb682678bfd1f02a4547e3649b38ffea7e Sponsored by: Mellanox Technologies Added: stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c - copied unchanged from r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c stable/12/sys/dev/mlx5/mpfs.h - copied unchanged from r352962, head/sys/dev/mlx5/mpfs.h Modified: stable/12/sys/conf/files stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c stable/12/sys/modules/mlx5/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/conf/files ============================================================================== --- stable/12/sys/conf/files Mon Oct 7 08:45:06 2019 (r353195) +++ stable/12/sys/conf/files Mon Oct 7 08:46:22 2019 (r353196) @@ -4810,6 +4810,8 @@ dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mpfs.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 08:45:06 2019 (r353195) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 08:46:22 2019 (r353196) @@ -717,6 +717,12 @@ struct mlx5_core_dev { struct mlx5_rsvd_gids reserved_gids; atomic_t roce_en; } roce; + + struct { + spinlock_t spinlock; +#define MLX5_MPFS_TABLE_MAX 32 + long bitmap[BITS_TO_LONGS(MLX5_MPFS_TABLE_MAX)]; + } mpfs; #ifdef CONFIG_MLX5_FPGA struct mlx5_fpga_device *fpga; #endif Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:45:06 2019 (r353195) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:46:22 2019 (r353196) @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -1130,10 +1131,16 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st goto err_free_comp_eqs; } + err = mlx5_mpfs_init(dev); + if (err) { + mlx5_core_err(dev, "mpfs init failed %d\n", err); + goto err_fs; + } + err = mlx5_fpga_device_start(dev); if (err) { dev_err(&pdev->dev, "fpga device start failed %d\n", err); - goto err_fs; + goto err_mpfs; } err = mlx5_register_device(dev); @@ -1151,6 +1158,9 @@ out: err_fpga: mlx5_fpga_device_stop(dev); +err_mpfs: + mlx5_mpfs_destroy(dev); + err_fs: mlx5_cleanup_fs(dev); @@ -1216,6 +1226,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mlx5_unregister_device(dev); mlx5_fpga_device_stop(dev); + mlx5_mpfs_destroy(dev); mlx5_cleanup_fs(dev); unmap_bf_area(dev); mlx5_wait_for_reclaim_vfs_pages(dev); Copied: stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c (from r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 08:46:22 2019 (r353196, copy of r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c) @@ -0,0 +1,125 @@ +/*- + * Copyright (c) 2019, Mellanox Technologies, Ltd. 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 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 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$ + */ + +#include +#include + +#include +#include +#include +#include + +#define MPFS_LOCK(dev) spin_lock(&(dev)->mpfs.spinlock) +#define MPFS_UNLOCK(dev) spin_unlock(&(dev)->mpfs.spinlock) + +int +mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u32 *p_index, const u8 *mac) +{ + const u32 l2table_size = MIN(1U << MLX5_CAP_GEN(dev, log_max_l2_table), + MLX5_MPFS_TABLE_MAX); + u32 in[MLX5_ST_SZ_DW(set_l2_table_entry_in)] = {}; + u32 out[MLX5_ST_SZ_DW(set_l2_table_entry_out)] = {}; + u8 *in_mac_addr; + u32 index; + int err; + + if (!MLX5_CAP_GEN(dev, eswitch_flow_table)) { + *p_index = 0; + return (0); + } + + MPFS_LOCK(dev); + index = find_first_zero_bit(dev->mpfs.bitmap, l2table_size); + if (index < l2table_size) + set_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + + if (index >= l2table_size) + return (-ENOMEM); + + MLX5_SET(set_l2_table_entry_in, in, opcode, MLX5_CMD_OP_SET_L2_TABLE_ENTRY); + MLX5_SET(set_l2_table_entry_in, in, table_index, index); + + in_mac_addr = MLX5_ADDR_OF(set_l2_table_entry_in, in, mac_address); + ether_addr_copy(&in_mac_addr[2], mac); + + err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); + if (err != 0) { + MPFS_LOCK(dev); + clear_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + } else { + *p_index = index; + } + return (err); +} + +int +mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u32 index) +{ + u32 in[MLX5_ST_SZ_DW(delete_l2_table_entry_in)] = {}; + u32 out[MLX5_ST_SZ_DW(delete_l2_table_entry_out)] = {}; + int err; + + if (!MLX5_CAP_GEN(dev, eswitch_flow_table)) { + if (index != 0) + return (-EINVAL); + return (0); + } + + MLX5_SET(delete_l2_table_entry_in, in, opcode, MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY); + MLX5_SET(delete_l2_table_entry_in, in, table_index, index); + + err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); + if (err == 0) { + MPFS_LOCK(dev); + clear_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + } + return (err); +} + +int +mlx5_mpfs_init(struct mlx5_core_dev *dev) +{ + + spin_lock_init(&dev->mpfs.spinlock); + bitmap_zero(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); + return (0); +} + +void +mlx5_mpfs_destroy(struct mlx5_core_dev *dev) +{ + u32 num; + + num = bitmap_weight(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); + if (num != 0) + dev_err(&dev->pdev->dev, "Leaking %u MPFS MAC table entries\n", num); + + spin_lock_destroy(&dev->mpfs.spinlock); +} Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:45:06 2019 (r353195) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:46:22 2019 (r353196) @@ -29,6 +29,7 @@ #include #include +#include #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) @@ -54,6 +55,7 @@ enum { struct mlx5e_eth_addr_hash_node { LIST_ENTRY(mlx5e_eth_addr_hash_node) hlist; u8 action; + u32 mpfs_index; struct mlx5e_eth_addr_info ai; }; @@ -63,29 +65,23 @@ mlx5e_hash_eth_addr(const u8 * addr) return (addr[5]); } -static void +static bool mlx5e_add_eth_addr_to_hash(struct mlx5e_eth_addr_hash_head *hash, - const u8 * addr) + struct mlx5e_eth_addr_hash_node *hn_new) { struct mlx5e_eth_addr_hash_node *hn; - int ix = mlx5e_hash_eth_addr(addr); + u32 ix = mlx5e_hash_eth_addr(hn_new->ai.addr); LIST_FOREACH(hn, &hash[ix], hlist) { - if (bcmp(hn->ai.addr, addr, ETHER_ADDR_LEN) == 0) { + if (bcmp(hn->ai.addr, hn_new->ai.addr, ETHER_ADDR_LEN) == 0) { if (hn->action == MLX5E_ACTION_DEL) hn->action = MLX5E_ACTION_NONE; - return; + free(hn_new, M_MLX5EN); + return (false); } } - - hn = malloc(sizeof(*hn), M_MLX5EN, M_NOWAIT | M_ZERO); - if (hn == NULL) - return; - - ether_addr_copy(hn->ai.addr, addr); - hn->action = MLX5E_ACTION_ADD; - - LIST_INSERT_HEAD(&hash[ix], hn, hlist); + LIST_INSERT_HEAD(&hash[ix], hn_new, hlist); + return (true); } static void @@ -757,6 +753,8 @@ mlx5e_execute_action(struct mlx5e_priv *priv, case MLX5E_ACTION_DEL: mlx5e_del_eth_addr_from_flow_table(priv, &hn->ai); + if (hn->mpfs_index != -1U) + mlx5_mpfs_del_mac(priv->mdev, hn->mpfs_index); mlx5e_del_eth_addr_from_hash(hn); break; @@ -765,36 +763,139 @@ mlx5e_execute_action(struct mlx5e_priv *priv, } } +static struct mlx5e_eth_addr_hash_node * +mlx5e_move_hn(struct mlx5e_eth_addr_hash_head *fh, struct mlx5e_eth_addr_hash_head *uh) +{ + struct mlx5e_eth_addr_hash_node *hn; + + hn = LIST_FIRST(fh); + if (hn != NULL) { + LIST_REMOVE(hn, hlist); + LIST_INSERT_HEAD(uh, hn, hlist); + } + return (hn); +} + +static struct mlx5e_eth_addr_hash_node * +mlx5e_remove_hn(struct mlx5e_eth_addr_hash_head *fh) +{ + struct mlx5e_eth_addr_hash_node *hn; + + hn = LIST_FIRST(fh); + if (hn != NULL) + LIST_REMOVE(hn, hlist); + return (hn); +} + static void mlx5e_sync_ifp_addr(struct mlx5e_priv *priv) { + struct mlx5e_eth_addr_hash_head head_free; + struct mlx5e_eth_addr_hash_head head_uc; + struct mlx5e_eth_addr_hash_head head_mc; + struct mlx5e_eth_addr_hash_node *hn; struct ifnet *ifp = priv->ifp; struct ifaddr *ifa; struct ifmultiaddr *ifma; + bool success = false; + size_t x; + size_t num; PRIV_ASSERT_LOCKED(priv); - /* XXX adding this entry might not be needed */ - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, + LIST_INIT(&head_free); + LIST_INIT(&head_uc); + LIST_INIT(&head_mc); +retry: + num = 1; + + if_addr_rlock(ifp); + CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + num++; + } + if_addr_runlock(ifp); + + if_maddr_rlock(ifp); + CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + num++; + } + if_maddr_runlock(ifp); + + /* allocate place holders */ + for (x = 0; x != num; x++) { + hn = malloc(sizeof(*hn), M_MLX5EN, M_WAITOK | M_ZERO); + hn->action = MLX5E_ACTION_ADD; + hn->mpfs_index = -1U; + LIST_INSERT_HEAD(&head_free, hn, hlist); + } + + hn = mlx5e_move_hn(&head_free, &head_uc); + if (hn == NULL) + goto cleanup; + + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)(ifp->if_addr->ifa_addr))); if_addr_rlock(ifp); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_LINK) continue; - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, + hn = mlx5e_move_hn(&head_free, &head_uc); + if (hn == NULL) + break; + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)ifa->ifa_addr)); } if_addr_runlock(ifp); + if (ifa != NULL) + goto cleanup; if_maddr_rlock(ifp); CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_mc, + hn = mlx5e_move_hn(&head_free, &head_mc); + if (hn == NULL) + break; + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); } if_maddr_runlock(ifp); + if (ifma != NULL) + goto cleanup; + + /* insert L2 unicast addresses into hash list */ + + while ((hn = mlx5e_remove_hn(&head_uc)) != NULL) { + if (mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, hn) == 0) + continue; + if (hn->mpfs_index == -1U) + mlx5_mpfs_add_mac(priv->mdev, &hn->mpfs_index, hn->ai.addr); + } + + /* insert L2 multicast addresses into hash list */ + + while ((hn = mlx5e_remove_hn(&head_mc)) != NULL) { + if (mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_mc, hn) == 0) + continue; + } + + success = true; + +cleanup: + while ((hn = mlx5e_remove_hn(&head_uc)) != NULL) + free(hn, M_MLX5EN); + while ((hn = mlx5e_remove_hn(&head_mc)) != NULL) + free(hn, M_MLX5EN); + while ((hn = mlx5e_remove_hn(&head_free)) != NULL) + free(hn, M_MLX5EN); + + if (success == false) + goto retry; } static void mlx5e_fill_addr_array(struct mlx5e_priv *priv, int list_type, @@ -1493,6 +1594,8 @@ err_destroy_vlan_flow_table: void mlx5e_close_flow_table(struct mlx5e_priv *priv) { + + mlx5e_handle_ifp_addr(priv); mlx5e_destroy_inner_rss_flow_table(priv); mlx5e_destroy_main_flow_table(priv); mlx5e_destroy_vlan_flow_table(priv); Copied: stable/12/sys/dev/mlx5/mpfs.h (from r352962, head/sys/dev/mlx5/mpfs.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/sys/dev/mlx5/mpfs.h Mon Oct 7 08:46:22 2019 (r353196, copy of r352962, head/sys/dev/mlx5/mpfs.h) @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2019, Mellanox Technologies, Ltd. 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 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 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 _MLX5_MPFS_H_ +#define _MLX5_MPFS_H_ + +struct mlx5_core_dev; +int mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u32 *p_index, const u8 *mac); +int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u32 index); +int mlx5_mpfs_init(struct mlx5_core_dev *dev); +void mlx5_mpfs_destroy(struct mlx5_core_dev *dev); + +#endif /* _MLX5_MPFS_H_ */ Modified: stable/12/sys/modules/mlx5/Makefile ============================================================================== --- stable/12/sys/modules/mlx5/Makefile Mon Oct 7 08:45:06 2019 (r353195) +++ stable/12/sys/modules/mlx5/Makefile Mon Oct 7 08:46:22 2019 (r353196) @@ -19,6 +19,7 @@ mlx5_health.c \ mlx5_mad.c \ mlx5_main.c \ mlx5_mcg.c \ +mlx5_mpfs.c \ mlx5_mr.c \ mlx5_pagealloc.c \ mlx5_pd.c \ From owner-svn-src-all@freebsd.org Mon Oct 7 08:47:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 39DF9FDA88; Mon, 7 Oct 2019 08:47:10 +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 46mvHL1TMnz4Y7k; Mon, 7 Oct 2019 08:47:10 +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 F333CC185; Mon, 7 Oct 2019 08:47:09 +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 x978l90J060552; Mon, 7 Oct 2019 08:47:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978l8rF060546; Mon, 7 Oct 2019 08:47:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070847.x978l8rF060546@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 08:47:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353197 - in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5 X-SVN-Commit-Revision: 353197 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:47:10 -0000 Author: hselasky Date: Mon Oct 7 08:47:08 2019 New Revision: 353197 URL: https://svnweb.freebsd.org/changeset/base/353197 Log: MFC r352962: Add support for Multi-Physical Function Switch, MPFS, in mlx5en. MPFS is a logical switch in the Mellanox device which forward packets based on a hardware driven L2 address table, to one or more physical- or virtual- functions. The physical- or virtual- function is required to tell the MPFS by using the MPFS firmware commands, which unicast MAC addresses it is requesting from the physical port's traffic. Broadcast and multicast traffic however, is copied to all listening physical- and virtual- functions and does not need a rule in the MPFS switching table. Linux commit: eeb66cdb682678bfd1f02a4547e3649b38ffea7e Sponsored by: Mellanox Technologies Added: stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c - copied unchanged from r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c stable/11/sys/dev/mlx5/mpfs.h - copied unchanged from r352962, head/sys/dev/mlx5/mpfs.h Modified: stable/11/sys/conf/files stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c stable/11/sys/modules/mlx5/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Oct 7 08:46:22 2019 (r353196) +++ stable/11/sys/conf/files Mon Oct 7 08:47:08 2019 (r353197) @@ -4586,6 +4586,8 @@ dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mpfs.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 08:46:22 2019 (r353196) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 08:47:08 2019 (r353197) @@ -691,6 +691,12 @@ struct mlx5_core_dev { struct mlx5_rsvd_gids reserved_gids; atomic_t roce_en; } roce; + + struct { + spinlock_t spinlock; +#define MLX5_MPFS_TABLE_MAX 32 + long bitmap[BITS_TO_LONGS(MLX5_MPFS_TABLE_MAX)]; + } mpfs; #ifdef CONFIG_MLX5_FPGA struct mlx5_fpga_device *fpga; #endif Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:46:22 2019 (r353196) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:47:08 2019 (r353197) @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -1112,10 +1113,16 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st goto err_free_comp_eqs; } + err = mlx5_mpfs_init(dev); + if (err) { + mlx5_core_err(dev, "mpfs init failed %d\n", err); + goto err_fs; + } + err = mlx5_fpga_device_start(dev); if (err) { dev_err(&pdev->dev, "fpga device start failed %d\n", err); - goto err_fs; + goto err_mpfs; } err = mlx5_register_device(dev); @@ -1133,6 +1140,9 @@ out: err_fpga: mlx5_fpga_device_stop(dev); +err_mpfs: + mlx5_mpfs_destroy(dev); + err_fs: mlx5_cleanup_fs(dev); @@ -1198,6 +1208,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mlx5_unregister_device(dev); mlx5_fpga_device_stop(dev); + mlx5_mpfs_destroy(dev); mlx5_cleanup_fs(dev); unmap_bf_area(dev); mlx5_wait_for_reclaim_vfs_pages(dev); Copied: stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c (from r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 08:47:08 2019 (r353197, copy of r352962, head/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c) @@ -0,0 +1,125 @@ +/*- + * Copyright (c) 2019, Mellanox Technologies, Ltd. 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 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 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$ + */ + +#include +#include + +#include +#include +#include +#include + +#define MPFS_LOCK(dev) spin_lock(&(dev)->mpfs.spinlock) +#define MPFS_UNLOCK(dev) spin_unlock(&(dev)->mpfs.spinlock) + +int +mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u32 *p_index, const u8 *mac) +{ + const u32 l2table_size = MIN(1U << MLX5_CAP_GEN(dev, log_max_l2_table), + MLX5_MPFS_TABLE_MAX); + u32 in[MLX5_ST_SZ_DW(set_l2_table_entry_in)] = {}; + u32 out[MLX5_ST_SZ_DW(set_l2_table_entry_out)] = {}; + u8 *in_mac_addr; + u32 index; + int err; + + if (!MLX5_CAP_GEN(dev, eswitch_flow_table)) { + *p_index = 0; + return (0); + } + + MPFS_LOCK(dev); + index = find_first_zero_bit(dev->mpfs.bitmap, l2table_size); + if (index < l2table_size) + set_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + + if (index >= l2table_size) + return (-ENOMEM); + + MLX5_SET(set_l2_table_entry_in, in, opcode, MLX5_CMD_OP_SET_L2_TABLE_ENTRY); + MLX5_SET(set_l2_table_entry_in, in, table_index, index); + + in_mac_addr = MLX5_ADDR_OF(set_l2_table_entry_in, in, mac_address); + ether_addr_copy(&in_mac_addr[2], mac); + + err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); + if (err != 0) { + MPFS_LOCK(dev); + clear_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + } else { + *p_index = index; + } + return (err); +} + +int +mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u32 index) +{ + u32 in[MLX5_ST_SZ_DW(delete_l2_table_entry_in)] = {}; + u32 out[MLX5_ST_SZ_DW(delete_l2_table_entry_out)] = {}; + int err; + + if (!MLX5_CAP_GEN(dev, eswitch_flow_table)) { + if (index != 0) + return (-EINVAL); + return (0); + } + + MLX5_SET(delete_l2_table_entry_in, in, opcode, MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY); + MLX5_SET(delete_l2_table_entry_in, in, table_index, index); + + err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); + if (err == 0) { + MPFS_LOCK(dev); + clear_bit(index, dev->mpfs.bitmap); + MPFS_UNLOCK(dev); + } + return (err); +} + +int +mlx5_mpfs_init(struct mlx5_core_dev *dev) +{ + + spin_lock_init(&dev->mpfs.spinlock); + bitmap_zero(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); + return (0); +} + +void +mlx5_mpfs_destroy(struct mlx5_core_dev *dev) +{ + u32 num; + + num = bitmap_weight(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); + if (num != 0) + dev_err(&dev->pdev->dev, "Leaking %u MPFS MAC table entries\n", num); + + spin_lock_destroy(&dev->mpfs.spinlock); +} Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:46:22 2019 (r353196) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:47:08 2019 (r353197) @@ -29,6 +29,7 @@ #include #include +#include #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) @@ -54,6 +55,7 @@ enum { struct mlx5e_eth_addr_hash_node { LIST_ENTRY(mlx5e_eth_addr_hash_node) hlist; u8 action; + u32 mpfs_index; struct mlx5e_eth_addr_info ai; }; @@ -63,29 +65,23 @@ mlx5e_hash_eth_addr(const u8 * addr) return (addr[5]); } -static void +static bool mlx5e_add_eth_addr_to_hash(struct mlx5e_eth_addr_hash_head *hash, - const u8 * addr) + struct mlx5e_eth_addr_hash_node *hn_new) { struct mlx5e_eth_addr_hash_node *hn; - int ix = mlx5e_hash_eth_addr(addr); + u32 ix = mlx5e_hash_eth_addr(hn_new->ai.addr); LIST_FOREACH(hn, &hash[ix], hlist) { - if (bcmp(hn->ai.addr, addr, ETHER_ADDR_LEN) == 0) { + if (bcmp(hn->ai.addr, hn_new->ai.addr, ETHER_ADDR_LEN) == 0) { if (hn->action == MLX5E_ACTION_DEL) hn->action = MLX5E_ACTION_NONE; - return; + free(hn_new, M_MLX5EN); + return (false); } } - - hn = malloc(sizeof(*hn), M_MLX5EN, M_NOWAIT | M_ZERO); - if (hn == NULL) - return; - - ether_addr_copy(hn->ai.addr, addr); - hn->action = MLX5E_ACTION_ADD; - - LIST_INSERT_HEAD(&hash[ix], hn, hlist); + LIST_INSERT_HEAD(&hash[ix], hn_new, hlist); + return (true); } static void @@ -757,6 +753,8 @@ mlx5e_execute_action(struct mlx5e_priv *priv, case MLX5E_ACTION_DEL: mlx5e_del_eth_addr_from_flow_table(priv, &hn->ai); + if (hn->mpfs_index != -1U) + mlx5_mpfs_del_mac(priv->mdev, hn->mpfs_index); mlx5e_del_eth_addr_from_hash(hn); break; @@ -765,36 +763,139 @@ mlx5e_execute_action(struct mlx5e_priv *priv, } } +static struct mlx5e_eth_addr_hash_node * +mlx5e_move_hn(struct mlx5e_eth_addr_hash_head *fh, struct mlx5e_eth_addr_hash_head *uh) +{ + struct mlx5e_eth_addr_hash_node *hn; + + hn = LIST_FIRST(fh); + if (hn != NULL) { + LIST_REMOVE(hn, hlist); + LIST_INSERT_HEAD(uh, hn, hlist); + } + return (hn); +} + +static struct mlx5e_eth_addr_hash_node * +mlx5e_remove_hn(struct mlx5e_eth_addr_hash_head *fh) +{ + struct mlx5e_eth_addr_hash_node *hn; + + hn = LIST_FIRST(fh); + if (hn != NULL) + LIST_REMOVE(hn, hlist); + return (hn); +} + static void mlx5e_sync_ifp_addr(struct mlx5e_priv *priv) { + struct mlx5e_eth_addr_hash_head head_free; + struct mlx5e_eth_addr_hash_head head_uc; + struct mlx5e_eth_addr_hash_head head_mc; + struct mlx5e_eth_addr_hash_node *hn; struct ifnet *ifp = priv->ifp; struct ifaddr *ifa; struct ifmultiaddr *ifma; + bool success = false; + size_t x; + size_t num; PRIV_ASSERT_LOCKED(priv); - /* XXX adding this entry might not be needed */ - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, + LIST_INIT(&head_free); + LIST_INIT(&head_uc); + LIST_INIT(&head_mc); +retry: + num = 1; + + if_addr_rlock(ifp); + CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + num++; + } + if_addr_runlock(ifp); + + if_maddr_rlock(ifp); + CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + num++; + } + if_maddr_runlock(ifp); + + /* allocate place holders */ + for (x = 0; x != num; x++) { + hn = malloc(sizeof(*hn), M_MLX5EN, M_WAITOK | M_ZERO); + hn->action = MLX5E_ACTION_ADD; + hn->mpfs_index = -1U; + LIST_INSERT_HEAD(&head_free, hn, hlist); + } + + hn = mlx5e_move_hn(&head_free, &head_uc); + if (hn == NULL) + goto cleanup; + + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)(ifp->if_addr->ifa_addr))); if_addr_rlock(ifp); TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_LINK) continue; - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, + hn = mlx5e_move_hn(&head_free, &head_uc); + if (hn == NULL) + break; + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)ifa->ifa_addr)); } if_addr_runlock(ifp); + if (ifa != NULL) + goto cleanup; if_maddr_rlock(ifp); TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_mc, + hn = mlx5e_move_hn(&head_free, &head_mc); + if (hn == NULL) + break; + ether_addr_copy(hn->ai.addr, LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); } if_maddr_runlock(ifp); + if (ifma != NULL) + goto cleanup; + + /* insert L2 unicast addresses into hash list */ + + while ((hn = mlx5e_remove_hn(&head_uc)) != NULL) { + if (mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_uc, hn) == 0) + continue; + if (hn->mpfs_index == -1U) + mlx5_mpfs_add_mac(priv->mdev, &hn->mpfs_index, hn->ai.addr); + } + + /* insert L2 multicast addresses into hash list */ + + while ((hn = mlx5e_remove_hn(&head_mc)) != NULL) { + if (mlx5e_add_eth_addr_to_hash(priv->eth_addr.if_mc, hn) == 0) + continue; + } + + success = true; + +cleanup: + while ((hn = mlx5e_remove_hn(&head_uc)) != NULL) + free(hn, M_MLX5EN); + while ((hn = mlx5e_remove_hn(&head_mc)) != NULL) + free(hn, M_MLX5EN); + while ((hn = mlx5e_remove_hn(&head_free)) != NULL) + free(hn, M_MLX5EN); + + if (success == false) + goto retry; } static void mlx5e_fill_addr_array(struct mlx5e_priv *priv, int list_type, @@ -1493,6 +1594,8 @@ err_destroy_vlan_flow_table: void mlx5e_close_flow_table(struct mlx5e_priv *priv) { + + mlx5e_handle_ifp_addr(priv); mlx5e_destroy_inner_rss_flow_table(priv); mlx5e_destroy_main_flow_table(priv); mlx5e_destroy_vlan_flow_table(priv); Copied: stable/11/sys/dev/mlx5/mpfs.h (from r352962, head/sys/dev/mlx5/mpfs.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mpfs.h Mon Oct 7 08:47:08 2019 (r353197, copy of r352962, head/sys/dev/mlx5/mpfs.h) @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2019, Mellanox Technologies, Ltd. 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 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 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 _MLX5_MPFS_H_ +#define _MLX5_MPFS_H_ + +struct mlx5_core_dev; +int mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u32 *p_index, const u8 *mac); +int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u32 index); +int mlx5_mpfs_init(struct mlx5_core_dev *dev); +void mlx5_mpfs_destroy(struct mlx5_core_dev *dev); + +#endif /* _MLX5_MPFS_H_ */ Modified: stable/11/sys/modules/mlx5/Makefile ============================================================================== --- stable/11/sys/modules/mlx5/Makefile Mon Oct 7 08:46:22 2019 (r353196) +++ stable/11/sys/modules/mlx5/Makefile Mon Oct 7 08:47:08 2019 (r353197) @@ -19,6 +19,7 @@ mlx5_health.c \ mlx5_mad.c \ mlx5_main.c \ mlx5_mcg.c \ +mlx5_mpfs.c \ mlx5_mr.c \ mlx5_pagealloc.c \ mlx5_pd.c \ From owner-svn-src-all@freebsd.org Mon Oct 7 08:48:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5A26CFDBC4; Mon, 7 Oct 2019 08:48:50 +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 46mvKG1kTMz4YHk; Mon, 7 Oct 2019 08:48:50 +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 1934EC186; Mon, 7 Oct 2019 08:48:50 +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 x978mnqi060683; Mon, 7 Oct 2019 08:48:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978mnVn060679; Mon, 7 Oct 2019 08:48:49 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070848.x978mnVn060679@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 08:48:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353198 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353198 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:48:50 -0000 Author: hselasky Date: Mon Oct 7 08:48:49 2019 New Revision: 353198 URL: https://svnweb.freebsd.org/changeset/base/353198 Log: MFC r352963: Cleanup naming of IRQ vectors in mlx5en. Remove unused IRQ naming functions and arrays. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 08:47:08 2019 (r353197) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 08:48:49 2019 (r353198) @@ -84,10 +84,6 @@ enum { }; enum { - MLX5_MAX_IRQ_NAME = 32 -}; - -enum { MLX5_ATOMIC_MODE_OFF = 16, MLX5_ATOMIC_MODE_NONE = 0 << MLX5_ATOMIC_MODE_OFF, MLX5_ATOMIC_MODE_IB_COMP = 1 << MLX5_ATOMIC_MODE_OFF, @@ -556,10 +552,6 @@ struct mlx5_mr_table { struct radix_tree_root tree; }; -struct mlx5_irq_info { - char name[MLX5_MAX_IRQ_NAME]; -}; - #ifdef RATELIMIT struct mlx5_rl_entry { u32 rate; @@ -581,7 +573,6 @@ struct mlx5_priv { char name[MLX5_MAX_NAME_LEN]; struct mlx5_eq_table eq_table; struct msix_entry *msix_arr; - struct mlx5_irq_info *irq_info; struct mlx5_uuar_info uuari; MLX5_DECLARE_DOORBELL_LOCK(cq_uar_lock); int disable_irqs; @@ -1029,7 +1020,7 @@ struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_co void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vector, enum mlx5_cmd_mode mode); void mlx5_cq_event(struct mlx5_core_dev *dev, u32 cqn, int event_type); int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar); + int nent, u64 mask, struct mlx5_uar *uar); int mlx5_destroy_unmap_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq); int mlx5_start_eqs(struct mlx5_core_dev *dev); int mlx5_stop_eqs(struct mlx5_core_dev *dev); Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 08:47:08 2019 (r353197) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 08:48:49 2019 (r353198) @@ -102,8 +102,6 @@ int mlx5_firmware_flash(struct mlx5_core_dev *dev, con void mlx5e_init(void); void mlx5e_cleanup(void); -int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name); - int mlx5_ctl_init(void); void mlx5_ctl_fini(void); void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 08:47:08 2019 (r353197) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 08:48:49 2019 (r353198) @@ -415,7 +415,7 @@ static void init_eq_buf(struct mlx5_eq *eq) } int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar) + int nent, u64 mask, struct mlx5_uar *uar) { u32 out[MLX5_ST_SZ_DW(create_eq_out)] = {0}; struct mlx5_priv *priv = &dev->priv; @@ -463,10 +463,8 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, stru eq->irqn = vecidx; eq->dev = dev; eq->doorbell = uar->map + MLX5_EQ_DOORBEL_OFFSET; - snprintf(priv->irq_info[vecidx].name, MLX5_MAX_IRQ_NAME, "%s@pci:%s", - name, pci_name(dev->pdev)); err = request_irq(priv->msix_arr[vecidx].vector, mlx5_msix_handler, 0, - priv->irq_info[vecidx].name, eq); + "mlx5_core", eq); if (err) goto err_eq; #ifdef RSS @@ -568,7 +566,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->cmd_eq, MLX5_EQ_VEC_CMD, MLX5_NUM_CMD_EQE, 1ull << MLX5_EVENT_TYPE_CMD, - "mlx5_cmd_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create cmd EQ %d\n", err); return err; @@ -578,7 +576,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->async_eq, MLX5_EQ_VEC_ASYNC, MLX5_NUM_ASYNC_EQE, async_event_mask, - "mlx5_async_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create async EQ %d\n", err); goto err1; @@ -587,7 +585,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->pages_eq, MLX5_EQ_VEC_PAGES, /* TODO: sriov max_vf + */ 1, - 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, "mlx5_pages_eq", + 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create pages EQ %d\n", err); Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:47:08 2019 (r353197) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:48:49 2019 (r353198) @@ -285,8 +285,6 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) priv->msix_arr = kzalloc(nvec * sizeof(*priv->msix_arr), GFP_KERNEL); - priv->irq_info = kzalloc(nvec * sizeof(*priv->irq_info), GFP_KERNEL); - for (i = 0; i < nvec; i++) priv->msix_arr[i].entry = i; @@ -296,9 +294,7 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) return nvec; table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; - return 0; - } static void mlx5_disable_msix(struct mlx5_core_dev *dev) @@ -306,7 +302,6 @@ static void mlx5_disable_msix(struct mlx5_core_dev *de struct mlx5_priv *priv = &dev->priv; pci_disable_msix(dev->pdev); - kfree(priv->irq_info); kfree(priv->msix_arr); } @@ -604,30 +599,6 @@ int mlx5_vector2eqn(struct mlx5_core_dev *dev, int vec } EXPORT_SYMBOL(mlx5_vector2eqn); -int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name) -{ - struct mlx5_priv *priv = &dev->priv; - struct mlx5_eq_table *table = &priv->eq_table; - struct mlx5_eq *eq; - int err = -ENOENT; - - spin_lock(&table->lock); - list_for_each_entry(eq, &table->comp_eqs_list, list) { - if (eq->index == eq_ix) { - int irq_ix = eq_ix + MLX5_EQ_VEC_COMP_BASE; - - snprintf(priv->irq_info[irq_ix].name, MLX5_MAX_IRQ_NAME, - "%s-%d", name, eq_ix); - - err = 0; - break; - } - } - spin_unlock(&table->lock); - - return err; -} - static void free_comp_eqs(struct mlx5_core_dev *dev) { struct mlx5_eq_table *table = &dev->priv.eq_table; @@ -649,7 +620,6 @@ static void free_comp_eqs(struct mlx5_core_dev *dev) static int alloc_comp_eqs(struct mlx5_core_dev *dev) { struct mlx5_eq_table *table = &dev->priv.eq_table; - char name[MLX5_MAX_IRQ_NAME]; struct mlx5_eq *eq; int ncomp_vec; int nent; @@ -662,10 +632,9 @@ static int alloc_comp_eqs(struct mlx5_core_dev *dev) for (i = 0; i < ncomp_vec; i++) { eq = kzalloc(sizeof(*eq), GFP_KERNEL); - snprintf(name, MLX5_MAX_IRQ_NAME, "mlx5_comp%d", i); err = mlx5_create_map_eq(dev, eq, i + MLX5_EQ_VEC_COMP_BASE, nent, 0, - name, &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { kfree(eq); goto clean; From owner-svn-src-all@freebsd.org Mon Oct 7 08:49:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 543A9FDC5D; Mon, 7 Oct 2019 08:49:34 +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 46mvL61T8vz4YQ7; Mon, 7 Oct 2019 08:49:34 +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 15983C187; Mon, 7 Oct 2019 08:49:34 +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 x978nXGC060782; Mon, 7 Oct 2019 08:49:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978nXra060778; Mon, 7 Oct 2019 08:49:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070849.x978nXra060778@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 08:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353199 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353199 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:49:34 -0000 Author: hselasky Date: Mon Oct 7 08:49:32 2019 New Revision: 353199 URL: https://svnweb.freebsd.org/changeset/base/353199 Log: MFC r352963: Cleanup naming of IRQ vectors in mlx5en. Remove unused IRQ naming functions and arrays. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 08:48:49 2019 (r353198) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 08:49:32 2019 (r353199) @@ -82,10 +82,6 @@ enum { }; enum { - MLX5_MAX_IRQ_NAME = 32 -}; - -enum { MLX5_ATOMIC_MODE_OFF = 16, MLX5_ATOMIC_MODE_NONE = 0 << MLX5_ATOMIC_MODE_OFF, MLX5_ATOMIC_MODE_IB_COMP = 1 << MLX5_ATOMIC_MODE_OFF, @@ -550,15 +546,10 @@ struct mlx5_mr_table { struct radix_tree_root tree; }; -struct mlx5_irq_info { - char name[MLX5_MAX_IRQ_NAME]; -}; - struct mlx5_priv { char name[MLX5_MAX_NAME_LEN]; struct mlx5_eq_table eq_table; struct msix_entry *msix_arr; - struct mlx5_irq_info *irq_info; struct mlx5_uuar_info uuari; MLX5_DECLARE_DOORBELL_LOCK(cq_uar_lock); int disable_irqs; @@ -1003,7 +994,7 @@ struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_co void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vector, enum mlx5_cmd_mode mode); void mlx5_cq_event(struct mlx5_core_dev *dev, u32 cqn, int event_type); int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar); + int nent, u64 mask, struct mlx5_uar *uar); int mlx5_destroy_unmap_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq); int mlx5_start_eqs(struct mlx5_core_dev *dev); int mlx5_stop_eqs(struct mlx5_core_dev *dev); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 08:48:49 2019 (r353198) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 08:49:32 2019 (r353199) @@ -102,8 +102,6 @@ int mlx5_firmware_flash(struct mlx5_core_dev *dev, con void mlx5e_init(void); void mlx5e_cleanup(void); -int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name); - int mlx5_ctl_init(void); void mlx5_ctl_fini(void); void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 08:48:49 2019 (r353198) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 08:49:32 2019 (r353199) @@ -415,7 +415,7 @@ static void init_eq_buf(struct mlx5_eq *eq) } int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar) + int nent, u64 mask, struct mlx5_uar *uar) { u32 out[MLX5_ST_SZ_DW(create_eq_out)] = {0}; struct mlx5_priv *priv = &dev->priv; @@ -463,10 +463,8 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, stru eq->irqn = vecidx; eq->dev = dev; eq->doorbell = uar->map + MLX5_EQ_DOORBEL_OFFSET; - snprintf(priv->irq_info[vecidx].name, MLX5_MAX_IRQ_NAME, "%s@pci:%s", - name, pci_name(dev->pdev)); err = request_irq(priv->msix_arr[vecidx].vector, mlx5_msix_handler, 0, - priv->irq_info[vecidx].name, eq); + "mlx5_core", eq); if (err) goto err_eq; #ifdef RSS @@ -568,7 +566,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->cmd_eq, MLX5_EQ_VEC_CMD, MLX5_NUM_CMD_EQE, 1ull << MLX5_EVENT_TYPE_CMD, - "mlx5_cmd_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create cmd EQ %d\n", err); return err; @@ -578,7 +576,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->async_eq, MLX5_EQ_VEC_ASYNC, MLX5_NUM_ASYNC_EQE, async_event_mask, - "mlx5_async_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create async EQ %d\n", err); goto err1; @@ -587,7 +585,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->pages_eq, MLX5_EQ_VEC_PAGES, /* TODO: sriov max_vf + */ 1, - 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, "mlx5_pages_eq", + 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create pages EQ %d\n", err); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:48:49 2019 (r353198) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 08:49:32 2019 (r353199) @@ -285,8 +285,6 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) priv->msix_arr = kzalloc(nvec * sizeof(*priv->msix_arr), GFP_KERNEL); - priv->irq_info = kzalloc(nvec * sizeof(*priv->irq_info), GFP_KERNEL); - for (i = 0; i < nvec; i++) priv->msix_arr[i].entry = i; @@ -296,9 +294,7 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) return nvec; table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; - return 0; - } static void mlx5_disable_msix(struct mlx5_core_dev *dev) @@ -306,7 +302,6 @@ static void mlx5_disable_msix(struct mlx5_core_dev *de struct mlx5_priv *priv = &dev->priv; pci_disable_msix(dev->pdev); - kfree(priv->irq_info); kfree(priv->msix_arr); } @@ -604,30 +599,6 @@ int mlx5_vector2eqn(struct mlx5_core_dev *dev, int vec } EXPORT_SYMBOL(mlx5_vector2eqn); -int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name) -{ - struct mlx5_priv *priv = &dev->priv; - struct mlx5_eq_table *table = &priv->eq_table; - struct mlx5_eq *eq; - int err = -ENOENT; - - spin_lock(&table->lock); - list_for_each_entry(eq, &table->comp_eqs_list, list) { - if (eq->index == eq_ix) { - int irq_ix = eq_ix + MLX5_EQ_VEC_COMP_BASE; - - snprintf(priv->irq_info[irq_ix].name, MLX5_MAX_IRQ_NAME, - "%s-%d", name, eq_ix); - - err = 0; - break; - } - } - spin_unlock(&table->lock); - - return err; -} - static void free_comp_eqs(struct mlx5_core_dev *dev) { struct mlx5_eq_table *table = &dev->priv.eq_table; @@ -649,7 +620,6 @@ static void free_comp_eqs(struct mlx5_core_dev *dev) static int alloc_comp_eqs(struct mlx5_core_dev *dev) { struct mlx5_eq_table *table = &dev->priv.eq_table; - char name[MLX5_MAX_IRQ_NAME]; struct mlx5_eq *eq; int ncomp_vec; int nent; @@ -662,10 +632,9 @@ static int alloc_comp_eqs(struct mlx5_core_dev *dev) for (i = 0; i < ncomp_vec; i++) { eq = kzalloc(sizeof(*eq), GFP_KERNEL); - snprintf(name, MLX5_MAX_IRQ_NAME, "mlx5_comp%d", i); err = mlx5_create_map_eq(dev, eq, i + MLX5_EQ_VEC_COMP_BASE, nent, 0, - name, &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { kfree(eq); goto clean; From owner-svn-src-all@freebsd.org Mon Oct 7 08:50:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 937A5FDD06; Mon, 7 Oct 2019 08:50:23 +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 46mvM33BKjz4YXn; Mon, 7 Oct 2019 08:50:23 +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 50B01C18B; Mon, 7 Oct 2019 08:50:23 +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 x978oNr9060920; Mon, 7 Oct 2019 08:50:23 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978oN6P060919; Mon, 7 Oct 2019 08:50:23 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070850.x978oN6P060919@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 08:50:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353200 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353200 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:50:23 -0000 Author: hselasky Date: Mon Oct 7 08:50:22 2019 New Revision: 353200 URL: https://svnweb.freebsd.org/changeset/base/353200 Log: MFC r352964: Export channel IRQ number as part of the "hw_ctx_debug" sysctl(8) in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 08:49:32 2019 (r353199) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 08:50:22 2019 (r353200) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2015 Mellanox Technologies. All rights reserved. + * Copyright (c) 2015-2019 Mellanox Technologies. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1031,30 +1031,49 @@ mlx5e_ethtool_debug_channel_info(SYSCTL_HANDLER_ARGS) struct mlx5e_sq *sq; struct mlx5e_rq *rq; int error, i, tc; + bool opened; priv = arg1; error = sysctl_wire_old_buffer(req, 0); if (error != 0) return (error); - if (sbuf_new_for_sysctl(&sb, NULL, 128, req) == NULL) + if (sbuf_new_for_sysctl(&sb, NULL, 1024, req) == NULL) return (ENOMEM); sbuf_clear_flags(&sb, SBUF_INCLUDENUL); PRIV_LOCK(priv); - if (test_bit(MLX5E_STATE_OPENED, &priv->state) == 0) - goto out; - for (i = 0; i < priv->params.num_channels; i++) { - c = &priv->channel[i]; - rq = &c->rq; - sbuf_printf(&sb, "channel %d rq %d cq %d\n", - c->ix, rq->rqn, rq->cq.mcq.cqn); - for (tc = 0; tc < c->num_tc; tc++) { - sq = &c->sq[tc]; - sbuf_printf(&sb, "channel %d tc %d sq %d cq %d\n", - c->ix, tc, sq->sqn, sq->cq.mcq.cqn); + opened = test_bit(MLX5E_STATE_OPENED, &priv->state); + + sbuf_printf(&sb, "pages irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_PAGES].vector); + sbuf_printf(&sb, "command irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_CMD].vector); + sbuf_printf(&sb, "async irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_ASYNC].vector); + + for (i = 0; i != priv->params.num_channels; i++) { + int eqn_not_used = -1; + int irqn = MLX5_EQ_VEC_COMP_BASE; + + if (mlx5_vector2eqn(priv->mdev, i, &eqn_not_used, &irqn) != 0) + continue; + + c = opened ? &priv->channel[i] : NULL; + rq = opened ? &c->rq : NULL; + sbuf_printf(&sb, "channel %d rq %d cq %d irq %d\n", i, + opened ? rq->rqn : -1, + opened ? rq->cq.mcq.cqn : -1, + priv->mdev->priv.msix_arr[irqn].vector); + + for (tc = 0; tc != priv->num_tc; tc++) { + sq = opened ? &c->sq[tc] : NULL; + sbuf_printf(&sb, "channel %d tc %d sq %d cq %d irq %d\n", + i, tc, + opened ? sq->sqn : -1, + opened ? sq->cq.mcq.cqn : -1, + priv->mdev->priv.msix_arr[irqn].vector); } } -out: PRIV_UNLOCK(priv); error = sbuf_finish(&sb); sbuf_delete(&sb); From owner-svn-src-all@freebsd.org Mon Oct 7 08:56:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CA3A0FE060; Mon, 7 Oct 2019 08:56:27 +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 46mvV34FyHz4ZBm; Mon, 7 Oct 2019 08:56:27 +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 75915C368; Mon, 7 Oct 2019 08:56:27 +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 x978uR5u066739; Mon, 7 Oct 2019 08:56:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978uRuP066738; Mon, 7 Oct 2019 08:56:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070856.x978uRuP066738@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 08:56:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353201 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353201 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:56:27 -0000 Author: hselasky Date: Mon Oct 7 08:56:26 2019 New Revision: 353201 URL: https://svnweb.freebsd.org/changeset/base/353201 Log: Fix compilation after MFC r352962. This is a direct commit. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:50:22 2019 (r353200) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 08:56:26 2019 (r353201) @@ -810,7 +810,7 @@ retry: num = 1; if_addr_rlock(ifp); - CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_LINK) continue; num++; @@ -818,7 +818,7 @@ retry: if_addr_runlock(ifp); if_maddr_rlock(ifp); - CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; num++; From owner-svn-src-all@freebsd.org Mon Oct 7 08:57:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 26CE7FE11F; Mon, 7 Oct 2019 08:57:40 +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 46mvWS089Wz4ZKN; Mon, 7 Oct 2019 08:57:40 +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 C303DC36D; Mon, 7 Oct 2019 08:57:39 +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 x978vdJE066854; Mon, 7 Oct 2019 08:57:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978vdZN066853; Mon, 7 Oct 2019 08:57:39 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070857.x978vdZN066853@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 08:57:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353202 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353202 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:57:40 -0000 Author: hselasky Date: Mon Oct 7 08:57:39 2019 New Revision: 353202 URL: https://svnweb.freebsd.org/changeset/base/353202 Log: MFC r352964: Export channel IRQ number as part of the "hw_ctx_debug" sysctl(8) in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 08:56:26 2019 (r353201) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 08:57:39 2019 (r353202) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2015 Mellanox Technologies. All rights reserved. + * Copyright (c) 2015-2019 Mellanox Technologies. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1031,30 +1031,49 @@ mlx5e_ethtool_debug_channel_info(SYSCTL_HANDLER_ARGS) struct mlx5e_sq *sq; struct mlx5e_rq *rq; int error, i, tc; + bool opened; priv = arg1; error = sysctl_wire_old_buffer(req, 0); if (error != 0) return (error); - if (sbuf_new_for_sysctl(&sb, NULL, 128, req) == NULL) + if (sbuf_new_for_sysctl(&sb, NULL, 1024, req) == NULL) return (ENOMEM); sbuf_clear_flags(&sb, SBUF_INCLUDENUL); PRIV_LOCK(priv); - if (test_bit(MLX5E_STATE_OPENED, &priv->state) == 0) - goto out; - for (i = 0; i < priv->params.num_channels; i++) { - c = &priv->channel[i]; - rq = &c->rq; - sbuf_printf(&sb, "channel %d rq %d cq %d\n", - c->ix, rq->rqn, rq->cq.mcq.cqn); - for (tc = 0; tc < c->num_tc; tc++) { - sq = &c->sq[tc]; - sbuf_printf(&sb, "channel %d tc %d sq %d cq %d\n", - c->ix, tc, sq->sqn, sq->cq.mcq.cqn); + opened = test_bit(MLX5E_STATE_OPENED, &priv->state); + + sbuf_printf(&sb, "pages irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_PAGES].vector); + sbuf_printf(&sb, "command irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_CMD].vector); + sbuf_printf(&sb, "async irq %d\n", + priv->mdev->priv.msix_arr[MLX5_EQ_VEC_ASYNC].vector); + + for (i = 0; i != priv->params.num_channels; i++) { + int eqn_not_used = -1; + int irqn = MLX5_EQ_VEC_COMP_BASE; + + if (mlx5_vector2eqn(priv->mdev, i, &eqn_not_used, &irqn) != 0) + continue; + + c = opened ? &priv->channel[i] : NULL; + rq = opened ? &c->rq : NULL; + sbuf_printf(&sb, "channel %d rq %d cq %d irq %d\n", i, + opened ? rq->rqn : -1, + opened ? rq->cq.mcq.cqn : -1, + priv->mdev->priv.msix_arr[irqn].vector); + + for (tc = 0; tc != priv->num_tc; tc++) { + sq = opened ? &c->sq[tc] : NULL; + sbuf_printf(&sb, "channel %d tc %d sq %d cq %d irq %d\n", + i, tc, + opened ? sq->sqn : -1, + opened ? sq->cq.mcq.cqn : -1, + priv->mdev->priv.msix_arr[irqn].vector); } } -out: PRIV_UNLOCK(priv); error = sbuf_finish(&sb); sbuf_delete(&sb); From owner-svn-src-all@freebsd.org Mon Oct 7 08:59:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BFDA5FE1B3; Mon, 7 Oct 2019 08:59:10 +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 46mvYB4K2Lz4ZRq; Mon, 7 Oct 2019 08:59:10 +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 5D0ADC36E; Mon, 7 Oct 2019 08:59:10 +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 x978xAXe066985; Mon, 7 Oct 2019 08:59:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x978xAkS066984; Mon, 7 Oct 2019 08:59:10 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070859.x978xAkS066984@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 08:59:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353203 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353203 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 08:59:10 -0000 Author: hselasky Date: Mon Oct 7 08:59:09 2019 New Revision: 353203 URL: https://svnweb.freebsd.org/changeset/base/353203 Log: MFC r352965: Correct and update some counter names in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:57:39 2019 (r353202) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:59:09 2019 (r353203) @@ -255,7 +255,7 @@ struct mlx5e_vport_stats { m(+1, u64, out_broadcast_pkts, "out_broadcast_pkts", "Out broadcast packets") #define MLX5E_PPORT_ETHERNET_EXTENDED_STATS_DEBUG(m) \ - m(+1, u64, port_transmit_wait_high, "port_transmit_wait_high", "Port transmit wait high") \ + m(+1, u64, port_transmit_wait, "port_transmit_wait", "Port transmit wait") \ m(+1, u64, ecn_marked, "ecn_marked", "ECN marked") \ m(+1, u64, no_buffer_discard_mc, "no_buffer_discard_mc", "No buffer discard mc") \ m(+1, u64, rx_ebp, "rx_ebp", "RX EBP") \ @@ -339,14 +339,14 @@ struct mlx5e_vport_stats { /* Per priority statistics for PFC */ #define MLX5E_PPORT_PER_PRIO_STATS_SUB(m,n,p) \ m(n, p, +1, u64, rx_octets, "rx_octets", "Received octets") \ - m(n, p, +1, u64, reserved_0, "reserved_0", "Reserved") \ - m(n, p, +1, u64, reserved_1, "reserved_1", "Reserved") \ - m(n, p, +1, u64, reserved_2, "reserved_2", "Reserved") \ + m(n, p, +1, u64, rx_uc_frames, "rx_uc_frames", "Received unicast frames") \ + m(n, p, +1, u64, rx_mc_frames, "rx_mc_frames", "Received multicast frames") \ + m(n, p, +1, u64, rx_bc_frames, "rx_bc_frames", "Received broadcast frames") \ m(n, p, +1, u64, rx_frames, "rx_frames", "Received frames") \ m(n, p, +1, u64, tx_octets, "tx_octets", "Transmitted octets") \ - m(n, p, +1, u64, reserved_3, "reserved_3", "Reserved") \ - m(n, p, +1, u64, reserved_4, "reserved_4", "Reserved") \ - m(n, p, +1, u64, reserved_5, "reserved_5", "Reserved") \ + m(n, p, +1, u64, tx_uc_frames, "tx_uc_frames", "Transmitted unicast frames") \ + m(n, p, +1, u64, tx_mc_frames, "tx_mc_frames", "Transmitted multicast frames") \ + m(n, p, +1, u64, tx_bc_frames, "tx_bc_frames", "Transmitted broadcast frames") \ m(n, p, +1, u64, tx_frames, "tx_frames", "Transmitted frames") \ m(n, p, +1, u64, rx_pause, "rx_pause", "Received pause frames") \ m(n, p, +1, u64, rx_pause_duration, "rx_pause_duration", \ From owner-svn-src-all@freebsd.org Mon Oct 7 09:00:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D35CFE44A; Mon, 7 Oct 2019 09:00:09 +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 46mvZK0Rlcz4ZZk; Mon, 7 Oct 2019 09:00:09 +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 E8363C377; Mon, 7 Oct 2019 09:00:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x97908Wx067177; Mon, 7 Oct 2019 09:00:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97908w9067176; Mon, 7 Oct 2019 09:00:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070900.x97908w9067176@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 09:00:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353204 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353204 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:00:09 -0000 Author: hselasky Date: Mon Oct 7 09:00:08 2019 New Revision: 353204 URL: https://svnweb.freebsd.org/changeset/base/353204 Log: MFC r352965: Correct and update some counter names in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 08:59:09 2019 (r353203) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:00:08 2019 (r353204) @@ -254,7 +254,7 @@ struct mlx5e_vport_stats { m(+1, u64, out_broadcast_pkts, "out_broadcast_pkts", "Out broadcast packets") #define MLX5E_PPORT_ETHERNET_EXTENDED_STATS_DEBUG(m) \ - m(+1, u64, port_transmit_wait_high, "port_transmit_wait_high", "Port transmit wait high") \ + m(+1, u64, port_transmit_wait, "port_transmit_wait", "Port transmit wait") \ m(+1, u64, ecn_marked, "ecn_marked", "ECN marked") \ m(+1, u64, no_buffer_discard_mc, "no_buffer_discard_mc", "No buffer discard mc") \ m(+1, u64, rx_ebp, "rx_ebp", "RX EBP") \ @@ -338,14 +338,14 @@ struct mlx5e_vport_stats { /* Per priority statistics for PFC */ #define MLX5E_PPORT_PER_PRIO_STATS_SUB(m,n,p) \ m(n, p, +1, u64, rx_octets, "rx_octets", "Received octets") \ - m(n, p, +1, u64, reserved_0, "reserved_0", "Reserved") \ - m(n, p, +1, u64, reserved_1, "reserved_1", "Reserved") \ - m(n, p, +1, u64, reserved_2, "reserved_2", "Reserved") \ + m(n, p, +1, u64, rx_uc_frames, "rx_uc_frames", "Received unicast frames") \ + m(n, p, +1, u64, rx_mc_frames, "rx_mc_frames", "Received multicast frames") \ + m(n, p, +1, u64, rx_bc_frames, "rx_bc_frames", "Received broadcast frames") \ m(n, p, +1, u64, rx_frames, "rx_frames", "Received frames") \ m(n, p, +1, u64, tx_octets, "tx_octets", "Transmitted octets") \ - m(n, p, +1, u64, reserved_3, "reserved_3", "Reserved") \ - m(n, p, +1, u64, reserved_4, "reserved_4", "Reserved") \ - m(n, p, +1, u64, reserved_5, "reserved_5", "Reserved") \ + m(n, p, +1, u64, tx_uc_frames, "tx_uc_frames", "Transmitted unicast frames") \ + m(n, p, +1, u64, tx_mc_frames, "tx_mc_frames", "Transmitted multicast frames") \ + m(n, p, +1, u64, tx_bc_frames, "tx_bc_frames", "Transmitted broadcast frames") \ m(n, p, +1, u64, tx_frames, "tx_frames", "Transmitted frames") \ m(n, p, +1, u64, rx_pause, "rx_pause", "Received pause frames") \ m(n, p, +1, u64, rx_pause_duration, "rx_pause_duration", \ From owner-svn-src-all@freebsd.org Mon Oct 7 09:01:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3D7FFFE583; Mon, 7 Oct 2019 09:01:23 +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 46mvbl0wTZz4ZwF; Mon, 7 Oct 2019 09:01:23 +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 F41B4C4D0; Mon, 7 Oct 2019 09:01:22 +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 x9791MkH070075; Mon, 7 Oct 2019 09:01:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9791Ms2069047; Mon, 7 Oct 2019 09:01:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070901.x9791Ms2069047@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 09:01:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353205 - in stable/12/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 353205 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:01:23 -0000 Author: hselasky Date: Mon Oct 7 09:01:21 2019 New Revision: 353205 URL: https://svnweb.freebsd.org/changeset/base/353205 Log: MFC r352966: Add port module event software counters in mlx5core. While at it, fixup PME based on latest PRM defines. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/device.h stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/device.h ============================================================================== --- stable/12/sys/dev/mlx5/device.h Mon Oct 7 09:00:08 2019 (r353204) +++ stable/12/sys/dev/mlx5/device.h Mon Oct 7 09:01:21 2019 (r353205) @@ -537,7 +537,7 @@ enum { MLX5_MODULE_STATUS_PLUGGED_ENABLED = 0x1, MLX5_MODULE_STATUS_UNPLUGGED = 0x2, MLX5_MODULE_STATUS_ERROR = 0x3, - MLX5_MODULE_STATUS_PLUGGED_DISABLED = 0x4, + MLX5_MODULE_STATUS_NUM , }; enum { @@ -549,7 +549,7 @@ enum { MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE = 0x5, MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6, MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED = 0x7, - MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED = 0xc, + MLX5_MODULE_EVENT_ERROR_NUM , }; struct mlx5_eqe_port_module_event { Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:00:08 2019 (r353204) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:01:21 2019 (r353205) @@ -569,6 +569,11 @@ struct mlx5_rl_table { }; #endif +struct mlx5_pme_stats { + u64 status_counters[MLX5_MODULE_STATUS_NUM]; + u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM]; +}; + struct mlx5_priv { char name[MLX5_MAX_NAME_LEN]; struct mlx5_eq_table eq_table; @@ -624,6 +629,7 @@ struct mlx5_priv { #ifdef RATELIMIT struct mlx5_rl_table rl_table; #endif + struct mlx5_pme_stats pme_stats; }; enum mlx5_device_state { Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:00:08 2019 (r353204) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:01:21 2019 (r353205) @@ -639,9 +639,9 @@ static const char *mlx5_port_module_event_error_type_t { switch (error_type) { case MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED: - return "Power Budget Exceeded"; + return "Power budget exceeded"; case MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX_CABLE_MODULE: - return "Long Range for non MLNX cable/module"; + return "Long Range for non MLNX cable"; case MLX5_MODULE_EVENT_ERROR_BUS_STUCK: return "Bus stuck(I2C or data shorted)"; case MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT: @@ -649,18 +649,11 @@ static const char *mlx5_port_module_event_error_type_t case MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST: return "Enforce part number list"; case MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE: - return "Unsupported Cable"; + return "Unknown identifier"; case MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE: return "High Temperature"; case MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED: - return "Cable is shorted"; - case MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED: - return "One or more network ports have been powered " - "down due to insufficient/unadvertised power on " - "the PCIe slot. Please refer to the card's user " - "manual for power specifications or contact " - "Mellanox support."; - + return "Bad or shorted cable/module"; default: return "Unknown error type"; } @@ -686,29 +679,36 @@ static void mlx5_port_module_event(struct mlx5_core_de module_num = (unsigned int)module_event_eqe->module; module_status = (unsigned int)module_event_eqe->module_status & - PORT_MODULE_EVENT_MODULE_STATUS_MASK; + PORT_MODULE_EVENT_MODULE_STATUS_MASK; error_type = (unsigned int)module_event_eqe->error_type & - PORT_MODULE_EVENT_ERROR_TYPE_MASK; + PORT_MODULE_EVENT_ERROR_TYPE_MASK; + if (module_status < MLX5_MODULE_STATUS_NUM) + dev->priv.pme_stats.status_counters[module_status]++; switch (module_status) { case MLX5_MODULE_STATUS_PLUGGED_ENABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged and enabled\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, status: plugged and enabled\n", + module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: unplugged\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, status: unplugged\n", module_num); break; case MLX5_MODULE_STATUS_ERROR: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); + device_printf((&pdev->dev)->bsddev, + "ERROR: Module %u, status: error, %s\n", + module_num, + mlx5_port_module_event_error_type_to_string(error_type)); + if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) + dev->priv.pme_stats.error_counters[error_type]++; break; - case MLX5_MODULE_STATUS_PLUGGED_DISABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged but disabled\n", module_num); - break; - default: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, unknown status\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, unknown status\n", module_num); } /* store module status */ if (module_num < MLX5_MAX_PORTS) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:00:08 2019 (r353204) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:01:21 2019 (r353205) @@ -1244,13 +1244,31 @@ struct mlx5_core_event_handler { void *data); }; +#define MLX5_STATS_DESC(a, b, c, d, e, ...) d, e, + +#define MLX5_PORT_MODULE_ERROR_STATS(m) \ +m(+1, u64, power_budget_exceeded, "power_budget", "Module Power Budget Exceeded") \ +m(+1, u64, long_range, "long_range", "Module Long Range for non MLNX cable/module") \ +m(+1, u64, bus_stuck, "bus_stuck", "Module Bus stuck(I2C or data shorted)") \ +m(+1, u64, no_eeprom, "no_eeprom", "No EEPROM/retry timeout") \ +m(+1, u64, enforce_part_number, "enforce_part_number", "Module Enforce part number list") \ +m(+1, u64, unknown_id, "unknown_id", "Module Unknown identifier") \ +m(+1, u64, high_temp, "high_temp", "Module High Temperature") \ +m(+1, u64, cable_shorted, "cable_shorted", "Module Cable is shorted") + +static const char *mlx5_pme_err_desc[] = { + MLX5_PORT_MODULE_ERROR_STATS(MLX5_STATS_DESC) +}; + static int init_one(struct pci_dev *pdev, const struct pci_device_id *id) { struct mlx5_core_dev *dev; struct mlx5_priv *priv; device_t bsddev = pdev->dev.bsddev; - int err; + int i,err; + struct sysctl_oid *pme_sysctl_node; + struct sysctl_oid *pme_err_sysctl_node; dev = kzalloc(sizeof(*dev), GFP_KERNEL); priv = &dev->priv; @@ -1282,6 +1300,41 @@ static int init_one(struct pci_dev *pdev, OID_AUTO, "power_value", CTLFLAG_RD, &dev->pwr_value, 0, "Current power value in Watts"); + pme_sysctl_node = SYSCTL_ADD_NODE(&dev->sysctl_ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(bsddev)), + OID_AUTO, "pme_stats", CTLFLAG_RD, NULL, + "Port module event statistics"); + if (pme_sysctl_node == NULL) { + err = -ENOMEM; + goto clean_sysctl_ctx; + } + pme_err_sysctl_node = SYSCTL_ADD_NODE(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), + OID_AUTO, "errors", CTLFLAG_RD, NULL, + "Port module event error statistics"); + if (pme_err_sysctl_node == NULL) { + err = -ENOMEM; + goto clean_sysctl_ctx; + } + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), OID_AUTO, + "module_plug", CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.status_counters[MLX5_MODULE_STATUS_PLUGGED_ENABLED], + 0, "Number of time module plugged"); + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), OID_AUTO, + "module_unplug", CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.status_counters[MLX5_MODULE_STATUS_UNPLUGGED], + 0, "Number of time module unplugged"); + for (i = 0 ; i < MLX5_MODULE_EVENT_ERROR_NUM; i++) { + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_err_sysctl_node), OID_AUTO, + mlx5_pme_err_desc[2 * i], CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.error_counters[i], + 0, mlx5_pme_err_desc[2 * i + 1]); + } + + INIT_LIST_HEAD(&priv->ctx_list); spin_lock_init(&priv->ctx_lock); mutex_init(&dev->pci_status_mutex); @@ -1320,8 +1373,9 @@ clean_health: close_pci: mlx5_pci_close(dev, priv); clean_dev: - sysctl_ctx_free(&dev->sysctl_ctx); mtx_destroy(&dev->dump_lock); +clean_sysctl_ctx: + sysctl_ctx_free(&dev->sysctl_ctx); kfree(dev); return err; } Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:00:08 2019 (r353204) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:01:21 2019 (r353205) @@ -3387,8 +3387,7 @@ out: } /* Check if module is present before doing an access */ module_status = mlx5_query_module_status(priv->mdev, module_num); - if (module_status != MLX5_MODULE_STATUS_PLUGGED_ENABLED && - module_status != MLX5_MODULE_STATUS_PLUGGED_DISABLED) { + if (module_status != MLX5_MODULE_STATUS_PLUGGED_ENABLED) { error = EINVAL; goto err_i2c; } From owner-svn-src-all@freebsd.org Mon Oct 7 09:02:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4465AFE7DA; Mon, 7 Oct 2019 09:02:01 +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 46mvcT18cbz4b71; Mon, 7 Oct 2019 09:02:01 +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 0B3DEC50F; Mon, 7 Oct 2019 09:02:01 +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 x979204s072325; Mon, 7 Oct 2019 09:02:00 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97920qW072318; Mon, 7 Oct 2019 09:02:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070902.x97920qW072318@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 09:02:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353206 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 353206 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:02:01 -0000 Author: hselasky Date: Mon Oct 7 09:01:59 2019 New Revision: 353206 URL: https://svnweb.freebsd.org/changeset/base/353206 Log: MFC r352966: Add port module event software counters in mlx5core. While at it, fixup PME based on latest PRM defines. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Oct 7 09:01:21 2019 (r353205) +++ stable/11/sys/dev/mlx5/device.h Mon Oct 7 09:01:59 2019 (r353206) @@ -537,7 +537,7 @@ enum { MLX5_MODULE_STATUS_PLUGGED_ENABLED = 0x1, MLX5_MODULE_STATUS_UNPLUGGED = 0x2, MLX5_MODULE_STATUS_ERROR = 0x3, - MLX5_MODULE_STATUS_PLUGGED_DISABLED = 0x4, + MLX5_MODULE_STATUS_NUM , }; enum { @@ -549,7 +549,7 @@ enum { MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE = 0x5, MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6, MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED = 0x7, - MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED = 0xc, + MLX5_MODULE_EVENT_ERROR_NUM , }; struct mlx5_eqe_port_module_event { Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:01:21 2019 (r353205) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:01:59 2019 (r353206) @@ -546,6 +546,11 @@ struct mlx5_mr_table { struct radix_tree_root tree; }; +struct mlx5_pme_stats { + u64 status_counters[MLX5_MODULE_STATUS_NUM]; + u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM]; +}; + struct mlx5_priv { char name[MLX5_MAX_NAME_LEN]; struct mlx5_eq_table eq_table; @@ -598,6 +603,7 @@ struct mlx5_priv { struct list_head ctx_list; spinlock_t ctx_lock; unsigned long pci_dev_data; + struct mlx5_pme_stats pme_stats; }; enum mlx5_device_state { Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:01:21 2019 (r353205) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:01:59 2019 (r353206) @@ -639,9 +639,9 @@ static const char *mlx5_port_module_event_error_type_t { switch (error_type) { case MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED: - return "Power Budget Exceeded"; + return "Power budget exceeded"; case MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX_CABLE_MODULE: - return "Long Range for non MLNX cable/module"; + return "Long Range for non MLNX cable"; case MLX5_MODULE_EVENT_ERROR_BUS_STUCK: return "Bus stuck(I2C or data shorted)"; case MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT: @@ -649,18 +649,11 @@ static const char *mlx5_port_module_event_error_type_t case MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST: return "Enforce part number list"; case MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE: - return "Unsupported Cable"; + return "Unknown identifier"; case MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE: return "High Temperature"; case MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED: - return "Cable is shorted"; - case MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED: - return "One or more network ports have been powered " - "down due to insufficient/unadvertised power on " - "the PCIe slot. Please refer to the card's user " - "manual for power specifications or contact " - "Mellanox support."; - + return "Bad or shorted cable/module"; default: return "Unknown error type"; } @@ -686,29 +679,36 @@ static void mlx5_port_module_event(struct mlx5_core_de module_num = (unsigned int)module_event_eqe->module; module_status = (unsigned int)module_event_eqe->module_status & - PORT_MODULE_EVENT_MODULE_STATUS_MASK; + PORT_MODULE_EVENT_MODULE_STATUS_MASK; error_type = (unsigned int)module_event_eqe->error_type & - PORT_MODULE_EVENT_ERROR_TYPE_MASK; + PORT_MODULE_EVENT_ERROR_TYPE_MASK; + if (module_status < MLX5_MODULE_STATUS_NUM) + dev->priv.pme_stats.status_counters[module_status]++; switch (module_status) { case MLX5_MODULE_STATUS_PLUGGED_ENABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged and enabled\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, status: plugged and enabled\n", + module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: unplugged\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, status: unplugged\n", module_num); break; case MLX5_MODULE_STATUS_ERROR: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); + device_printf((&pdev->dev)->bsddev, + "ERROR: Module %u, status: error, %s\n", + module_num, + mlx5_port_module_event_error_type_to_string(error_type)); + if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) + dev->priv.pme_stats.error_counters[error_type]++; break; - case MLX5_MODULE_STATUS_PLUGGED_DISABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged but disabled\n", module_num); - break; - default: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, unknown status\n", module_num); + device_printf((&pdev->dev)->bsddev, + "INFO: Module %u, unknown status\n", module_num); } /* store module status */ if (module_num < MLX5_MAX_PORTS) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:01:21 2019 (r353205) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:01:59 2019 (r353206) @@ -1226,13 +1226,31 @@ struct mlx5_core_event_handler { void *data); }; +#define MLX5_STATS_DESC(a, b, c, d, e, ...) d, e, + +#define MLX5_PORT_MODULE_ERROR_STATS(m) \ +m(+1, u64, power_budget_exceeded, "power_budget", "Module Power Budget Exceeded") \ +m(+1, u64, long_range, "long_range", "Module Long Range for non MLNX cable/module") \ +m(+1, u64, bus_stuck, "bus_stuck", "Module Bus stuck(I2C or data shorted)") \ +m(+1, u64, no_eeprom, "no_eeprom", "No EEPROM/retry timeout") \ +m(+1, u64, enforce_part_number, "enforce_part_number", "Module Enforce part number list") \ +m(+1, u64, unknown_id, "unknown_id", "Module Unknown identifier") \ +m(+1, u64, high_temp, "high_temp", "Module High Temperature") \ +m(+1, u64, cable_shorted, "cable_shorted", "Module Cable is shorted") + +static const char *mlx5_pme_err_desc[] = { + MLX5_PORT_MODULE_ERROR_STATS(MLX5_STATS_DESC) +}; + static int init_one(struct pci_dev *pdev, const struct pci_device_id *id) { struct mlx5_core_dev *dev; struct mlx5_priv *priv; device_t bsddev = pdev->dev.bsddev; - int err; + int i,err; + struct sysctl_oid *pme_sysctl_node; + struct sysctl_oid *pme_err_sysctl_node; dev = kzalloc(sizeof(*dev), GFP_KERNEL); priv = &dev->priv; @@ -1264,6 +1282,41 @@ static int init_one(struct pci_dev *pdev, OID_AUTO, "power_value", CTLFLAG_RD, &dev->pwr_value, 0, "Current power value in Watts"); + pme_sysctl_node = SYSCTL_ADD_NODE(&dev->sysctl_ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(bsddev)), + OID_AUTO, "pme_stats", CTLFLAG_RD, NULL, + "Port module event statistics"); + if (pme_sysctl_node == NULL) { + err = -ENOMEM; + goto clean_sysctl_ctx; + } + pme_err_sysctl_node = SYSCTL_ADD_NODE(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), + OID_AUTO, "errors", CTLFLAG_RD, NULL, + "Port module event error statistics"); + if (pme_err_sysctl_node == NULL) { + err = -ENOMEM; + goto clean_sysctl_ctx; + } + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), OID_AUTO, + "module_plug", CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.status_counters[MLX5_MODULE_STATUS_PLUGGED_ENABLED], + 0, "Number of time module plugged"); + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_sysctl_node), OID_AUTO, + "module_unplug", CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.status_counters[MLX5_MODULE_STATUS_UNPLUGGED], + 0, "Number of time module unplugged"); + for (i = 0 ; i < MLX5_MODULE_EVENT_ERROR_NUM; i++) { + SYSCTL_ADD_U64(&dev->sysctl_ctx, + SYSCTL_CHILDREN(pme_err_sysctl_node), OID_AUTO, + mlx5_pme_err_desc[2 * i], CTLFLAG_RD | CTLFLAG_MPSAFE, + &dev->priv.pme_stats.error_counters[i], + 0, mlx5_pme_err_desc[2 * i + 1]); + } + + INIT_LIST_HEAD(&priv->ctx_list); spin_lock_init(&priv->ctx_lock); mutex_init(&dev->pci_status_mutex); @@ -1302,8 +1355,9 @@ clean_health: close_pci: mlx5_pci_close(dev, priv); clean_dev: - sysctl_ctx_free(&dev->sysctl_ctx); mtx_destroy(&dev->dump_lock); +clean_sysctl_ctx: + sysctl_ctx_free(&dev->sysctl_ctx); kfree(dev); return err; } Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:01:21 2019 (r353205) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:01:59 2019 (r353206) @@ -3269,8 +3269,7 @@ out: } /* Check if module is present before doing an access */ module_status = mlx5_query_module_status(priv->mdev, module_num); - if (module_status != MLX5_MODULE_STATUS_PLUGGED_ENABLED && - module_status != MLX5_MODULE_STATUS_PLUGGED_DISABLED) { + if (module_status != MLX5_MODULE_STATUS_PLUGGED_ENABLED) { error = EINVAL; goto err_i2c; } From owner-svn-src-all@freebsd.org Mon Oct 7 09:03:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6FEBBFE8DC; Mon, 7 Oct 2019 09:03:52 +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 46mvfc22mJz4bHw; Mon, 7 Oct 2019 09:03:52 +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 291E3C53A; Mon, 7 Oct 2019 09:03:52 +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 x9793qkh073111; Mon, 7 Oct 2019 09:03:52 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9793plm073110; Mon, 7 Oct 2019 09:03:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070903.x9793plm073110@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 09:03:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353207 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353207 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:03:52 -0000 Author: hselasky Date: Mon Oct 7 09:03:51 2019 New Revision: 353207 URL: https://svnweb.freebsd.org/changeset/base/353207 Log: MFC r352967: Make the mlx5_vsc_wait_on_flag(9) function global. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:01:59 2019 (r353206) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:03:51 2019 (r353207) @@ -1096,6 +1096,7 @@ int mlx5_vsc_find_cap(struct mlx5_core_dev *mdev); int mlx5_vsc_lock(struct mlx5_core_dev *mdev); void mlx5_vsc_unlock(struct mlx5_core_dev *mdev); int mlx5_vsc_set_space(struct mlx5_core_dev *mdev, u16 space); +int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected); int mlx5_vsc_write(struct mlx5_core_dev *mdev, u32 addr, const u32 *data); int mlx5_vsc_read(struct mlx5_core_dev *mdev, u32 addr, u32 *data); int mlx5_vsc_lock_addr_space(struct mlx5_core_dev *mdev, u32 addr); Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:01:59 2019 (r353206) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:03:51 2019 (r353207) @@ -96,7 +96,8 @@ void mlx5_vsc_unlock(struct mlx5_core_dev *mdev) pci_write_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, 0, 4); } -static int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected) +int +mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected) { device_t dev = mdev->pdev->dev.bsddev; int vsc_addr = mdev->vsc_addr; From owner-svn-src-all@freebsd.org Mon Oct 7 09:04:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6C95FE970; Mon, 7 Oct 2019 09:04:33 +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 46mvgP4Cybz4bQC; Mon, 7 Oct 2019 09:04:33 +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 74D70C53B; Mon, 7 Oct 2019 09:04:33 +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 x9794XSO073221; Mon, 7 Oct 2019 09:04:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9794XrR073219; Mon, 7 Oct 2019 09:04:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070904.x9794XrR073219@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 09:04:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353208 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353208 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:04:33 -0000 Author: hselasky Date: Mon Oct 7 09:04:32 2019 New Revision: 353208 URL: https://svnweb.freebsd.org/changeset/base/353208 Log: MFC r352967: Make the mlx5_vsc_wait_on_flag(9) function global. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:03:51 2019 (r353207) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:04:32 2019 (r353208) @@ -1070,6 +1070,7 @@ int mlx5_vsc_find_cap(struct mlx5_core_dev *mdev); int mlx5_vsc_lock(struct mlx5_core_dev *mdev); void mlx5_vsc_unlock(struct mlx5_core_dev *mdev); int mlx5_vsc_set_space(struct mlx5_core_dev *mdev, u16 space); +int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected); int mlx5_vsc_write(struct mlx5_core_dev *mdev, u32 addr, const u32 *data); int mlx5_vsc_read(struct mlx5_core_dev *mdev, u32 addr, u32 *data); int mlx5_vsc_lock_addr_space(struct mlx5_core_dev *mdev, u32 addr); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:03:51 2019 (r353207) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:04:32 2019 (r353208) @@ -96,7 +96,8 @@ void mlx5_vsc_unlock(struct mlx5_core_dev *mdev) pci_write_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, 0, 4); } -static int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected) +int +mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected) { device_t dev = mdev->pdev->dev.bsddev; int vsc_addr = mdev->vsc_addr; From owner-svn-src-all@freebsd.org Mon Oct 7 09:06:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8FD02FEA5A; Mon, 7 Oct 2019 09:06:38 +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 46mvjp3GdWz4bYN; Mon, 7 Oct 2019 09:06:38 +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 53870C53D; Mon, 7 Oct 2019 09:06:38 +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 x9796c6k073422; Mon, 7 Oct 2019 09:06:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9796bqT073419; Mon, 7 Oct 2019 09:06:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070906.x9796bqT073419@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 09:06:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353209 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353209 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:06:38 -0000 Author: hselasky Date: Mon Oct 7 09:06:37 2019 New Revision: 353209 URL: https://svnweb.freebsd.org/changeset/base/353209 Log: MFC r352968: Move mlx5_ifc_vsc_space_bits and mlx5_ifc_vsc_addr_bits to mlx5_ifc.h. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c stable/12/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:04:32 2019 (r353208) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:06:37 2019 (r353209) @@ -31,18 +31,6 @@ #define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA -struct mlx5_ifc_vsc_space_bits { - u8 status[0x3]; - u8 reserved0[0xd]; - u8 space[0x10]; -}; - -struct mlx5_ifc_vsc_addr_bits { - u8 flag[0x1]; - u8 reserved0[0x1]; - u8 address[0x1e]; -}; - int mlx5_vsc_lock(struct mlx5_core_dev *mdev) { device_t dev = mdev->pdev->dev.bsddev; Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:04:32 2019 (r353208) +++ stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:06:37 2019 (r353209) @@ -9749,6 +9749,18 @@ struct mlx5_ifc_vendor_specific_cap_bits { u8 data[0x20]; }; +struct mlx5_ifc_vsc_space_bits { + u8 status[0x3]; + u8 reserved0[0xd]; + u8 space[0x10]; +}; + +struct mlx5_ifc_vsc_addr_bits { + u8 flag[0x1]; + u8 reserved0[0x1]; + u8 address[0x1e]; +}; + enum { MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER = 0x0, MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED = 0x1, From owner-svn-src-all@freebsd.org Mon Oct 7 09:07:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C4587FEAF0; Mon, 7 Oct 2019 09:07:34 +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 46mvkt4qnsz4bhR; Mon, 7 Oct 2019 09:07:34 +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 88F51C53E; Mon, 7 Oct 2019 09:07:34 +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 x9797Ynp073543; Mon, 7 Oct 2019 09:07:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9797YEv073541; Mon, 7 Oct 2019 09:07:34 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070907.x9797YEv073541@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 09:07:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353210 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353210 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:07:34 -0000 Author: hselasky Date: Mon Oct 7 09:07:33 2019 New Revision: 353210 URL: https://svnweb.freebsd.org/changeset/base/353210 Log: MFC r352968: Move mlx5_ifc_vsc_space_bits and mlx5_ifc_vsc_addr_bits to mlx5_ifc.h. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c stable/11/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:06:37 2019 (r353209) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:07:33 2019 (r353210) @@ -31,18 +31,6 @@ #define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA -struct mlx5_ifc_vsc_space_bits { - u8 status[0x3]; - u8 reserved0[0xd]; - u8 space[0x10]; -}; - -struct mlx5_ifc_vsc_addr_bits { - u8 flag[0x1]; - u8 reserved0[0x1]; - u8 address[0x1e]; -}; - int mlx5_vsc_lock(struct mlx5_core_dev *mdev) { device_t dev = mdev->pdev->dev.bsddev; Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:06:37 2019 (r353209) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:07:33 2019 (r353210) @@ -9749,6 +9749,18 @@ struct mlx5_ifc_vendor_specific_cap_bits { u8 data[0x20]; }; +struct mlx5_ifc_vsc_space_bits { + u8 status[0x3]; + u8 reserved0[0xd]; + u8 space[0x10]; +}; + +struct mlx5_ifc_vsc_addr_bits { + u8 flag[0x1]; + u8 reserved0[0x1]; + u8 address[0x1e]; +}; + enum { MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER = 0x0, MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED = 0x1, From owner-svn-src-all@freebsd.org Mon Oct 7 09:08:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C90EFEB8C; Mon, 7 Oct 2019 09:08:34 +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 46mvm22l2nz4bpx; Mon, 7 Oct 2019 09:08:34 +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 41B37C53F; Mon, 7 Oct 2019 09:08:34 +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 x9798Ym4073669; Mon, 7 Oct 2019 09:08:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9798YQP073668; Mon, 7 Oct 2019 09:08:34 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070908.x9798YQP073668@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 09:08:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353211 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353211 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:08:34 -0000 Author: hselasky Date: Mon Oct 7 09:08:33 2019 New Revision: 353211 URL: https://svnweb.freebsd.org/changeset/base/353211 Log: MFC r352969: Use the MLX5_VSC_DOMAIN_SEMAPHORES constant instead of hand-rolled symbol in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:07:33 2019 (r353210) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:08:33 2019 (r353211) @@ -29,8 +29,6 @@ #include #include -#define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA - int mlx5_vsc_lock(struct mlx5_core_dev *mdev) { device_t dev = mdev->pdev->dev.bsddev; @@ -188,7 +186,7 @@ int mlx5_vsc_lock_addr_space(struct mlx5_core_dev *mde int ret; u32 id; - ret = mlx5_vsc_set_space(mdev, MLX5_SEMAPHORE_SPACE_DOMAIN); + ret = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SEMAPHORES); if (ret) return ret; @@ -215,7 +213,7 @@ int mlx5_vsc_unlock_addr_space(struct mlx5_core_dev *m u32 data = 0; int ret; - ret = mlx5_vsc_set_space(mdev, MLX5_SEMAPHORE_SPACE_DOMAIN); + ret = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SEMAPHORES); if (ret) return ret; From owner-svn-src-all@freebsd.org Mon Oct 7 09:09:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 14305FEC0A; Mon, 7 Oct 2019 09:09: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 46mvn16lcxz4bxK; Mon, 7 Oct 2019 09:09:25 +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 CC895C540; Mon, 7 Oct 2019 09:09:25 +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 x9799PGK073789; Mon, 7 Oct 2019 09:09:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9799PHq073788; Mon, 7 Oct 2019 09:09:25 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070909.x9799PHq073788@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 09:09:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353212 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353212 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:09:26 -0000 Author: hselasky Date: Mon Oct 7 09:09:25 2019 New Revision: 353212 URL: https://svnweb.freebsd.org/changeset/base/353212 Log: MFC r352969: Use the MLX5_VSC_DOMAIN_SEMAPHORES constant instead of hand-rolled symbol in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:08:33 2019 (r353211) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 09:09:25 2019 (r353212) @@ -29,8 +29,6 @@ #include #include -#define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA - int mlx5_vsc_lock(struct mlx5_core_dev *mdev) { device_t dev = mdev->pdev->dev.bsddev; @@ -188,7 +186,7 @@ int mlx5_vsc_lock_addr_space(struct mlx5_core_dev *mde int ret; u32 id; - ret = mlx5_vsc_set_space(mdev, MLX5_SEMAPHORE_SPACE_DOMAIN); + ret = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SEMAPHORES); if (ret) return ret; @@ -215,7 +213,7 @@ int mlx5_vsc_unlock_addr_space(struct mlx5_core_dev *m u32 data = 0; int ret; - ret = mlx5_vsc_set_space(mdev, MLX5_SEMAPHORE_SPACE_DOMAIN); + ret = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SEMAPHORES); if (ret) return ret; From owner-svn-src-all@freebsd.org Mon Oct 7 09:10:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 67468FECD4; Mon, 7 Oct 2019 09:10: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 46mvpG240Tz4c5G; Mon, 7 Oct 2019 09:10: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 2A532C545; Mon, 7 Oct 2019 09:10:30 +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 x979AUgZ073957; Mon, 7 Oct 2019 09:10:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979AUdn073956; Mon, 7 Oct 2019 09:10:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070910.x979AUdn073956@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 09:10:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353213 - stable/12/sys/dev/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5 X-SVN-Commit-Revision: 353213 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:10:30 -0000 Author: hselasky Date: Mon Oct 7 09:10:29 2019 New Revision: 353213 URL: https://svnweb.freebsd.org/changeset/base/353213 Log: MFC r352970: Define MLX5_VSC_DOMAIN_SCAN_CRSPACE. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:09:25 2019 (r353212) +++ stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:10:29 2019 (r353213) @@ -9725,6 +9725,7 @@ struct mlx5_ifc_mtt_bits { enum { MLX5_VSC_DOMAIN_ICMD = 0x1, MLX5_VSC_DOMAIN_PROTECTED_CRSPACE = 0x6, + MLX5_VSC_DOMAIN_SCAN_CRSPACE = 0x7, MLX5_VSC_DOMAIN_SEMAPHORES = 0xA, }; From owner-svn-src-all@freebsd.org Mon Oct 7 09:11:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6DE6DFEEF1; Mon, 7 Oct 2019 09:11:28 +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 46mvqN2KCCz4cPd; Mon, 7 Oct 2019 09:11:28 +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 32925C59E; Mon, 7 Oct 2019 09:11:28 +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 x979BSFa077728; Mon, 7 Oct 2019 09:11:28 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979BSuO077727; Mon, 7 Oct 2019 09:11:28 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070911.x979BSuO077727@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 09:11:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353214 - stable/11/sys/dev/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5 X-SVN-Commit-Revision: 353214 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:11:28 -0000 Author: hselasky Date: Mon Oct 7 09:11:27 2019 New Revision: 353214 URL: https://svnweb.freebsd.org/changeset/base/353214 Log: MFC r352970: Define MLX5_VSC_DOMAIN_SCAN_CRSPACE. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:10:29 2019 (r353213) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:11:27 2019 (r353214) @@ -9725,6 +9725,7 @@ struct mlx5_ifc_mtt_bits { enum { MLX5_VSC_DOMAIN_ICMD = 0x1, MLX5_VSC_DOMAIN_PROTECTED_CRSPACE = 0x6, + MLX5_VSC_DOMAIN_SCAN_CRSPACE = 0x7, MLX5_VSC_DOMAIN_SEMAPHORES = 0xA, }; From owner-svn-src-all@freebsd.org Mon Oct 7 09:12:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86ED8FEF8A; Mon, 7 Oct 2019 09:12: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 46mvs730BFz4cbb; Mon, 7 Oct 2019 09:12: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 4A200C72C; Mon, 7 Oct 2019 09:12: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 x979Cxv0079423; Mon, 7 Oct 2019 09:12:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Cw8I079421; Mon, 7 Oct 2019 09:12:58 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070912.x979Cw8I079421@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 09:12:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353215 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353215 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:12:59 -0000 Author: hselasky Date: Mon Oct 7 09:12:58 2019 New Revision: 353215 URL: https://svnweb.freebsd.org/changeset/base/353215 Log: MFC r352971: Read rege map from crdump scan space in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:11:27 2019 (r353214) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:12:58 2019 (r353215) @@ -698,7 +698,7 @@ struct mlx5_core_dev { struct mlx5_flow_root_namespace *sniffer_rx_root_ns; struct mlx5_flow_root_namespace *sniffer_tx_root_ns; u32 num_q_counter_allocated[MLX5_INTERFACE_NUMBER]; - const struct mlx5_crspace_regmap *dump_rege; + struct mlx5_crspace_regmap *dump_rege; uint32_t *dump_data; unsigned dump_size; bool dump_valid; Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:11:27 2019 (r353214) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:12:58 2019 (r353215) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2018, Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2018, 2019 Mellanox Technologies, Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -64,7 +64,10 @@ mlx5_fwdump_destroy_dd(struct mlx5_core_dev *mdev) void mlx5_fwdump_prep(struct mlx5_core_dev *mdev) { - int error; + device_t dev; + int error, vsc_addr; + unsigned i, sz; + u32 addr, in, out, next_addr; mdev->dump_data = NULL; error = mlx5_vsc_find_cap(mdev); @@ -74,25 +77,77 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) "mlx5_fwdump_prep failed %d\n", error); return; } - switch (pci_get_device(mdev->pdev->dev.bsddev)) { - case 0x1013: - mdev->dump_rege = mlx5_crspace_regmap_mt4115; - break; - case 0x1015: - mdev->dump_rege = mlx5_crspace_regmap_mt4117; - break; - case 0x1017: - case 0x1019: - mdev->dump_rege = mlx5_crspace_regmap_connectx5; - break; - default: - return; /* silently fail, do not prevent driver attach */ + error = mlx5_vsc_lock(mdev); + if (error != 0) + return; + error = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SCAN_CRSPACE); + if (error != 0) { + mlx5_core_warn(mdev, "VSC scan space is not supported\n"); + goto unlock_vsc; } + dev = mdev->pdev->dev.bsddev; + vsc_addr = mdev->vsc_addr; + if (vsc_addr == 0) { + mlx5_core_warn(mdev, "Cannot read vsc, no address\n"); + goto unlock_vsc; + } + + in = 0; + for (sz = 1, addr = 0;;) { + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d\n", error); + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + sz++; + addr = next_addr; + } + mdev->dump_rege = malloc(sz * sizeof(struct mlx5_crspace_regmap), + M_MLX5_DUMP, M_WAITOK | M_ZERO); + + for (i = 0, addr = 0;;) { + MPASS(i < sz); + mdev->dump_rege[i].cnt++; + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d\n", error); + free(mdev->dump_rege, M_MLX5_DUMP); + mdev->dump_rege = NULL; + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + mdev->dump_rege[++i].addr = next_addr; + addr = next_addr; + } + KASSERT(i + 1 == sz, + ("inconsistent hw crspace reads: sz %u i %u addr %#lx", + sz, i, (unsigned long)addr)); + mdev->dump_size = mlx5_fwdump_getsize(mdev->dump_rege); mdev->dump_data = malloc(mdev->dump_size * sizeof(uint32_t), M_MLX5_DUMP, M_WAITOK | M_ZERO); mdev->dump_valid = false; mdev->dump_copyout = false; + +unlock_vsc: + mlx5_vsc_unlock(mdev); } void @@ -145,6 +200,7 @@ mlx5_fwdump_clean(struct mlx5_core_dev *mdev) msleep(&mdev->dump_copyout, &mdev->dump_lock, 0, "mlx5fwc", 0); mlx5_fwdump_destroy_dd(mdev); mtx_unlock(&mdev->dump_lock); + free(mdev->dump_rege, M_MLX5_DUMP); } static int From owner-svn-src-all@freebsd.org Mon Oct 7 09:13:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 05196FF016; Mon, 7 Oct 2019 09:13:54 +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 46mvt96CRYz4ck3; Mon, 7 Oct 2019 09:13:53 +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 B815FC72D; Mon, 7 Oct 2019 09:13:53 +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 x979DraO079539; Mon, 7 Oct 2019 09:13:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Drv2079537; Mon, 7 Oct 2019 09:13:53 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070913.x979Drv2079537@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 09:13:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353216 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353216 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:13:54 -0000 Author: hselasky Date: Mon Oct 7 09:13:53 2019 New Revision: 353216 URL: https://svnweb.freebsd.org/changeset/base/353216 Log: MFC r352971: Read rege map from crdump scan space in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:12:58 2019 (r353215) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:13:53 2019 (r353216) @@ -672,7 +672,7 @@ struct mlx5_core_dev { struct mlx5_flow_root_namespace *sniffer_rx_root_ns; struct mlx5_flow_root_namespace *sniffer_tx_root_ns; u32 num_q_counter_allocated[MLX5_INTERFACE_NUMBER]; - const struct mlx5_crspace_regmap *dump_rege; + struct mlx5_crspace_regmap *dump_rege; uint32_t *dump_data; unsigned dump_size; bool dump_valid; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:12:58 2019 (r353215) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:13:53 2019 (r353216) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2018, Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2018, 2019 Mellanox Technologies, Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -64,7 +64,10 @@ mlx5_fwdump_destroy_dd(struct mlx5_core_dev *mdev) void mlx5_fwdump_prep(struct mlx5_core_dev *mdev) { - int error; + device_t dev; + int error, vsc_addr; + unsigned i, sz; + u32 addr, in, out, next_addr; mdev->dump_data = NULL; error = mlx5_vsc_find_cap(mdev); @@ -74,25 +77,77 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) "mlx5_fwdump_prep failed %d\n", error); return; } - switch (pci_get_device(mdev->pdev->dev.bsddev)) { - case 0x1013: - mdev->dump_rege = mlx5_crspace_regmap_mt4115; - break; - case 0x1015: - mdev->dump_rege = mlx5_crspace_regmap_mt4117; - break; - case 0x1017: - case 0x1019: - mdev->dump_rege = mlx5_crspace_regmap_connectx5; - break; - default: - return; /* silently fail, do not prevent driver attach */ + error = mlx5_vsc_lock(mdev); + if (error != 0) + return; + error = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SCAN_CRSPACE); + if (error != 0) { + mlx5_core_warn(mdev, "VSC scan space is not supported\n"); + goto unlock_vsc; } + dev = mdev->pdev->dev.bsddev; + vsc_addr = mdev->vsc_addr; + if (vsc_addr == 0) { + mlx5_core_warn(mdev, "Cannot read vsc, no address\n"); + goto unlock_vsc; + } + + in = 0; + for (sz = 1, addr = 0;;) { + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d\n", error); + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + sz++; + addr = next_addr; + } + mdev->dump_rege = malloc(sz * sizeof(struct mlx5_crspace_regmap), + M_MLX5_DUMP, M_WAITOK | M_ZERO); + + for (i = 0, addr = 0;;) { + MPASS(i < sz); + mdev->dump_rege[i].cnt++; + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d\n", error); + free(mdev->dump_rege, M_MLX5_DUMP); + mdev->dump_rege = NULL; + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + mdev->dump_rege[++i].addr = next_addr; + addr = next_addr; + } + KASSERT(i + 1 == sz, + ("inconsistent hw crspace reads: sz %u i %u addr %#lx", + sz, i, (unsigned long)addr)); + mdev->dump_size = mlx5_fwdump_getsize(mdev->dump_rege); mdev->dump_data = malloc(mdev->dump_size * sizeof(uint32_t), M_MLX5_DUMP, M_WAITOK | M_ZERO); mdev->dump_valid = false; mdev->dump_copyout = false; + +unlock_vsc: + mlx5_vsc_unlock(mdev); } void @@ -145,6 +200,7 @@ mlx5_fwdump_clean(struct mlx5_core_dev *mdev) msleep(&mdev->dump_copyout, &mdev->dump_lock, 0, "mlx5fwc", 0); mlx5_fwdump_destroy_dd(mdev); mtx_unlock(&mdev->dump_lock); + free(mdev->dump_rege, M_MLX5_DUMP); } static int From owner-svn-src-all@freebsd.org Mon Oct 7 09:14:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C5A5FF0BD; Mon, 7 Oct 2019 09:14:51 +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 46mvvH1L5sz4crc; Mon, 7 Oct 2019 09:14:51 +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 113DBC72E; Mon, 7 Oct 2019 09:14:51 +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 x979Eos6079656; Mon, 7 Oct 2019 09:14:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979EoXt079652; Mon, 7 Oct 2019 09:14:50 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070914.x979EoXt079652@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 09:14:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353217 - in stable/12/sys: conf dev/mlx5/mlx5_core modules/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: conf dev/mlx5/mlx5_core modules/mlx5 X-SVN-Commit-Revision: 353217 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:14:51 -0000 Author: hselasky Date: Mon Oct 7 09:14:50 2019 New Revision: 353217 URL: https://svnweb.freebsd.org/changeset/base/353217 Log: MFC r352972: Remove no longer needed fwdump register tables from mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Deleted: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c Modified: stable/12/sys/conf/files stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/12/sys/modules/mlx5/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/conf/files ============================================================================== --- stable/12/sys/conf/files Mon Oct 7 09:13:53 2019 (r353216) +++ stable/12/sys/conf/files Mon Oct 7 09:14:50 2019 (r353217) @@ -4800,8 +4800,6 @@ dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fwdump.c optional mlx5 pci \ compile-with "${OFED_C}" -dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c optional mlx5 pci \ - compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:13:53 2019 (r353216) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:14:50 2019 (r353217) @@ -35,10 +35,6 @@ __FBSDID("$FreeBSD$"); #include #include -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4117[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4115[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_connectx5[]; - static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); static unsigned Modified: stable/12/sys/modules/mlx5/Makefile ============================================================================== --- stable/12/sys/modules/mlx5/Makefile Mon Oct 7 09:13:53 2019 (r353216) +++ stable/12/sys/modules/mlx5/Makefile Mon Oct 7 09:14:50 2019 (r353217) @@ -14,7 +14,6 @@ mlx5_fs_cmd.c \ mlx5_fs_tree.c \ mlx5_fw.c \ mlx5_fwdump.c \ -mlx5_fwdump_regmaps.c \ mlx5_health.c \ mlx5_mad.c \ mlx5_main.c \ From owner-svn-src-all@freebsd.org Mon Oct 7 09:15:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D88E7FF160; Mon, 7 Oct 2019 09:15: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 46mvwN5Ktdz4d0D; Mon, 7 Oct 2019 09:15: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 9A42EC72F; Mon, 7 Oct 2019 09:15: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 x979FmZ6079789; Mon, 7 Oct 2019 09:15:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Fmpj079787; Mon, 7 Oct 2019 09:15:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070915.x979Fmpj079787@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 09:15:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353218 - in stable/11/sys: conf dev/mlx5/mlx5_core modules/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5/mlx5_core modules/mlx5 X-SVN-Commit-Revision: 353218 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:15:48 -0000 Author: hselasky Date: Mon Oct 7 09:15:47 2019 New Revision: 353218 URL: https://svnweb.freebsd.org/changeset/base/353218 Log: MFC r352972: Remove no longer needed fwdump register tables from mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Deleted: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c Modified: stable/11/sys/conf/files stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/modules/mlx5/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Oct 7 09:14:50 2019 (r353217) +++ stable/11/sys/conf/files Mon Oct 7 09:15:47 2019 (r353218) @@ -4576,8 +4576,6 @@ dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fwdump.c optional mlx5 pci \ compile-with "${OFED_C}" -dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c optional mlx5 pci \ - compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:14:50 2019 (r353217) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:15:47 2019 (r353218) @@ -35,10 +35,6 @@ __FBSDID("$FreeBSD$"); #include #include -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4117[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4115[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_connectx5[]; - static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); static unsigned Modified: stable/11/sys/modules/mlx5/Makefile ============================================================================== --- stable/11/sys/modules/mlx5/Makefile Mon Oct 7 09:14:50 2019 (r353217) +++ stable/11/sys/modules/mlx5/Makefile Mon Oct 7 09:15:47 2019 (r353218) @@ -14,7 +14,6 @@ mlx5_fs_cmd.c \ mlx5_fs_tree.c \ mlx5_fw.c \ mlx5_fwdump.c \ -mlx5_fwdump_regmaps.c \ mlx5_health.c \ mlx5_mad.c \ mlx5_main.c \ From owner-svn-src-all@freebsd.org Mon Oct 7 09:16:44 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 81ECEFF1EA; Mon, 7 Oct 2019 09:16:44 +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 46mvxS2sPZz4d6r; Mon, 7 Oct 2019 09:16:44 +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 4681DC730; Mon, 7 Oct 2019 09:16:44 +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 x979Gi6V079914; Mon, 7 Oct 2019 09:16:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979GiY6079913; Mon, 7 Oct 2019 09:16:44 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070916.x979GiY6079913@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 09:16:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353219 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353219 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:16:44 -0000 Author: hselasky Date: Mon Oct 7 09:16:43 2019 New Revision: 353219 URL: https://svnweb.freebsd.org/changeset/base/353219 Log: MFC r352973: Add missing blank line at the end of the print in mlx5core. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:15:47 2019 (r353218) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:16:43 2019 (r353219) @@ -219,7 +219,7 @@ mlx5_temp_warning_event(struct mlx5_core_dev *dev, str { mlx5_core_warn(dev, - "High temperature on sensors with bit set %#jx %#jx", + "High temperature on sensors with bit set %#jx %#jx\n", (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_msb), (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_lsb)); } From owner-svn-src-all@freebsd.org Mon Oct 7 09:17:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 67493FF27E; Mon, 7 Oct 2019 09:17:22 +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 46mvyB29sNz4dFN; Mon, 7 Oct 2019 09:17:22 +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 2F79BC731; Mon, 7 Oct 2019 09:17:22 +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 x979HM2m080016; Mon, 7 Oct 2019 09:17:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979HMig080015; Mon, 7 Oct 2019 09:17:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070917.x979HMig080015@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 09:17:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353220 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353220 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:17:22 -0000 Author: hselasky Date: Mon Oct 7 09:17:21 2019 New Revision: 353220 URL: https://svnweb.freebsd.org/changeset/base/353220 Log: MFC r352973: Add missing blank line at the end of the print in mlx5core. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:16:43 2019 (r353219) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:17:21 2019 (r353220) @@ -219,7 +219,7 @@ mlx5_temp_warning_event(struct mlx5_core_dev *dev, str { mlx5_core_warn(dev, - "High temperature on sensors with bit set %#jx %#jx", + "High temperature on sensors with bit set %#jx %#jx\n", (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_msb), (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_lsb)); } From owner-svn-src-all@freebsd.org Mon Oct 7 09:18:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 18CCBFF325; Mon, 7 Oct 2019 09:18:10 +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 46mvz56vddz4dN3; Mon, 7 Oct 2019 09:18:09 +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 B7373C732; Mon, 7 Oct 2019 09:18:09 +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 x979I94V080131; Mon, 7 Oct 2019 09:18:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979I9Nf080130; Mon, 7 Oct 2019 09:18:09 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070918.x979I9Nf080130@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 09:18:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353221 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353221 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:18:10 -0000 Author: hselasky Date: Mon Oct 7 09:18:09 2019 New Revision: 353221 URL: https://svnweb.freebsd.org/changeset/base/353221 Log: MFC r352974: Add proper print in case of 0x0 health syndrome in mlx5core. In case of health counter fails to increment it indicates a bad device health. In case when the syndrome indicated by firmware is 0x0, this indicates that firmware is unable to respond to initialization segment reads. Add proper print in this case. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:17:21 2019 (r353220) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:18:09 2019 (r353221) @@ -490,17 +490,23 @@ static const char *hsynd_str(u8 synd) } } -static void print_health_info(struct mlx5_core_dev *dev) +static u8 +print_health_info(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health; struct mlx5_health_buffer __iomem *h = health->health; + u8 synd = ioread8(&h->synd); char fw_str[18]; u32 fw; int i; - /* If the syndrom is 0, the device is OK and no need to print buffer */ - if (!ioread8(&h->synd)) - return; + /* + * If synd is 0x0 - this indicates that FW is unable to + * respond to initialization segment reads and health buffer + * should not be read. + */ + if (synd == 0) + return (0); for (i = 0; i < ARRAY_SIZE(h->assert_var); i++) printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, ioread32be(h->assert_var + i)); @@ -511,10 +517,12 @@ static void print_health_info(struct mlx5_core_dev *de printf("mlx5_core: INFO: ""fw_ver %s\n", fw_str); printf("mlx5_core: INFO: ""hw_id 0x%08x\n", ioread32be(&h->hw_id)); printf("mlx5_core: INFO: ""irisc_index %d\n", ioread8(&h->irisc_index)); - printf("mlx5_core: INFO: ""synd 0x%x: %s\n", ioread8(&h->synd), hsynd_str(ioread8(&h->synd))); + printf("mlx5_core: INFO: ""synd 0x%x: %s\n", synd, hsynd_str(synd)); printf("mlx5_core: INFO: ""ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); fw = ioread32be(&h->fw_ver); printf("mlx5_core: INFO: ""raw fw_ver 0x%08x\n", fw); + + return synd; } static void health_watchdog(struct work_struct *work) @@ -596,7 +604,8 @@ static void poll_health(unsigned long data) health->prev = count; if (health->miss_counter == MAX_MISSES) { mlx5_core_err(dev, "device's health compromised - reached miss count\n"); - print_health_info(dev); + if (print_health_info(dev) == 0) + mlx5_core_err(dev, "FW is unable to respond to initialization segment reads\n"); } fatal_error = check_fatal_sensors(dev); From owner-svn-src-all@freebsd.org Mon Oct 7 09:18:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7FA50FF3AF; Mon, 7 Oct 2019 09:18: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 46mvzr2kcQz4dVl; Mon, 7 Oct 2019 09:18: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 26CA7C733; Mon, 7 Oct 2019 09:18: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 x979ImBj080233; Mon, 7 Oct 2019 09:18:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979ImNt080232; Mon, 7 Oct 2019 09:18:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070918.x979ImNt080232@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 09:18:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353222 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353222 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:18:48 -0000 Author: hselasky Date: Mon Oct 7 09:18:47 2019 New Revision: 353222 URL: https://svnweb.freebsd.org/changeset/base/353222 Log: MFC r352974: Add proper print in case of 0x0 health syndrome in mlx5core. In case of health counter fails to increment it indicates a bad device health. In case when the syndrome indicated by firmware is 0x0, this indicates that firmware is unable to respond to initialization segment reads. Add proper print in this case. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:18:09 2019 (r353221) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:18:47 2019 (r353222) @@ -490,17 +490,23 @@ static const char *hsynd_str(u8 synd) } } -static void print_health_info(struct mlx5_core_dev *dev) +static u8 +print_health_info(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health; struct mlx5_health_buffer __iomem *h = health->health; + u8 synd = ioread8(&h->synd); char fw_str[18]; u32 fw; int i; - /* If the syndrom is 0, the device is OK and no need to print buffer */ - if (!ioread8(&h->synd)) - return; + /* + * If synd is 0x0 - this indicates that FW is unable to + * respond to initialization segment reads and health buffer + * should not be read. + */ + if (synd == 0) + return (0); for (i = 0; i < ARRAY_SIZE(h->assert_var); i++) printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, ioread32be(h->assert_var + i)); @@ -511,10 +517,12 @@ static void print_health_info(struct mlx5_core_dev *de printf("mlx5_core: INFO: ""fw_ver %s\n", fw_str); printf("mlx5_core: INFO: ""hw_id 0x%08x\n", ioread32be(&h->hw_id)); printf("mlx5_core: INFO: ""irisc_index %d\n", ioread8(&h->irisc_index)); - printf("mlx5_core: INFO: ""synd 0x%x: %s\n", ioread8(&h->synd), hsynd_str(ioread8(&h->synd))); + printf("mlx5_core: INFO: ""synd 0x%x: %s\n", synd, hsynd_str(synd)); printf("mlx5_core: INFO: ""ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); fw = ioread32be(&h->fw_ver); printf("mlx5_core: INFO: ""raw fw_ver 0x%08x\n", fw); + + return synd; } static void health_watchdog(struct work_struct *work) @@ -596,7 +604,8 @@ static void poll_health(unsigned long data) health->prev = count; if (health->miss_counter == MAX_MISSES) { mlx5_core_err(dev, "device's health compromised - reached miss count\n"); - print_health_info(dev); + if (print_health_info(dev) == 0) + mlx5_core_err(dev, "FW is unable to respond to initialization segment reads\n"); } fatal_error = check_fatal_sensors(dev); From owner-svn-src-all@freebsd.org Mon Oct 7 09:19:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E087FF466; Mon, 7 Oct 2019 09:19:49 +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 46mw112Bnwz4ddg; Mon, 7 Oct 2019 09:19:49 +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 15576C73E; Mon, 7 Oct 2019 09:19:49 +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 x979Jnmx080372; Mon, 7 Oct 2019 09:19:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Jlxe080357; Mon, 7 Oct 2019 09:19:47 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070919.x979Jlxe080357@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 09:19:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353223 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353223 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:19:49 -0000 Author: hselasky Date: Mon Oct 7 09:19:46 2019 New Revision: 353223 URL: https://svnweb.freebsd.org/changeset/base/353223 Log: MFC r352975: Unify prints in mlx5core. All prints in mlx5core should use on of the macros: mlx5_core_err/dbg/warn Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_cmd.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_fw.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 09:19:46 2019 (r353223) @@ -1489,7 +1489,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) memset(cmd, 0, sizeof(*cmd)); cmd_if_rev = cmdif_rev_get(dev); if (cmd_if_rev != CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Driver cmdif rev(%d) differs from firmware's(%d)\n", CMD_IF_REV, cmd_if_rev); + mlx5_core_err(dev, + "Driver cmdif rev(%d) differs from firmware's(%d)\n", + CMD_IF_REV, cmd_if_rev); return -EINVAL; } @@ -1501,13 +1503,16 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->log_sz = cmd_l >> 4 & 0xf; cmd->log_stride = cmd_l & 0xf; if (1 << cmd->log_sz > MLX5_MAX_COMMANDS) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""firmware reports too many outstanding commands %d\n", 1 << cmd->log_sz); + mlx5_core_err(dev, + "firmware reports too many outstanding commands %d\n", + 1 << cmd->log_sz); err = -EINVAL; goto err_free_page; } if (cmd->log_sz + cmd->log_stride > MLX5_ADAPTER_PAGE_SHIFT) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""command queue size overflow\n"); + mlx5_core_err(dev, + "command queue size overflow\n"); err = -EINVAL; goto err_free_page; } @@ -1518,7 +1523,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->cmdif_rev = ioread32be(&dev->iseg->cmdif_rev_fw_sub) >> 16; if (cmd->cmdif_rev > CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""driver does not support command interface version. driver %d, firmware %d\n", CMD_IF_REV, cmd->cmdif_rev); + mlx5_core_err(dev, + "driver does not support command interface version. driver %d, firmware %d\n", + CMD_IF_REV, cmd->cmdif_rev); err = -ENOTSUPP; goto err_free_page; } @@ -1534,7 +1541,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd_h = (u32)((u64)(cmd->dma) >> 32); cmd_l = (u32)(cmd->dma); if (cmd_l & 0xfff) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""invalid command queue address\n"); + mlx5_core_err(dev, "invalid command queue address\n"); err = -ENOMEM; goto err_free_page; } @@ -1551,7 +1558,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) err = create_msg_cache(dev); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""failed to create command cache\n"); + mlx5_core_err(dev, "failed to create command cache\n"); goto err_free_page; } return 0; Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:19:46 2019 (r353223) @@ -53,13 +53,18 @@ do { \ mlx5_core_dbg(dev, format, ##__VA_ARGS__); \ } while (0) -#define mlx5_core_err(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "ERR: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_err(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "ERR: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) -#define mlx5_core_warn(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "WARN: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_warn(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "WARN: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_core_info(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "INFO: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:19:46 2019 (r353223) @@ -673,7 +673,6 @@ static void mlx5_port_module_event(struct mlx5_core_de unsigned int module_status; unsigned int error_type; struct mlx5_eqe_port_module_event *module_event_eqe; - struct pci_dev *pdev = dev->pdev; module_event_eqe = &eqe->data.port_module_event; @@ -687,19 +686,19 @@ static void mlx5_port_module_event(struct mlx5_core_de dev->priv.pme_stats.status_counters[module_status]++; switch (module_status) { case MLX5_MODULE_STATUS_PLUGGED_ENABLED: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, status: plugged and enabled\n", + mlx5_core_info(dev, + "Module %u, status: plugged and enabled\n", module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, status: unplugged\n", module_num); + mlx5_core_info(dev, + "Module %u, status: unplugged\n", module_num); break; case MLX5_MODULE_STATUS_ERROR: - device_printf((&pdev->dev)->bsddev, - "ERROR: Module %u, status: error, %s\n", + mlx5_core_err(dev, + "Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) @@ -707,8 +706,8 @@ static void mlx5_port_module_event(struct mlx5_core_de break; default: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, unknown status\n", module_num); + mlx5_core_info(dev, + "Module %u, unknown status\n", module_num); } /* store module status */ if (module_num < MLX5_MAX_PORTS) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 09:19:46 2019 (r353223) @@ -139,7 +139,6 @@ static struct mlx5_flow_root_namespace *find_root(stru node = parent; if (node->type != FS_TYPE_NAMESPACE) { - printf("mlx5_core: WARN: ""mlx5: flow steering node %s is not in tree or garbaged\n", node->name); return NULL; } @@ -477,7 +476,7 @@ static int connect_prev_fts(struct fs_prio *locked_pri err = fs_set_star_rule(dev, iter, next_ft); if (err) { mlx5_core_warn(dev, - "mlx5: flow steering can't connect prev and next\n"); + "mlx5: flow steering can't connect prev and next\n"); goto unlock; } else { /* Assume ft's prio is locked */ @@ -605,7 +604,9 @@ static void destroy_star_rule(struct mlx5_flow_table * root = find_root(&prio->base); if (!root) - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); /* In order to ensure atomic deletion, first update * prev ft to point on the next ft. @@ -765,11 +766,13 @@ static struct mlx5_flow_table *_create_ft_common(struc int log_table_sz; int ft_size; char gen_name[20]; - struct mlx5_flow_root_namespace *root = - find_root(&ns->base); + struct mlx5_flow_root_namespace *root = find_root(&ns->base); + struct mlx5_core_dev *dev = fs_get_dev(&ns->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of namespace %s", ns->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of namespace %s", + ns->base.name); return ERR_PTR(-ENODEV); } @@ -987,12 +990,16 @@ int mlx5_destroy_flow_table(struct mlx5_flow_table *ft struct fs_prio *prio; struct mlx5_flow_root_namespace *root; bool is_shared_prio; + struct mlx5_core_dev *dev; fs_get_parent(prio, ft); root = find_root(&prio->base); + dev = fs_get_dev(&prio->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); return -ENODEV; } Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fw.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 09:19:46 2019 (r353223) @@ -324,7 +324,7 @@ int mlx5_cmd_fast_teardown_hca(struct mlx5_core_dev *d } while (!time_after(jiffies, end)); if (mlx5_get_nic_state(dev) != MLX5_NIC_IFC_DISABLED) { - dev_err(&dev->pdev->dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", mlx5_get_nic_state(dev), delay_ms); return -EIO; } Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:19:46 2019 (r353223) @@ -69,7 +69,7 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_find_cap(mdev); if (error != 0) { /* Inability to create a firmware dump is not fatal. */ - device_printf((&mdev->pdev->dev)->bsddev, "WARN: " + mlx5_core_warn(mdev, "mlx5_fwdump_prep failed %d\n", error); return; } @@ -153,13 +153,13 @@ mlx5_fwdump(struct mlx5_core_dev *mdev) uint32_t i, ri; int error; - dev_info(&mdev->pdev->dev, "Issuing FW dump\n"); + mlx5_core_info(mdev, "Issuing FW dump\n"); mtx_lock(&mdev->dump_lock); if (mdev->dump_data == NULL) goto failed; if (mdev->dump_valid) { /* only one dump */ - dev_warn(&mdev->pdev->dev, + mlx5_core_warn(mdev, "Only one FW dump can be captured aborting FW dump\n"); goto failed; } Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:19:46 2019 (r353223) @@ -78,9 +78,11 @@ static int lock_sem_sw_reset(struct mlx5_core_dev *dev ret = -mlx5_vsc_lock_addr_space(dev, MLX5_SEMAPHORE_SW_RESET); if (ret) { if (ret == -EBUSY) - mlx5_core_dbg(dev, "SW reset FW semaphore already locked, another function will handle the reset\n"); + mlx5_core_dbg(dev, + "SW reset FW semaphore already locked, another function will handle the reset\n"); else - mlx5_core_warn(dev, "SW reset semaphore lock return %d\n", ret); + mlx5_core_warn(dev, + "SW reset semaphore lock return %d\n", ret); } /* Unlock GW access */ @@ -216,11 +218,12 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d if (fatal_error == MLX5_SENSOR_PCI_COMM_ERR || fatal_error == MLX5_SENSOR_NIC_DISABLED || fatal_error == MLX5_SENSOR_NIC_SW_RESET) { - mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.\n"); + mlx5_core_warn(dev, + "Not issuing FW reset. Either it's already done or won't help.\n"); return; } - mlx5_core_warn(dev, "Issuing FW Reset\n"); + mlx5_core_info(dev, "Issuing FW Reset\n"); /* Write the NIC interface field to initiate the reset, the command * interface address also resides here, don't overwrite it. */ @@ -251,8 +254,8 @@ mlx5_health_allow_reset(struct mlx5_core_dev *dev) */ health->last_reset_req = ticks ? : -1; if (!ret) - mlx5_core_warn(dev, "Firmware reset elided due to " - "auto-reset frequency threshold.\n"); + mlx5_core_warn(dev, + "Firmware reset elided due to auto-reset frequency threshold.\n"); return (ret); } @@ -313,7 +316,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, } while (!time_after(jiffies, end)); if (!sensor_nic_disabled(dev)) { - dev_err(&dev->pdev->dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", mlx5_get_nic_state(dev), delay_ms); } @@ -321,7 +324,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, if (!lock) unlock_sem_sw_reset(dev); - mlx5_core_err(dev, "system error event triggered\n"); + mlx5_core_info(dev, "System error event triggered\n"); err_state_done: mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 1); @@ -342,9 +345,11 @@ static void mlx5_handle_bad_state(struct mlx5_core_dev * MLX5_NIC_IFC_DISABLED. */ if (dev->priv.health.fatal_error != MLX5_SENSOR_PCI_COMM_ERR) - mlx5_core_warn(dev, "NIC SW reset is already progress\n"); + mlx5_core_warn(dev, + "NIC SW reset is already progress\n"); else - mlx5_core_warn(dev, "Communication with FW over the PCI link is down\n"); + mlx5_core_warn(dev, + "Communication with FW over the PCI link is down\n"); } else { mlx5_core_warn(dev, "NIC mode %d\n", nic_mode); } @@ -372,7 +377,8 @@ static void health_recover(struct work_struct *work) mtx_lock(&Giant); /* XXX newbus needs this */ if (sensor_pci_no_comm(dev)) { - dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n"); + mlx5_core_err(dev, + "health recovery flow aborted, PCI reads still not working\n"); recover = false; } @@ -384,13 +390,14 @@ static void health_recover(struct work_struct *work) } if (nic_mode != MLX5_NIC_IFC_DISABLED) { - dev_err(&dev->pdev->dev, "health recovery flow aborted, unexpected NIC IFC mode %d.\n", - nic_mode); + mlx5_core_err(dev, + "health recovery flow aborted, unexpected NIC IFC mode %d.\n", + nic_mode); recover = false; } if (recover) { - dev_err(&dev->pdev->dev, "starting health recovery flow\n"); + mlx5_core_info(dev, "Starting health recovery flow\n"); mlx5_recover_device(dev); } @@ -425,12 +432,13 @@ static void health_care(struct work_struct *work) spin_lock_irqsave(&health->wq_lock, flags); if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags)) { - mlx5_core_warn(dev, "Scheduling recovery work with %lums delay\n", - recover_delay); + mlx5_core_warn(dev, + "Scheduling recovery work with %lums delay\n", + recover_delay); schedule_delayed_work(&health->recover_work, recover_delay); } else { - dev_err(&dev->pdev->dev, - "new health works are not permitted at this stage\n"); + mlx5_core_err(dev, + "new health works are not permitted at this stage\n"); } spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -455,7 +463,7 @@ void mlx5_trigger_health_work(struct mlx5_core_dev *de if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags)) queue_work(health->wq, &health->work); else - dev_err(&dev->pdev->dev, + mlx5_core_err(dev, "new health works are not permitted at this stage\n"); spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -509,18 +517,23 @@ print_health_info(struct mlx5_core_dev *dev) return (0); for (i = 0; i < ARRAY_SIZE(h->assert_var); i++) - printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, ioread32be(h->assert_var + i)); + mlx5_core_info(dev, "assert_var[%d] 0x%08x\n", i, + ioread32be(h->assert_var + i)); - printf("mlx5_core: INFO: ""assert_exit_ptr 0x%08x\n", ioread32be(&h->assert_exit_ptr)); - printf("mlx5_core: INFO: ""assert_callra 0x%08x\n", ioread32be(&h->assert_callra)); - snprintf(fw_str, sizeof(fw_str), "%d.%d.%d", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); - printf("mlx5_core: INFO: ""fw_ver %s\n", fw_str); - printf("mlx5_core: INFO: ""hw_id 0x%08x\n", ioread32be(&h->hw_id)); - printf("mlx5_core: INFO: ""irisc_index %d\n", ioread8(&h->irisc_index)); - printf("mlx5_core: INFO: ""synd 0x%x: %s\n", synd, hsynd_str(synd)); - printf("mlx5_core: INFO: ""ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); + mlx5_core_info(dev, "assert_exit_ptr 0x%08x\n", + ioread32be(&h->assert_exit_ptr)); + mlx5_core_info(dev, "assert_callra 0x%08x\n", + ioread32be(&h->assert_callra)); + snprintf(fw_str, sizeof(fw_str), "%d.%d.%d", + fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); + mlx5_core_info(dev, "fw_ver %s\n", fw_str); + mlx5_core_info(dev, "hw_id 0x%08x\n", ioread32be(&h->hw_id)); + mlx5_core_info(dev, "irisc_index %d\n", ioread8(&h->irisc_index)); + mlx5_core_info(dev, "synd 0x%x: %s\n", + ioread8(&h->synd), hsynd_str(ioread8(&h->synd))); + mlx5_core_info(dev, "ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); fw = ioread32be(&h->fw_ver); - printf("mlx5_core: INFO: ""raw fw_ver 0x%08x\n", fw); + mlx5_core_info(dev, "raw fw_ver 0x%08x\n", fw); return synd; } @@ -540,31 +553,38 @@ static void health_watchdog(struct work_struct *work) err = mlx5_pci_read_power_status(dev, &power, &status); if (err < 0) { - mlx5_core_warn(dev, "Failed reading power status: %d\n", err); + mlx5_core_warn(dev, "Failed reading power status: %d\n", + err); return; } dev->pwr_value = power; if (dev->pwr_status != status) { - device_t bsddev = dev->pdev->dev.bsddev; switch (status) { case 0: dev->pwr_status = status; - device_printf(bsddev, "PCI power is not published by the PCIe slot.\n"); + mlx5_core_info(dev, + "PCI power is not published by the PCIe slot.\n"); break; case 1: dev->pwr_status = status; - device_printf(bsddev, "PCIe slot advertised sufficient power (%uW).\n", power); + mlx5_core_info(dev, + "PCIe slot advertised sufficient power (%uW).\n", + power); break; case 2: dev->pwr_status = status; - device_printf(bsddev, "WARN: Detected insufficient power on the PCIe slot (%uW).\n", power); + mlx5_core_warn(dev, + "Detected insufficient power on the PCIe slot (%uW).\n", + power); break; default: dev->pwr_status = 0; - device_printf(bsddev, "WARN: Unknown power state detected(%d).\n", status); + mlx5_core_warn(dev, + "Unknown power state detected(%d).\n", + status); break; } } @@ -580,8 +600,8 @@ mlx5_trigger_health_watchdog(struct mlx5_core_dev *dev if (!test_bit(MLX5_DROP_NEW_WATCHDOG_WORK, &health->flags)) queue_work(health->wq_watchdog, &health->work_watchdog); else - dev_err(&dev->pdev->dev, - "scheduling watchdog is not permitted at this stage\n"); + mlx5_core_err(dev, + "scheduling watchdog is not permitted at this stage\n"); spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -611,7 +631,8 @@ static void poll_health(unsigned long data) fatal_error = check_fatal_sensors(dev); if (fatal_error && !health->fatal_error) { - mlx5_core_err(dev, "Fatal error %u detected\n", fatal_error); + mlx5_core_err(dev, + "Fatal error %u detected\n", fatal_error); dev->priv.health.fatal_error = fatal_error; print_health_info(dev); mlx5_trigger_health_work(dev); Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:19:46 2019 (r353223) @@ -172,24 +172,25 @@ static struct mlx5_profile profiles[] = { static int set_dma_caps(struct pci_dev *pdev) { + struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err; err = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); if (err) { - device_printf((&pdev->dev)->bsddev, "WARN: ""Warning: couldn't set 64-bit PCI DMA mask\n"); + mlx5_core_warn(dev, "couldn't set 64-bit PCI DMA mask\n"); err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Can't set PCI DMA mask, aborting\n"); + mlx5_core_err(dev, "Can't set PCI DMA mask, aborting\n"); return err; } } err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); if (err) { - device_printf((&pdev->dev)->bsddev, "WARN: ""Warning: couldn't set 64-bit consistent PCI DMA mask\n"); + mlx5_core_warn(dev, "couldn't set 64-bit consistent PCI DMA mask\n"); err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Can't set consistent PCI DMA mask, aborting\n"); + mlx5_core_err(dev, "Can't set consistent PCI DMA mask, aborting\n"); return err; } } @@ -243,16 +244,17 @@ static void mlx5_pci_disable_device(struct mlx5_core_d static int request_bar(struct pci_dev *pdev) { + struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err = 0; if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Missing registers BAR, aborting\n"); + mlx5_core_err(dev, "Missing registers BAR, aborting\n"); return -ENODEV; } err = pci_request_regions(pdev, DRIVER_NAME); if (err) - device_printf((&pdev->dev)->bsddev, "ERR: ""Couldn't get PCI resources, aborting\n"); + mlx5_core_err(dev, "Couldn't get PCI resources, aborting\n"); return err; } @@ -319,7 +321,7 @@ enum { MLX5_DEV_CAP_FLAG_DRAIN_SIGERR, }; -static u16 to_fw_pkey_sz(u32 size) +static u16 to_fw_pkey_sz(struct mlx5_core_dev *dev, u32 size) { switch (size) { case 128: @@ -335,7 +337,7 @@ static u16 to_fw_pkey_sz(u32 size) case 4096: return 5; default: - printf("mlx5_core: WARN: ""invalid pkey table size %d\n", size); + mlx5_core_warn(dev, "invalid pkey table size %d\n", size); return 0; } } @@ -430,7 +432,7 @@ static int handle_hca_cap(struct mlx5_core_dev *dev) 128); /* we limit the size of the pkey table to 128 entries for now */ MLX5_SET(cmd_hca_cap, set_hca_cap, pkey_table_size, - to_fw_pkey_sz(128)); + to_fw_pkey_sz(dev, 128)); if (prof->mask & MLX5_PROF_MASK_QP_SIZE) MLX5_SET(cmd_hca_cap, set_hca_cap, log_max_qp, @@ -544,11 +546,11 @@ static int mlx5_core_set_issi(struct mlx5_core_dev *de mlx5_cmd_mbox_status(query_out, &status, &syndrome); if (status == MLX5_CMD_STAT_BAD_OP_ERR) { - pr_debug("Only ISSI 0 is supported\n"); + mlx5_core_dbg(dev, "Only ISSI 0 is supported\n"); return 0; } - printf("mlx5_core: ERR: ""failed to query ISSI\n"); + mlx5_core_err(dev, "failed to query ISSI\n"); return err; } @@ -563,7 +565,7 @@ static int mlx5_core_set_issi(struct mlx5_core_dev *de err = mlx5_cmd_exec(dev, set_in, sizeof(set_in), set_out, sizeof(set_out)); if (err) { - printf("mlx5_core: ERR: ""failed to set ISSI=1 err(%d)\n", err); + mlx5_core_err(dev, "failed to set ISSI=1 err(%d)\n", err); return err; } @@ -850,13 +852,13 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st err = mlx5_pci_enable_device(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Cannot enable PCI device, aborting\n"); + mlx5_core_err(dev, "Cannot enable PCI device, aborting\n"); goto err_dbg; } err = request_bar(pdev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""error requesting BARs, aborting\n"); + mlx5_core_err(dev, "error requesting BARs, aborting\n"); goto err_disable; } @@ -864,7 +866,7 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st err = set_dma_caps(pdev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed setting DMA capabilities mask, aborting\n"); + mlx5_core_err(dev, "Failed setting DMA capabilities mask, aborting\n"); goto err_clr_master; } @@ -872,7 +874,7 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st dev->iseg = ioremap(dev->iseg_base, sizeof(*dev->iseg)); if (!dev->iseg) { err = -ENOMEM; - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed mapping initialization segment, aborting\n"); + mlx5_core_err(dev, "Failed mapping initialization segment, aborting\n"); goto err_clr_master; } @@ -895,28 +897,27 @@ static void mlx5_pci_close(struct mlx5_core_dev *dev, static int mlx5_init_once(struct mlx5_core_dev *dev, struct mlx5_priv *priv) { - struct pci_dev *pdev = dev->pdev; int err; err = mlx5_vsc_find_cap(dev); if (err) - dev_err(&pdev->dev, "Unable to find vendor specific capabilities\n"); + mlx5_core_err(dev, "Unable to find vendor specific capabilities\n"); err = mlx5_query_hca_caps(dev); if (err) { - dev_err(&pdev->dev, "query hca failed\n"); + mlx5_core_err(dev, "query hca failed\n"); goto out; } err = mlx5_query_board_id(dev); if (err) { - dev_err(&pdev->dev, "query board id failed\n"); + mlx5_core_err(dev, "query board id failed\n"); goto out; } err = mlx5_eq_init(dev); if (err) { - dev_err(&pdev->dev, "failed to initialize eq\n"); + mlx5_core_err(dev, "failed to initialize eq\n"); goto out; } @@ -924,7 +925,7 @@ static int mlx5_init_once(struct mlx5_core_dev *dev, s err = mlx5_init_cq_table(dev); if (err) { - dev_err(&pdev->dev, "failed to initialize cq table\n"); + mlx5_core_err(dev, "failed to initialize cq table\n"); goto err_eq_cleanup; } @@ -938,7 +939,7 @@ static int mlx5_init_once(struct mlx5_core_dev *dev, s #ifdef RATELIMIT err = mlx5_init_rl_table(dev); if (err) { - dev_err(&pdev->dev, "Failed to init rate limiting\n"); + mlx5_core_err(dev, "Failed to init rate limiting\n"); goto err_tables_cleanup; } #endif @@ -976,17 +977,16 @@ static void mlx5_cleanup_once(struct mlx5_core_dev *de static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, bool boot) { - struct pci_dev *pdev = dev->pdev; int err; mutex_lock(&dev->intf_state_mutex); if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { - dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n", - __func__); + mlx5_core_warn(dev, "interface is up, NOP\n"); goto out; } - device_printf((&pdev->dev)->bsddev, "INFO: ""firmware version: %d.%d.%d\n", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); + mlx5_core_dbg(dev, "firmware version: %d.%d.%d\n", + fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); /* * On load removing any previous indication of internal error, @@ -996,103 +996,103 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_cmd_init(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed initializing command interface, aborting\n"); + mlx5_core_err(dev, "Failed initializing command interface, aborting\n"); goto out_err; } err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); + mlx5_core_err(dev, "Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); goto err_cmd_cleanup; } err = mlx5_core_enable_hca(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""enable hca failed\n"); + mlx5_core_err(dev, "enable hca failed\n"); goto err_cmd_cleanup; } err = mlx5_core_set_issi(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to set issi\n"); + mlx5_core_err(dev, "failed to set issi\n"); goto err_disable_hca; } err = mlx5_pagealloc_start(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""mlx5_pagealloc_start failed\n"); + mlx5_core_err(dev, "mlx5_pagealloc_start failed\n"); goto err_disable_hca; } err = mlx5_satisfy_startup_pages(dev, 1); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to allocate boot pages\n"); + mlx5_core_err(dev, "failed to allocate boot pages\n"); goto err_pagealloc_stop; } err = set_hca_ctrl(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""set_hca_ctrl failed\n"); + mlx5_core_err(dev, "set_hca_ctrl failed\n"); goto reclaim_boot_pages; } err = handle_hca_cap(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""handle_hca_cap failed\n"); + mlx5_core_err(dev, "handle_hca_cap failed\n"); goto reclaim_boot_pages; } err = handle_hca_cap_atomic(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""handle_hca_cap_atomic failed\n"); + mlx5_core_err(dev, "handle_hca_cap_atomic failed\n"); goto reclaim_boot_pages; } err = mlx5_satisfy_startup_pages(dev, 0); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to allocate init pages\n"); + mlx5_core_err(dev, "failed to allocate init pages\n"); goto reclaim_boot_pages; } err = mlx5_cmd_init_hca(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""init hca failed\n"); + mlx5_core_err(dev, "init hca failed\n"); goto reclaim_boot_pages; } mlx5_start_health_poll(dev); if (boot && mlx5_init_once(dev, priv)) { - dev_err(&pdev->dev, "sw objs init failed\n"); + mlx5_core_err(dev, "sw objs init failed\n"); goto err_stop_poll; } err = mlx5_enable_msix(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""enable msix failed\n"); + mlx5_core_err(dev, "enable msix failed\n"); goto err_cleanup_once; } err = mlx5_alloc_uuars(dev, &priv->uuari); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed allocating uar, aborting\n"); + mlx5_core_err(dev, "Failed allocating uar, aborting\n"); goto err_disable_msix; } err = mlx5_start_eqs(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to start pages and async EQs\n"); + mlx5_core_err(dev, "Failed to start pages and async EQs\n"); goto err_free_uar; } err = alloc_comp_eqs(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to alloc completion EQs\n"); + mlx5_core_err(dev, "Failed to alloc completion EQs\n"); goto err_stop_eqs; } if (map_bf_area(dev)) - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to map blue flame area\n"); + mlx5_core_err(dev, "Failed to map blue flame area\n"); err = mlx5_init_fs(dev); if (err) { @@ -1108,13 +1108,13 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_fpga_device_start(dev); if (err) { - dev_err(&pdev->dev, "fpga device start failed %d\n", err); + mlx5_core_err(dev, "fpga device start failed %d\n", err); goto err_mpfs; } err = mlx5_register_device(dev); if (err) { - dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); + mlx5_core_err(dev, "mlx5_register_device failed %d\n", err); goto err_fpga; } @@ -1153,7 +1153,7 @@ err_cleanup_once: err_stop_poll: mlx5_stop_health_poll(dev, boot); if (mlx5_cmd_teardown_hca(dev)) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""tear_down_hca failed, skip cleanup\n"); + mlx5_core_err(dev, "tear_down_hca failed, skip cleanup\n"); goto out_err; } @@ -1186,7 +1186,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mutex_lock(&dev->intf_state_mutex); if (!test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { - dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", __func__); + mlx5_core_warn(dev, "%s: interface is down, NOP\n", __func__); if (cleanup) mlx5_cleanup_once(dev); goto out; @@ -1208,7 +1208,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mlx5_stop_health_poll(dev, cleanup); err = mlx5_cmd_teardown_hca(dev); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""tear_down_hca failed, skip cleanup\n"); + mlx5_core_err(dev, "tear_down_hca failed, skip cleanup\n"); goto out; } mlx5_pagealloc_stop(dev); @@ -1276,7 +1276,9 @@ static int init_one(struct pci_dev *pdev, priv->pci_dev_data = id->driver_data; if (mlx5_prof_sel < 0 || mlx5_prof_sel >= ARRAY_SIZE(profiles)) { - device_printf(bsddev, "WARN: selected profile out of range, selecting default (%d)\n", MLX5_DEFAULT_PROF); + device_printf(bsddev, + "WARN: selected profile out of range, selecting default (%d)\n", + MLX5_DEFAULT_PROF); mlx5_prof_sel = MLX5_DEFAULT_PROF; } dev->profile = &profiles[mlx5_prof_sel]; @@ -1342,13 +1344,13 @@ static int init_one(struct pci_dev *pdev, mtx_init(&dev->dump_lock, "mlx5dmp", NULL, MTX_DEF | MTX_NEW); err = mlx5_pci_init(dev, priv); if (err) { - device_printf(bsddev, "ERR: mlx5_pci_init failed %d\n", err); + mlx5_core_err(dev, "mlx5_pci_init failed %d\n", err); goto clean_dev; } err = mlx5_health_init(dev); if (err) { - device_printf(bsddev, "ERR: mlx5_health_init failed %d\n", err); + mlx5_core_err(dev, "mlx5_health_init failed %d\n", err); goto close_pci; } @@ -1356,7 +1358,7 @@ static int init_one(struct pci_dev *pdev, err = mlx5_load_one(dev, priv, true); if (err) { - device_printf(bsddev, "ERR: mlx5_load_one failed %d\n", err); + mlx5_core_err(dev, "mlx5_load_one failed %d\n", err); goto clean_health; } @@ -1386,7 +1388,7 @@ static void remove_one(struct pci_dev *pdev) struct mlx5_priv *priv = &dev->priv; if (mlx5_unload_one(dev, priv, true)) { - dev_err(&dev->pdev->dev, "mlx5_unload_one failed\n"); + mlx5_core_err(dev, "mlx5_unload_one failed\n"); mlx5_health_cleanup(dev); return; } @@ -1407,7 +1409,7 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p struct mlx5_core_dev *dev = pci_get_drvdata(pdev); struct mlx5_priv *priv = &dev->priv; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev, "%s was called\n", __func__); mlx5_enter_error_state(dev, false); mlx5_unload_one(dev, priv, false); @@ -1425,12 +1427,12 @@ static pci_ers_result_t mlx5_pci_slot_reset(struct pci struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err = 0; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev,"%s was called\n", __func__); err = mlx5_pci_enable_device(dev); if (err) { - dev_err(&pdev->dev, "%s: mlx5_pci_enable_device failed with error code: %d\n" - , __func__, err); + mlx5_core_err(dev, "mlx5_pci_enable_device failed with error code: %d\n" + ,err); return PCI_ERS_RESULT_DISCONNECT; } pci_set_master(pdev); @@ -1458,29 +1460,31 @@ static void wait_vital(struct pci_dev *pdev) msleep(1000); for (i = 0; i < niter; i++) { if (pci_read_config_word(pdev, 2, &did)) { - dev_warn(&pdev->dev, "failed reading config word\n"); + mlx5_core_warn(dev, "failed reading config word\n"); break; } if (did == pdev->device) { - dev_info(&pdev->dev, "device ID correctly read after %d iterations\n", i); + mlx5_core_info(dev, + "device ID correctly read after %d iterations\n", i); break; } msleep(50); } if (i == niter) - dev_warn(&pdev->dev, "%s-%d: could not read device ID\n", __func__, __LINE__); + mlx5_core_warn(dev, "could not read device ID\n"); for (i = 0; i < niter; i++) { count = ioread32be(health->health_counter); if (count && count != 0xffffffff) { - dev_info(&pdev->dev, "Counter value 0x%x after %d iterations\n", count, i); + mlx5_core_info(dev, + "Counter value 0x%x after %d iterations\n", count, i); break; } msleep(50); } if (i == niter) - dev_warn(&pdev->dev, "%s-%d: could not read device ID\n", __func__, __LINE__); + mlx5_core_warn(dev, "could not read device ID\n"); } static void mlx5_pci_resume(struct pci_dev *pdev) @@ -1489,16 +1493,16 @@ static void mlx5_pci_resume(struct pci_dev *pdev) struct mlx5_priv *priv = &dev->priv; int err; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev,"%s was called\n", __func__); wait_vital(pdev); err = mlx5_load_one(dev, priv, false); if (err) - dev_err(&pdev->dev, "%s: mlx5_load_one failed with error code: %d\n" - , __func__, err); + mlx5_core_err(dev, + "mlx5_load_one failed with error code: %d\n" ,err); else - dev_info(&pdev->dev, "%s: device recovered\n", __func__); + mlx5_core_info(dev,"device recovered\n"); } static const struct pci_error_handlers mlx5_err_handler = { Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 09:19:46 2019 (r353223) @@ -33,6 +33,8 @@ #include #include +#include "mlx5_core.h" + #define MPFS_LOCK(dev) spin_lock(&(dev)->mpfs.spinlock) #define MPFS_UNLOCK(dev) spin_unlock(&(dev)->mpfs.spinlock) @@ -119,7 +121,7 @@ mlx5_mpfs_destroy(struct mlx5_core_dev *dev) num = bitmap_weight(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); if (num != 0) - dev_err(&dev->pdev->dev, "Leaking %u MPFS MAC table entries\n", num); + mlx5_core_err(dev, "Leaking %u MPFS MAC table entries\n", num); spin_lock_destroy(&dev->mpfs.spinlock); } Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:18:47 2019 (r353222) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:19:46 2019 (r353223) @@ -618,7 +618,7 @@ out: } EXPORT_SYMBOL_GPL(mlx5_core_access_ptys); -static int mtu_to_ib_mtu(int mtu) +static int mtu_to_ib_mtu(struct mlx5_core_dev *dev, int mtu) { switch (mtu) { case 256: return 1; @@ -627,7 +627,7 @@ static int mtu_to_ib_mtu(int mtu) case 2048: return 4; case 4096: return 5; default: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Oct 7 09:24:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF89BFF704; Mon, 7 Oct 2019 09:24:14 +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 46mw665sDLz4f2m; Mon, 7 Oct 2019 09:24:14 +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 AB7F8C8F8; Mon, 7 Oct 2019 09:24:14 +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 x979OERw085930; Mon, 7 Oct 2019 09:24:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979OCGp085918; Mon, 7 Oct 2019 09:24:12 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070924.x979OCGp085918@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 09:24:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353224 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353224 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:24:14 -0000 Author: hselasky Date: Mon Oct 7 09:24:12 2019 New Revision: 353224 URL: https://svnweb.freebsd.org/changeset/base/353224 Log: MFC r352975: Unify prints in mlx5core. All prints in mlx5core should use on of the macros: mlx5_core_err/dbg/warn Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 09:24:12 2019 (r353224) @@ -1489,7 +1489,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) memset(cmd, 0, sizeof(*cmd)); cmd_if_rev = cmdif_rev_get(dev); if (cmd_if_rev != CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Driver cmdif rev(%d) differs from firmware's(%d)\n", CMD_IF_REV, cmd_if_rev); + mlx5_core_err(dev, + "Driver cmdif rev(%d) differs from firmware's(%d)\n", + CMD_IF_REV, cmd_if_rev); return -EINVAL; } @@ -1501,13 +1503,16 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->log_sz = cmd_l >> 4 & 0xf; cmd->log_stride = cmd_l & 0xf; if (1 << cmd->log_sz > MLX5_MAX_COMMANDS) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""firmware reports too many outstanding commands %d\n", 1 << cmd->log_sz); + mlx5_core_err(dev, + "firmware reports too many outstanding commands %d\n", + 1 << cmd->log_sz); err = -EINVAL; goto err_free_page; } if (cmd->log_sz + cmd->log_stride > MLX5_ADAPTER_PAGE_SHIFT) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""command queue size overflow\n"); + mlx5_core_err(dev, + "command queue size overflow\n"); err = -EINVAL; goto err_free_page; } @@ -1518,7 +1523,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->cmdif_rev = ioread32be(&dev->iseg->cmdif_rev_fw_sub) >> 16; if (cmd->cmdif_rev > CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""driver does not support command interface version. driver %d, firmware %d\n", CMD_IF_REV, cmd->cmdif_rev); + mlx5_core_err(dev, + "driver does not support command interface version. driver %d, firmware %d\n", + CMD_IF_REV, cmd->cmdif_rev); err = -ENOTSUPP; goto err_free_page; } @@ -1534,7 +1541,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd_h = (u32)((u64)(cmd->dma) >> 32); cmd_l = (u32)(cmd->dma); if (cmd_l & 0xfff) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""invalid command queue address\n"); + mlx5_core_err(dev, "invalid command queue address\n"); err = -ENOMEM; goto err_free_page; } @@ -1551,7 +1558,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) err = create_msg_cache(dev); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""failed to create command cache\n"); + mlx5_core_err(dev, "failed to create command cache\n"); goto err_free_page; } return 0; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:24:12 2019 (r353224) @@ -53,13 +53,18 @@ do { \ mlx5_core_dbg(dev, format, ##__VA_ARGS__); \ } while (0) -#define mlx5_core_err(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "ERR: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_err(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "ERR: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) -#define mlx5_core_warn(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "WARN: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_warn(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "WARN: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_core_info(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "INFO: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 09:24:12 2019 (r353224) @@ -673,7 +673,6 @@ static void mlx5_port_module_event(struct mlx5_core_de unsigned int module_status; unsigned int error_type; struct mlx5_eqe_port_module_event *module_event_eqe; - struct pci_dev *pdev = dev->pdev; module_event_eqe = &eqe->data.port_module_event; @@ -687,19 +686,19 @@ static void mlx5_port_module_event(struct mlx5_core_de dev->priv.pme_stats.status_counters[module_status]++; switch (module_status) { case MLX5_MODULE_STATUS_PLUGGED_ENABLED: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, status: plugged and enabled\n", + mlx5_core_info(dev, + "Module %u, status: plugged and enabled\n", module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, status: unplugged\n", module_num); + mlx5_core_info(dev, + "Module %u, status: unplugged\n", module_num); break; case MLX5_MODULE_STATUS_ERROR: - device_printf((&pdev->dev)->bsddev, - "ERROR: Module %u, status: error, %s\n", + mlx5_core_err(dev, + "Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) @@ -707,8 +706,8 @@ static void mlx5_port_module_event(struct mlx5_core_de break; default: - device_printf((&pdev->dev)->bsddev, - "INFO: Module %u, unknown status\n", module_num); + mlx5_core_info(dev, + "Module %u, unknown status\n", module_num); } /* store module status */ if (module_num < MLX5_MAX_PORTS) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 09:24:12 2019 (r353224) @@ -139,7 +139,6 @@ static struct mlx5_flow_root_namespace *find_root(stru node = parent; if (node->type != FS_TYPE_NAMESPACE) { - printf("mlx5_core: WARN: ""mlx5: flow steering node %s is not in tree or garbaged\n", node->name); return NULL; } @@ -477,7 +476,7 @@ static int connect_prev_fts(struct fs_prio *locked_pri err = fs_set_star_rule(dev, iter, next_ft); if (err) { mlx5_core_warn(dev, - "mlx5: flow steering can't connect prev and next\n"); + "mlx5: flow steering can't connect prev and next\n"); goto unlock; } else { /* Assume ft's prio is locked */ @@ -605,7 +604,9 @@ static void destroy_star_rule(struct mlx5_flow_table * root = find_root(&prio->base); if (!root) - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); /* In order to ensure atomic deletion, first update * prev ft to point on the next ft. @@ -765,11 +766,13 @@ static struct mlx5_flow_table *_create_ft_common(struc int log_table_sz; int ft_size; char gen_name[20]; - struct mlx5_flow_root_namespace *root = - find_root(&ns->base); + struct mlx5_flow_root_namespace *root = find_root(&ns->base); + struct mlx5_core_dev *dev = fs_get_dev(&ns->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of namespace %s", ns->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of namespace %s", + ns->base.name); return ERR_PTR(-ENODEV); } @@ -987,12 +990,16 @@ int mlx5_destroy_flow_table(struct mlx5_flow_table *ft struct fs_prio *prio; struct mlx5_flow_root_namespace *root; bool is_shared_prio; + struct mlx5_core_dev *dev; fs_get_parent(prio, ft); root = find_root(&prio->base); + dev = fs_get_dev(&prio->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); return -ENODEV; } Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 09:24:12 2019 (r353224) @@ -324,7 +324,7 @@ int mlx5_cmd_fast_teardown_hca(struct mlx5_core_dev *d } while (!time_after(jiffies, end)); if (mlx5_get_nic_state(dev) != MLX5_NIC_IFC_DISABLED) { - dev_err(&dev->pdev->dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", mlx5_get_nic_state(dev), delay_ms); return -EIO; } Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:24:12 2019 (r353224) @@ -69,7 +69,7 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_find_cap(mdev); if (error != 0) { /* Inability to create a firmware dump is not fatal. */ - device_printf((&mdev->pdev->dev)->bsddev, "WARN: " + mlx5_core_warn(mdev, "mlx5_fwdump_prep failed %d\n", error); return; } @@ -153,13 +153,13 @@ mlx5_fwdump(struct mlx5_core_dev *mdev) uint32_t i, ri; int error; - dev_info(&mdev->pdev->dev, "Issuing FW dump\n"); + mlx5_core_info(mdev, "Issuing FW dump\n"); mtx_lock(&mdev->dump_lock); if (mdev->dump_data == NULL) goto failed; if (mdev->dump_valid) { /* only one dump */ - dev_warn(&mdev->pdev->dev, + mlx5_core_warn(mdev, "Only one FW dump can be captured aborting FW dump\n"); goto failed; } Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:24:12 2019 (r353224) @@ -78,9 +78,11 @@ static int lock_sem_sw_reset(struct mlx5_core_dev *dev ret = -mlx5_vsc_lock_addr_space(dev, MLX5_SEMAPHORE_SW_RESET); if (ret) { if (ret == -EBUSY) - mlx5_core_dbg(dev, "SW reset FW semaphore already locked, another function will handle the reset\n"); + mlx5_core_dbg(dev, + "SW reset FW semaphore already locked, another function will handle the reset\n"); else - mlx5_core_warn(dev, "SW reset semaphore lock return %d\n", ret); + mlx5_core_warn(dev, + "SW reset semaphore lock return %d\n", ret); } /* Unlock GW access */ @@ -216,11 +218,12 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d if (fatal_error == MLX5_SENSOR_PCI_COMM_ERR || fatal_error == MLX5_SENSOR_NIC_DISABLED || fatal_error == MLX5_SENSOR_NIC_SW_RESET) { - mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.\n"); + mlx5_core_warn(dev, + "Not issuing FW reset. Either it's already done or won't help.\n"); return; } - mlx5_core_warn(dev, "Issuing FW Reset\n"); + mlx5_core_info(dev, "Issuing FW Reset\n"); /* Write the NIC interface field to initiate the reset, the command * interface address also resides here, don't overwrite it. */ @@ -251,8 +254,8 @@ mlx5_health_allow_reset(struct mlx5_core_dev *dev) */ health->last_reset_req = ticks ? : -1; if (!ret) - mlx5_core_warn(dev, "Firmware reset elided due to " - "auto-reset frequency threshold.\n"); + mlx5_core_warn(dev, + "Firmware reset elided due to auto-reset frequency threshold.\n"); return (ret); } @@ -313,7 +316,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, } while (!time_after(jiffies, end)); if (!sensor_nic_disabled(dev)) { - dev_err(&dev->pdev->dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", mlx5_get_nic_state(dev), delay_ms); } @@ -321,7 +324,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, if (!lock) unlock_sem_sw_reset(dev); - mlx5_core_err(dev, "system error event triggered\n"); + mlx5_core_info(dev, "System error event triggered\n"); err_state_done: mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 1); @@ -342,9 +345,11 @@ static void mlx5_handle_bad_state(struct mlx5_core_dev * MLX5_NIC_IFC_DISABLED. */ if (dev->priv.health.fatal_error != MLX5_SENSOR_PCI_COMM_ERR) - mlx5_core_warn(dev, "NIC SW reset is already progress\n"); + mlx5_core_warn(dev, + "NIC SW reset is already progress\n"); else - mlx5_core_warn(dev, "Communication with FW over the PCI link is down\n"); + mlx5_core_warn(dev, + "Communication with FW over the PCI link is down\n"); } else { mlx5_core_warn(dev, "NIC mode %d\n", nic_mode); } @@ -372,7 +377,8 @@ static void health_recover(struct work_struct *work) mtx_lock(&Giant); /* XXX newbus needs this */ if (sensor_pci_no_comm(dev)) { - dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n"); + mlx5_core_err(dev, + "health recovery flow aborted, PCI reads still not working\n"); recover = false; } @@ -384,13 +390,14 @@ static void health_recover(struct work_struct *work) } if (nic_mode != MLX5_NIC_IFC_DISABLED) { - dev_err(&dev->pdev->dev, "health recovery flow aborted, unexpected NIC IFC mode %d.\n", - nic_mode); + mlx5_core_err(dev, + "health recovery flow aborted, unexpected NIC IFC mode %d.\n", + nic_mode); recover = false; } if (recover) { - dev_err(&dev->pdev->dev, "starting health recovery flow\n"); + mlx5_core_info(dev, "Starting health recovery flow\n"); mlx5_recover_device(dev); } @@ -425,12 +432,13 @@ static void health_care(struct work_struct *work) spin_lock_irqsave(&health->wq_lock, flags); if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags)) { - mlx5_core_warn(dev, "Scheduling recovery work with %lums delay\n", - recover_delay); + mlx5_core_warn(dev, + "Scheduling recovery work with %lums delay\n", + recover_delay); schedule_delayed_work(&health->recover_work, recover_delay); } else { - dev_err(&dev->pdev->dev, - "new health works are not permitted at this stage\n"); + mlx5_core_err(dev, + "new health works are not permitted at this stage\n"); } spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -455,7 +463,7 @@ void mlx5_trigger_health_work(struct mlx5_core_dev *de if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags)) queue_work(health->wq, &health->work); else - dev_err(&dev->pdev->dev, + mlx5_core_err(dev, "new health works are not permitted at this stage\n"); spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -509,18 +517,23 @@ print_health_info(struct mlx5_core_dev *dev) return (0); for (i = 0; i < ARRAY_SIZE(h->assert_var); i++) - printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, ioread32be(h->assert_var + i)); + mlx5_core_info(dev, "assert_var[%d] 0x%08x\n", i, + ioread32be(h->assert_var + i)); - printf("mlx5_core: INFO: ""assert_exit_ptr 0x%08x\n", ioread32be(&h->assert_exit_ptr)); - printf("mlx5_core: INFO: ""assert_callra 0x%08x\n", ioread32be(&h->assert_callra)); - snprintf(fw_str, sizeof(fw_str), "%d.%d.%d", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); - printf("mlx5_core: INFO: ""fw_ver %s\n", fw_str); - printf("mlx5_core: INFO: ""hw_id 0x%08x\n", ioread32be(&h->hw_id)); - printf("mlx5_core: INFO: ""irisc_index %d\n", ioread8(&h->irisc_index)); - printf("mlx5_core: INFO: ""synd 0x%x: %s\n", synd, hsynd_str(synd)); - printf("mlx5_core: INFO: ""ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); + mlx5_core_info(dev, "assert_exit_ptr 0x%08x\n", + ioread32be(&h->assert_exit_ptr)); + mlx5_core_info(dev, "assert_callra 0x%08x\n", + ioread32be(&h->assert_callra)); + snprintf(fw_str, sizeof(fw_str), "%d.%d.%d", + fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); + mlx5_core_info(dev, "fw_ver %s\n", fw_str); + mlx5_core_info(dev, "hw_id 0x%08x\n", ioread32be(&h->hw_id)); + mlx5_core_info(dev, "irisc_index %d\n", ioread8(&h->irisc_index)); + mlx5_core_info(dev, "synd 0x%x: %s\n", + ioread8(&h->synd), hsynd_str(ioread8(&h->synd))); + mlx5_core_info(dev, "ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); fw = ioread32be(&h->fw_ver); - printf("mlx5_core: INFO: ""raw fw_ver 0x%08x\n", fw); + mlx5_core_info(dev, "raw fw_ver 0x%08x\n", fw); return synd; } @@ -540,31 +553,38 @@ static void health_watchdog(struct work_struct *work) err = mlx5_pci_read_power_status(dev, &power, &status); if (err < 0) { - mlx5_core_warn(dev, "Failed reading power status: %d\n", err); + mlx5_core_warn(dev, "Failed reading power status: %d\n", + err); return; } dev->pwr_value = power; if (dev->pwr_status != status) { - device_t bsddev = dev->pdev->dev.bsddev; switch (status) { case 0: dev->pwr_status = status; - device_printf(bsddev, "PCI power is not published by the PCIe slot.\n"); + mlx5_core_info(dev, + "PCI power is not published by the PCIe slot.\n"); break; case 1: dev->pwr_status = status; - device_printf(bsddev, "PCIe slot advertised sufficient power (%uW).\n", power); + mlx5_core_info(dev, + "PCIe slot advertised sufficient power (%uW).\n", + power); break; case 2: dev->pwr_status = status; - device_printf(bsddev, "WARN: Detected insufficient power on the PCIe slot (%uW).\n", power); + mlx5_core_warn(dev, + "Detected insufficient power on the PCIe slot (%uW).\n", + power); break; default: dev->pwr_status = 0; - device_printf(bsddev, "WARN: Unknown power state detected(%d).\n", status); + mlx5_core_warn(dev, + "Unknown power state detected(%d).\n", + status); break; } } @@ -580,8 +600,8 @@ mlx5_trigger_health_watchdog(struct mlx5_core_dev *dev if (!test_bit(MLX5_DROP_NEW_WATCHDOG_WORK, &health->flags)) queue_work(health->wq_watchdog, &health->work_watchdog); else - dev_err(&dev->pdev->dev, - "scheduling watchdog is not permitted at this stage\n"); + mlx5_core_err(dev, + "scheduling watchdog is not permitted at this stage\n"); spin_unlock_irqrestore(&health->wq_lock, flags); } @@ -611,7 +631,8 @@ static void poll_health(unsigned long data) fatal_error = check_fatal_sensors(dev); if (fatal_error && !health->fatal_error) { - mlx5_core_err(dev, "Fatal error %u detected\n", fatal_error); + mlx5_core_err(dev, + "Fatal error %u detected\n", fatal_error); dev->priv.health.fatal_error = fatal_error; print_health_info(dev); mlx5_trigger_health_work(dev); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 09:24:12 2019 (r353224) @@ -172,24 +172,25 @@ static struct mlx5_profile profiles[] = { static int set_dma_caps(struct pci_dev *pdev) { + struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err; err = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); if (err) { - device_printf((&pdev->dev)->bsddev, "WARN: ""Warning: couldn't set 64-bit PCI DMA mask\n"); + mlx5_core_warn(dev, "couldn't set 64-bit PCI DMA mask\n"); err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Can't set PCI DMA mask, aborting\n"); + mlx5_core_err(dev, "Can't set PCI DMA mask, aborting\n"); return err; } } err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); if (err) { - device_printf((&pdev->dev)->bsddev, "WARN: ""Warning: couldn't set 64-bit consistent PCI DMA mask\n"); + mlx5_core_warn(dev, "couldn't set 64-bit consistent PCI DMA mask\n"); err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Can't set consistent PCI DMA mask, aborting\n"); + mlx5_core_err(dev, "Can't set consistent PCI DMA mask, aborting\n"); return err; } } @@ -243,16 +244,17 @@ static void mlx5_pci_disable_device(struct mlx5_core_d static int request_bar(struct pci_dev *pdev) { + struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err = 0; if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Missing registers BAR, aborting\n"); + mlx5_core_err(dev, "Missing registers BAR, aborting\n"); return -ENODEV; } err = pci_request_regions(pdev, DRIVER_NAME); if (err) - device_printf((&pdev->dev)->bsddev, "ERR: ""Couldn't get PCI resources, aborting\n"); + mlx5_core_err(dev, "Couldn't get PCI resources, aborting\n"); return err; } @@ -319,7 +321,7 @@ enum { MLX5_DEV_CAP_FLAG_DRAIN_SIGERR, }; -static u16 to_fw_pkey_sz(u32 size) +static u16 to_fw_pkey_sz(struct mlx5_core_dev *dev, u32 size) { switch (size) { case 128: @@ -335,7 +337,7 @@ static u16 to_fw_pkey_sz(u32 size) case 4096: return 5; default: - printf("mlx5_core: WARN: ""invalid pkey table size %d\n", size); + mlx5_core_warn(dev, "invalid pkey table size %d\n", size); return 0; } } @@ -430,7 +432,7 @@ static int handle_hca_cap(struct mlx5_core_dev *dev) 128); /* we limit the size of the pkey table to 128 entries for now */ MLX5_SET(cmd_hca_cap, set_hca_cap, pkey_table_size, - to_fw_pkey_sz(128)); + to_fw_pkey_sz(dev, 128)); if (prof->mask & MLX5_PROF_MASK_QP_SIZE) MLX5_SET(cmd_hca_cap, set_hca_cap, log_max_qp, @@ -544,11 +546,11 @@ static int mlx5_core_set_issi(struct mlx5_core_dev *de mlx5_cmd_mbox_status(query_out, &status, &syndrome); if (status == MLX5_CMD_STAT_BAD_OP_ERR) { - pr_debug("Only ISSI 0 is supported\n"); + mlx5_core_dbg(dev, "Only ISSI 0 is supported\n"); return 0; } - printf("mlx5_core: ERR: ""failed to query ISSI\n"); + mlx5_core_err(dev, "failed to query ISSI\n"); return err; } @@ -563,7 +565,7 @@ static int mlx5_core_set_issi(struct mlx5_core_dev *de err = mlx5_cmd_exec(dev, set_in, sizeof(set_in), set_out, sizeof(set_out)); if (err) { - printf("mlx5_core: ERR: ""failed to set ISSI=1 err(%d)\n", err); + mlx5_core_err(dev, "failed to set ISSI=1 err(%d)\n", err); return err; } @@ -850,13 +852,13 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st err = mlx5_pci_enable_device(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Cannot enable PCI device, aborting\n"); + mlx5_core_err(dev, "Cannot enable PCI device, aborting\n"); goto err_dbg; } err = request_bar(pdev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""error requesting BARs, aborting\n"); + mlx5_core_err(dev, "error requesting BARs, aborting\n"); goto err_disable; } @@ -864,7 +866,7 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st err = set_dma_caps(pdev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed setting DMA capabilities mask, aborting\n"); + mlx5_core_err(dev, "Failed setting DMA capabilities mask, aborting\n"); goto err_clr_master; } @@ -872,7 +874,7 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st dev->iseg = ioremap(dev->iseg_base, sizeof(*dev->iseg)); if (!dev->iseg) { err = -ENOMEM; - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed mapping initialization segment, aborting\n"); + mlx5_core_err(dev, "Failed mapping initialization segment, aborting\n"); goto err_clr_master; } @@ -895,28 +897,27 @@ static void mlx5_pci_close(struct mlx5_core_dev *dev, static int mlx5_init_once(struct mlx5_core_dev *dev, struct mlx5_priv *priv) { - struct pci_dev *pdev = dev->pdev; int err; err = mlx5_vsc_find_cap(dev); if (err) - dev_err(&pdev->dev, "Unable to find vendor specific capabilities\n"); + mlx5_core_err(dev, "Unable to find vendor specific capabilities\n"); err = mlx5_query_hca_caps(dev); if (err) { - dev_err(&pdev->dev, "query hca failed\n"); + mlx5_core_err(dev, "query hca failed\n"); goto out; } err = mlx5_query_board_id(dev); if (err) { - dev_err(&pdev->dev, "query board id failed\n"); + mlx5_core_err(dev, "query board id failed\n"); goto out; } err = mlx5_eq_init(dev); if (err) { - dev_err(&pdev->dev, "failed to initialize eq\n"); + mlx5_core_err(dev, "failed to initialize eq\n"); goto out; } @@ -924,7 +925,7 @@ static int mlx5_init_once(struct mlx5_core_dev *dev, s err = mlx5_init_cq_table(dev); if (err) { - dev_err(&pdev->dev, "failed to initialize cq table\n"); + mlx5_core_err(dev, "failed to initialize cq table\n"); goto err_eq_cleanup; } @@ -958,17 +959,16 @@ static void mlx5_cleanup_once(struct mlx5_core_dev *de static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, bool boot) { - struct pci_dev *pdev = dev->pdev; int err; mutex_lock(&dev->intf_state_mutex); if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { - dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n", - __func__); + mlx5_core_warn(dev, "interface is up, NOP\n"); goto out; } - device_printf((&pdev->dev)->bsddev, "INFO: ""firmware version: %d.%d.%d\n", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); + mlx5_core_dbg(dev, "firmware version: %d.%d.%d\n", + fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); /* * On load removing any previous indication of internal error, @@ -978,103 +978,103 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_cmd_init(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed initializing command interface, aborting\n"); + mlx5_core_err(dev, "Failed initializing command interface, aborting\n"); goto out_err; } err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); + mlx5_core_err(dev, "Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); goto err_cmd_cleanup; } err = mlx5_core_enable_hca(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""enable hca failed\n"); + mlx5_core_err(dev, "enable hca failed\n"); goto err_cmd_cleanup; } err = mlx5_core_set_issi(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to set issi\n"); + mlx5_core_err(dev, "failed to set issi\n"); goto err_disable_hca; } err = mlx5_pagealloc_start(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""mlx5_pagealloc_start failed\n"); + mlx5_core_err(dev, "mlx5_pagealloc_start failed\n"); goto err_disable_hca; } err = mlx5_satisfy_startup_pages(dev, 1); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to allocate boot pages\n"); + mlx5_core_err(dev, "failed to allocate boot pages\n"); goto err_pagealloc_stop; } err = set_hca_ctrl(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""set_hca_ctrl failed\n"); + mlx5_core_err(dev, "set_hca_ctrl failed\n"); goto reclaim_boot_pages; } err = handle_hca_cap(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""handle_hca_cap failed\n"); + mlx5_core_err(dev, "handle_hca_cap failed\n"); goto reclaim_boot_pages; } err = handle_hca_cap_atomic(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""handle_hca_cap_atomic failed\n"); + mlx5_core_err(dev, "handle_hca_cap_atomic failed\n"); goto reclaim_boot_pages; } err = mlx5_satisfy_startup_pages(dev, 0); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""failed to allocate init pages\n"); + mlx5_core_err(dev, "failed to allocate init pages\n"); goto reclaim_boot_pages; } err = mlx5_cmd_init_hca(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""init hca failed\n"); + mlx5_core_err(dev, "init hca failed\n"); goto reclaim_boot_pages; } mlx5_start_health_poll(dev); if (boot && mlx5_init_once(dev, priv)) { - dev_err(&pdev->dev, "sw objs init failed\n"); + mlx5_core_err(dev, "sw objs init failed\n"); goto err_stop_poll; } err = mlx5_enable_msix(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""enable msix failed\n"); + mlx5_core_err(dev, "enable msix failed\n"); goto err_cleanup_once; } err = mlx5_alloc_uuars(dev, &priv->uuari); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed allocating uar, aborting\n"); + mlx5_core_err(dev, "Failed allocating uar, aborting\n"); goto err_disable_msix; } err = mlx5_start_eqs(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to start pages and async EQs\n"); + mlx5_core_err(dev, "Failed to start pages and async EQs\n"); goto err_free_uar; } err = alloc_comp_eqs(dev); if (err) { - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to alloc completion EQs\n"); + mlx5_core_err(dev, "Failed to alloc completion EQs\n"); goto err_stop_eqs; } if (map_bf_area(dev)) - device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to map blue flame area\n"); + mlx5_core_err(dev, "Failed to map blue flame area\n"); err = mlx5_init_fs(dev); if (err) { @@ -1090,13 +1090,13 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st err = mlx5_fpga_device_start(dev); if (err) { - dev_err(&pdev->dev, "fpga device start failed %d\n", err); + mlx5_core_err(dev, "fpga device start failed %d\n", err); goto err_mpfs; } err = mlx5_register_device(dev); if (err) { - dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); + mlx5_core_err(dev, "mlx5_register_device failed %d\n", err); goto err_fpga; } @@ -1135,7 +1135,7 @@ err_cleanup_once: err_stop_poll: mlx5_stop_health_poll(dev, boot); if (mlx5_cmd_teardown_hca(dev)) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""tear_down_hca failed, skip cleanup\n"); + mlx5_core_err(dev, "tear_down_hca failed, skip cleanup\n"); goto out_err; } @@ -1168,7 +1168,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mutex_lock(&dev->intf_state_mutex); if (!test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { - dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", __func__); + mlx5_core_warn(dev, "%s: interface is down, NOP\n", __func__); if (cleanup) mlx5_cleanup_once(dev); goto out; @@ -1190,7 +1190,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, mlx5_stop_health_poll(dev, cleanup); err = mlx5_cmd_teardown_hca(dev); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""tear_down_hca failed, skip cleanup\n"); + mlx5_core_err(dev, "tear_down_hca failed, skip cleanup\n"); goto out; } mlx5_pagealloc_stop(dev); @@ -1258,7 +1258,9 @@ static int init_one(struct pci_dev *pdev, priv->pci_dev_data = id->driver_data; if (mlx5_prof_sel < 0 || mlx5_prof_sel >= ARRAY_SIZE(profiles)) { - device_printf(bsddev, "WARN: selected profile out of range, selecting default (%d)\n", MLX5_DEFAULT_PROF); + device_printf(bsddev, + "WARN: selected profile out of range, selecting default (%d)\n", + MLX5_DEFAULT_PROF); mlx5_prof_sel = MLX5_DEFAULT_PROF; } dev->profile = &profiles[mlx5_prof_sel]; @@ -1324,13 +1326,13 @@ static int init_one(struct pci_dev *pdev, mtx_init(&dev->dump_lock, "mlx5dmp", NULL, MTX_DEF | MTX_NEW); err = mlx5_pci_init(dev, priv); if (err) { - device_printf(bsddev, "ERR: mlx5_pci_init failed %d\n", err); + mlx5_core_err(dev, "mlx5_pci_init failed %d\n", err); goto clean_dev; } err = mlx5_health_init(dev); if (err) { - device_printf(bsddev, "ERR: mlx5_health_init failed %d\n", err); + mlx5_core_err(dev, "mlx5_health_init failed %d\n", err); goto close_pci; } @@ -1338,7 +1340,7 @@ static int init_one(struct pci_dev *pdev, err = mlx5_load_one(dev, priv, true); if (err) { - device_printf(bsddev, "ERR: mlx5_load_one failed %d\n", err); + mlx5_core_err(dev, "mlx5_load_one failed %d\n", err); goto clean_health; } @@ -1368,7 +1370,7 @@ static void remove_one(struct pci_dev *pdev) struct mlx5_priv *priv = &dev->priv; if (mlx5_unload_one(dev, priv, true)) { - dev_err(&dev->pdev->dev, "mlx5_unload_one failed\n"); + mlx5_core_err(dev, "mlx5_unload_one failed\n"); mlx5_health_cleanup(dev); return; } @@ -1389,7 +1391,7 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p struct mlx5_core_dev *dev = pci_get_drvdata(pdev); struct mlx5_priv *priv = &dev->priv; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev, "%s was called\n", __func__); mlx5_enter_error_state(dev, false); mlx5_unload_one(dev, priv, false); @@ -1407,12 +1409,12 @@ static pci_ers_result_t mlx5_pci_slot_reset(struct pci struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err = 0; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev,"%s was called\n", __func__); err = mlx5_pci_enable_device(dev); if (err) { - dev_err(&pdev->dev, "%s: mlx5_pci_enable_device failed with error code: %d\n" - , __func__, err); + mlx5_core_err(dev, "mlx5_pci_enable_device failed with error code: %d\n" + ,err); return PCI_ERS_RESULT_DISCONNECT; } pci_set_master(pdev); @@ -1440,29 +1442,31 @@ static void wait_vital(struct pci_dev *pdev) msleep(1000); for (i = 0; i < niter; i++) { if (pci_read_config_word(pdev, 2, &did)) { - dev_warn(&pdev->dev, "failed reading config word\n"); + mlx5_core_warn(dev, "failed reading config word\n"); break; } if (did == pdev->device) { - dev_info(&pdev->dev, "device ID correctly read after %d iterations\n", i); + mlx5_core_info(dev, + "device ID correctly read after %d iterations\n", i); break; } msleep(50); } if (i == niter) - dev_warn(&pdev->dev, "%s-%d: could not read device ID\n", __func__, __LINE__); + mlx5_core_warn(dev, "could not read device ID\n"); for (i = 0; i < niter; i++) { count = ioread32be(health->health_counter); if (count && count != 0xffffffff) { - dev_info(&pdev->dev, "Counter value 0x%x after %d iterations\n", count, i); + mlx5_core_info(dev, + "Counter value 0x%x after %d iterations\n", count, i); break; } msleep(50); } if (i == niter) - dev_warn(&pdev->dev, "%s-%d: could not read device ID\n", __func__, __LINE__); + mlx5_core_warn(dev, "could not read device ID\n"); } static void mlx5_pci_resume(struct pci_dev *pdev) @@ -1471,16 +1475,16 @@ static void mlx5_pci_resume(struct pci_dev *pdev) struct mlx5_priv *priv = &dev->priv; int err; - dev_info(&pdev->dev, "%s was called\n", __func__); + mlx5_core_info(dev,"%s was called\n", __func__); wait_vital(pdev); err = mlx5_load_one(dev, priv, false); if (err) - dev_err(&pdev->dev, "%s: mlx5_load_one failed with error code: %d\n" - , __func__, err); + mlx5_core_err(dev, + "mlx5_load_one failed with error code: %d\n" ,err); else - dev_info(&pdev->dev, "%s: device recovered\n", __func__); + mlx5_core_info(dev,"device recovered\n"); } static const struct pci_error_handlers mlx5_err_handler = { Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c Mon Oct 7 09:24:12 2019 (r353224) @@ -33,6 +33,8 @@ #include #include +#include "mlx5_core.h" + #define MPFS_LOCK(dev) spin_lock(&(dev)->mpfs.spinlock) #define MPFS_UNLOCK(dev) spin_unlock(&(dev)->mpfs.spinlock) @@ -119,7 +121,7 @@ mlx5_mpfs_destroy(struct mlx5_core_dev *dev) num = bitmap_weight(dev->mpfs.bitmap, MLX5_MPFS_TABLE_MAX); if (num != 0) - dev_err(&dev->pdev->dev, "Leaking %u MPFS MAC table entries\n", num); + mlx5_core_err(dev, "Leaking %u MPFS MAC table entries\n", num); spin_lock_destroy(&dev->mpfs.spinlock); } Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:19:46 2019 (r353223) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:24:12 2019 (r353224) @@ -618,7 +618,7 @@ out: } EXPORT_SYMBOL_GPL(mlx5_core_access_ptys); -static int mtu_to_ib_mtu(int mtu) +static int mtu_to_ib_mtu(struct mlx5_core_dev *dev, int mtu) { switch (mtu) { case 256: return 1; @@ -627,7 +627,7 @@ static int mtu_to_ib_mtu(int mtu) case 2048: return 4; case 4096: return 5; default: - printf("mlx5_core: WARN: ""invalid mtu\n"); + mlx5_core_warn(dev, "invalid mtu\n"); return -1; } } @@ -661,11 +661,11 @@ int mlx5_core_access_pmtu(struct mlx5_core_dev *dev, if (!write) { pmtu->local_port = MLX5_GET(pmtu_reg, out, local_port); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Oct 7 09:25:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20739FF7BB; Mon, 7 Oct 2019 09:25:16 +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 46mw7J0lLcz4fB0; Mon, 7 Oct 2019 09:25:16 +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 F0995C8FF; Mon, 7 Oct 2019 09:25:15 +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 x979PFg9086075; Mon, 7 Oct 2019 09:25:15 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979PE4J086068; Mon, 7 Oct 2019 09:25:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070925.x979PE4J086068@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 09:25:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353225 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353225 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:25:16 -0000 Author: hselasky Date: Mon Oct 7 09:25:14 2019 New Revision: 353225 URL: https://svnweb.freebsd.org/changeset/base/353225 Log: MFC r352976: Unify prints in mlx5en(4). All prints in mlx5en(4) should use on of the macros: mlx5_en_err/dbg/warn Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:25:14 2019 (r353225) @@ -142,6 +142,21 @@ struct mlx5e_cq; typedef void (mlx5e_cq_comp_t)(struct mlx5_core_cq *); +#define mlx5_en_err(_dev, format, ...) \ + if_printf(_dev, "ERR: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_en_warn(_dev, format, ...) \ + if_printf(_dev, "WARN: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_en_info(_dev, format, ...) \ + if_printf(_dev, "INFO: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + #define MLX5E_STATS_COUNT(a, ...) a #define MLX5E_STATS_VAR(a, b, c, ...) b c; #define MLX5E_STATS_DESC(a, b, c, d, e, ...) d, e, Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:25:14 2019 (r353225) @@ -684,7 +684,7 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARGS) } else { priv->params.hw_lro_en = false; - if_printf(priv->ifp, "To enable HW LRO " + mlx5_en_warn(priv->ifp, "To enable HW LRO " "please also enable LRO via ifconfig(8).\n"); } } else { @@ -824,8 +824,8 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct ret = mlx5_query_module_num(dev, &eeprom->module_num); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed query module error=%d\n", - __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, "Failed query module error=%d\n", + ret); return (ret); } @@ -834,8 +834,8 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct eeprom->device_addr, MLX5E_EEPROM_INFO_BYTES, eeprom->module_num, &data, &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed query eeprom module error=0x%x\n", - __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed query eeprom module error=0x%x\n", ret); return (ret); } @@ -862,8 +862,9 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct eeprom->len = MLX5E_ETH_MODULE_SFF_8472_LEN; break; default: - if_printf(priv->ifp, "%s:%d: Not recognized cable type = 0x%x(%s)\n", - __func__, __LINE__, data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, + mlx5_en_err(priv->ifp, + "Not recognized cable type = 0x%x(%s)\n", + data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); return (EINVAL); } @@ -887,8 +888,8 @@ mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e ee->len - ee->device_addr, ee->module_num, ee->data + (ee->device_addr / 4), &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom, " - "error = 0x%02x\n", __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed reading eeprom, error = 0x%02x\n",ret); return (ret); } ee->device_addr += size_read; @@ -906,8 +907,9 @@ mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e ((ee->device_addr - MLX5E_EEPROM_HIGH_PAGE_OFFSET) / 4), &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom, " - "error = 0x%02x\n", __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed reading eeprom, error = 0x%02x\n", + ret); return (ret); } ee->device_addr += size_read; @@ -983,8 +985,8 @@ mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) /* Read three first bytes to get important info */ error = mlx5e_get_eeprom_info(priv, &eeprom); if (error) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom's " - "initial information\n", __func__, __LINE__); + mlx5_en_err(priv->ifp, + "Failed reading eeprom's initial information\n"); error = 0; goto done; } @@ -998,8 +1000,7 @@ mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) /* Read the whole eeprom information */ error = mlx5e_get_eeprom(priv, &eeprom); if (error) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom\n", - __func__, __LINE__); + mlx5_en_err(priv->ifp, "Failed reading eeprom\n"); error = 0; /* * Continue printing partial information in case of Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 09:25:14 2019 (r353225) @@ -436,7 +436,7 @@ mlx5e_add_eth_addr_rule(struct mlx5e_priv *priv, match_value = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); match_criteria = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); if (!match_value || !match_criteria) { - if_printf(priv->ifp, "%s: alloc failed\n", __func__); + mlx5_en_err(priv->ifp, "alloc failed\n"); err = -ENOMEM; goto add_eth_addr_rule_out; } @@ -467,7 +467,7 @@ static int mlx5e_vport_context_update_vlans(struct mlx max_list_size = 1 << MLX5_CAP_GEN(priv->mdev, log_max_vlan_list); if (list_size > max_list_size) { - if_printf(ifp, + mlx5_en_err(ifp, "ifnet vlans list size (%d) > (%d) max vport list size, some vlans will be dropped\n", list_size, max_list_size); list_size = max_list_size; @@ -486,7 +486,7 @@ static int mlx5e_vport_context_update_vlans(struct mlx err = mlx5_modify_nic_vport_vlans(priv->mdev, vlans, list_size); if (err) - if_printf(ifp, "Failed to modify vport vlans list err(%d)\n", + mlx5_en_err(ifp, "Failed to modify vport vlans list err(%d)\n", err); kfree(vlans); @@ -549,7 +549,7 @@ mlx5e_add_vlan_rule_sub(struct mlx5e_priv *priv, if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); *rule_p = NULL; - if_printf(priv->ifp, "%s: add rule failed\n", __func__); + mlx5_en_err(priv->ifp, "add rule failed\n"); } return (err); @@ -566,7 +566,7 @@ mlx5e_add_vlan_rule(struct mlx5e_priv *priv, match_value = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); match_criteria = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); if (!match_value || !match_criteria) { - if_printf(priv->ifp, "%s: alloc failed\n", __func__); + mlx5_en_err(priv->ifp, "alloc failed\n"); err = -ENOMEM; goto add_vlan_rule_out; } @@ -948,7 +948,7 @@ static void mlx5e_vport_context_update_addr_list(struc size++; if (size > max_size) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "ifp %s list size (%d) > (%d) max vport list size, some addresses will be dropped\n", is_uc ? "UC" : "MC", size, max_size); size = max_size; @@ -966,7 +966,7 @@ static void mlx5e_vport_context_update_addr_list(struc err = mlx5_modify_nic_vport_mac_list(priv->mdev, list_type, addr_array, size); out: if (err) - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "Failed to modify vport %s list err(%d)\n", is_uc ? "UC" : "MC", err); kfree(addr_array); Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:25:14 2019 (r353225) @@ -428,8 +428,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) if (error) { priv->media_active_last = IFM_ETHER; priv->ifp->if_baudrate = 1; - if_printf(priv->ifp, "%s: query port ptys failed: " - "0x%x\n", __func__, error); + mlx5_en_err(priv->ifp, "query port ptys failed: 0x%x\n", + error); return; } @@ -447,8 +447,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) } if (media_entry.subtype == 0) { - if_printf(priv->ifp, "%s: Could not find operational " - "media subtype\n", __func__); + mlx5_en_err(priv->ifp, + "Could not find operational media subtype\n"); return; } @@ -456,8 +456,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) case IFM_10G_ER: error = mlx5_query_pddr_range_info(mdev, 1, &is_er_type); if (error != 0) { - if_printf(priv->ifp, "%s: query port pddr failed: %d\n", - __func__, error); + mlx5_en_err(priv->ifp, + "query port pddr failed: %d\n", error); } if (error != 0 || is_er_type == 0) media_entry.subtype = IFM_10G_LR; @@ -465,8 +465,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) case IFM_40G_LR4: error = mlx5_query_pddr_range_info(mdev, 1, &is_er_type); if (error != 0) { - if_printf(priv->ifp, "%s: query port pddr failed: %d\n", - __func__, error); + mlx5_en_err(priv->ifp, + "query port pddr failed: %d\n", error); } if (error == 0 && is_er_type != 0) media_entry.subtype = IFM_40G_ER4; @@ -545,9 +545,8 @@ mlx5e_set_port_pfc(struct mlx5e_priv *priv) error = -ENXIO; } else if (priv->params.rx_pauseframe_control || priv->params.tx_pauseframe_control) { - if_printf(priv->ifp, - "Global pauseframes must be disabled before " - "enabling PFC.\n"); + mlx5_en_err(priv->ifp, + "Global pauseframes must be disabled before enabling PFC.\n"); error = -EINVAL; } else { error = mlx5e_set_port_pause_and_pfc(priv); @@ -580,7 +579,7 @@ mlx5e_media_change(struct ifnet *dev) error = mlx5_query_port_ptys(mdev, out, sizeof(out), MLX5_PTYS_EN, 1); if (error != 0) { - if_printf(dev, "Query port media capability failed\n"); + mlx5_en_err(dev, "Query port media capability failed\n"); goto done; } @@ -595,14 +594,14 @@ mlx5e_media_change(struct ifnet *dev) if (IFM_SUBTYPE(priv->media.ifm_media) == IFM_AUTO) { link_mode = eth_proto_cap; if (link_mode == 0) { - if_printf(dev, "Port media capability is zero\n"); + mlx5_en_err(dev, "Port media capability is zero\n"); error = EINVAL; goto done; } } else { link_mode = link_mode & eth_proto_cap; if (link_mode == 0) { - if_printf(dev, "Not supported link mode requested\n"); + mlx5_en_err(dev, "Not supported link mode requested\n"); error = EINVAL; goto done; } @@ -611,7 +610,7 @@ mlx5e_media_change(struct ifnet *dev) /* check if PFC is enabled */ if (priv->params.rx_priority_flow_control || priv->params.tx_priority_flow_control) { - if_printf(dev, "PFC must be disabled before enabling global pauseframes.\n"); + mlx5_en_err(dev, "PFC must be disabled before enabling global pauseframes.\n"); error = EINVAL; goto done; } @@ -1020,7 +1019,8 @@ free_out: priv->params_ethtool.diag_pci_enable ? &priv->params_pci : NULL, priv->params_ethtool.diag_general_enable ? &priv->params_general : NULL); if (error != 0) - if_printf(priv->ifp, "Failed reading diagnostics: %d\n", error); + mlx5_en_err(priv->ifp, + "Failed reading diagnostics: %d\n", error); } } @@ -1172,8 +1172,8 @@ mlx5e_calibration_callout(void *arg) if (((next->clbr_hw_curr - curr->clbr_hw_curr) >> MLX5E_TSTMP_PREC) == 0) { if (priv->clbr_done != 0) { - if_printf(priv->ifp, "HW failed tstmp frozen %#jx %#jx," - "disabling\n", + mlx5_en_err(priv->ifp, + "HW failed tstmp frozen %#jx %#jx, disabling\n", next->clbr_hw_curr, curr->clbr_hw_prev); priv->clbr_done = 0; } @@ -1871,7 +1871,7 @@ mlx5e_drain_sq(struct mlx5e_sq *sq) /* error out remaining requests */ error = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RDY, MLX5_SQC_STATE_ERR); if (error != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from RDY to ERR failed: %d\n", error); } @@ -2936,16 +2936,17 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) err = mlx5_set_port_mtu(mdev, hw_mtu); if (err) { - if_printf(ifp, "%s: mlx5_set_port_mtu failed setting %d, err=%d\n", - __func__, sw_mtu, err); + mlx5_en_err(ifp, "mlx5_set_port_mtu failed setting %d, err=%d\n", + sw_mtu, err); return (err); } /* Update vport context MTU */ err = mlx5_set_vport_mtu(mdev, hw_mtu); if (err) { - if_printf(ifp, "%s: Failed updating vport context with MTU size, err=%d\n", - __func__, err); + mlx5_en_err(ifp, + "Failed updating vport context with MTU size, err=%d\n", + err); } ifp->if_mtu = sw_mtu; @@ -2956,17 +2957,19 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) err = mlx5_query_port_oper_mtu(mdev, &hw_mtu); } if (err) { - if_printf(ifp, "Query port MTU, after setting new " - "MTU value, failed\n"); + mlx5_en_err(ifp, + "Query port MTU, after setting new MTU value, failed\n"); return (err); } else if (MLX5E_HW2SW_MTU(hw_mtu) < sw_mtu) { err = -E2BIG, - if_printf(ifp, "Port MTU %d is smaller than " - "ifp mtu %d\n", hw_mtu, sw_mtu); + mlx5_en_err(ifp, + "Port MTU %d is smaller than ifp mtu %d\n", + hw_mtu, sw_mtu); } else if (MLX5E_HW2SW_MTU(hw_mtu) > sw_mtu) { err = -EINVAL; - if_printf(ifp, "Port MTU %d is bigger than " - "ifp mtu %d\n", hw_mtu, sw_mtu); + mlx5_en_err(ifp, + "Port MTU %d is bigger than ifp mtu %d\n", + hw_mtu, sw_mtu); } priv->params_ethtool.hw_mtu = hw_mtu; @@ -2986,23 +2989,21 @@ mlx5e_open_locked(struct ifnet *ifp) #ifdef RSS if (rss_getnumbuckets() > priv->params.num_channels) { - if_printf(ifp, "NOTE: There are more RSS buckets(%u) than " - "channels(%u) available\n", rss_getnumbuckets(), - priv->params.num_channels); + mlx5_en_info(ifp, + "NOTE: There are more RSS buckets(%u) than channels(%u) available\n", + rss_getnumbuckets(), priv->params.num_channels); } #endif err = mlx5e_open_tises(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_tises failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_tises failed, %d\n", err); return (err); } err = mlx5_vport_alloc_q_counter(priv->mdev, MLX5_INTERFACE_PROTOCOL_ETH, &set_id); if (err) { - if_printf(priv->ifp, - "%s: mlx5_vport_alloc_q_counter failed: %d\n", - __func__, err); + mlx5_en_err(priv->ifp, + "mlx5_vport_alloc_q_counter failed: %d\n", err); goto err_close_tises; } /* store counter set ID */ @@ -3010,32 +3011,30 @@ mlx5e_open_locked(struct ifnet *ifp) err = mlx5e_open_channels(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_channels failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_open_channels failed, %d\n", err); goto err_dalloc_q_counter; } err = mlx5e_open_rqt(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_rqt failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_rqt failed, %d\n", err); goto err_close_channels; } err = mlx5e_open_tirs(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_tir failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_tir failed, %d\n", err); goto err_close_rqls; } err = mlx5e_open_flow_table(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_flow_table failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_open_flow_table failed, %d\n", err); goto err_close_tirs; } err = mlx5e_add_all_vlan_rules(priv); if (err) { - if_printf(ifp, "%s: mlx5e_add_all_vlan_rules failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_add_all_vlan_rules failed, %d\n", err); goto err_close_flow_table; } set_bit(MLX5E_STATE_OPENED, &priv->state); @@ -3074,9 +3073,8 @@ mlx5e_open(void *arg) PRIV_LOCK(priv); if (mlx5_set_port_status(priv->mdev, MLX5_PORT_UP)) - if_printf(priv->ifp, - "%s: Setting port status to up failed\n", - __func__); + mlx5_en_err(priv->ifp, + "Setting port status to up failed\n"); mlx5e_open_locked(priv->ifp); priv->ifp->if_drv_flags |= IFF_DRV_RUNNING; @@ -3213,7 +3211,8 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t mlx5e_open_locked(ifp); } else { error = EINVAL; - if_printf(ifp, "Invalid MTU value. Min val: %d, Max val: %d\n", + mlx5_en_err(ifp, + "Invalid MTU value. Min val: %d, Max val: %d\n", MLX5E_MTU_MIN, MIN(MLX5E_MTU_MAX, max_mtu)); } PRIV_UNLOCK(priv); @@ -3267,7 +3266,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t !(IFCAP_TXCSUM & ifp->if_capenable)) { ifp->if_capenable &= ~IFCAP_TSO4; ifp->if_hwassist &= ~CSUM_IP_TSO; - if_printf(ifp, + mlx5_en_err(ifp, "tso4 disabled due to -txcsum.\n"); } } @@ -3279,7 +3278,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t !(IFCAP_TXCSUM_IPV6 & ifp->if_capenable)) { ifp->if_capenable &= ~IFCAP_TSO6; ifp->if_hwassist &= ~CSUM_IP6_TSO; - if_printf(ifp, + mlx5_en_err(ifp, "tso6 disabled due to -txcsum6.\n"); } } @@ -3290,7 +3289,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t if (mask & IFCAP_TSO4) { if (!(IFCAP_TSO4 & ifp->if_capenable) && !(IFCAP_TXCSUM & ifp->if_capenable)) { - if_printf(ifp, "enable txcsum first.\n"); + mlx5_en_err(ifp, "enable txcsum first.\n"); error = EAGAIN; goto out; } @@ -3300,7 +3299,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t if (mask & IFCAP_TSO6) { if (!(IFCAP_TSO6 & ifp->if_capenable) && !(IFCAP_TXCSUM_IPV6 & ifp->if_capenable)) { - if_printf(ifp, "enable txcsum6 first.\n"); + mlx5_en_err(ifp, "enable txcsum6 first.\n"); error = EAGAIN; goto out; } @@ -3380,8 +3379,8 @@ out: /* Get module_num which is required for the query_eeprom */ error = mlx5_query_module_num(priv->mdev, &module_num); if (error) { - if_printf(ifp, "Query module num failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query module num failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3400,8 +3399,9 @@ out: else if (i2c.dev_addr == 0xA2) read_addr = MLX5E_I2C_ADDR_HIGH; else { - if_printf(ifp, "Query eeprom failed, " - "Invalid Address: %X\n", i2c.dev_addr); + mlx5_en_err(ifp, + "Query eeprom failed, Invalid Address: %X\n", + i2c.dev_addr); error = EINVAL; goto err_i2c; } @@ -3410,8 +3410,8 @@ out: (uint32_t)i2c.offset, (uint32_t)i2c.len, module_num, (uint32_t *)i2c.data, &size_read); if (error) { - if_printf(ifp, "Query eeprom failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query eeprom failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3424,8 +3424,8 @@ out: (uint32_t *)(i2c.data + size_read), &size_read); } if (error) { - if_printf(ifp, "Query eeprom failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query eeprom failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3561,7 +3561,7 @@ mlx5e_create_mkey(struct mlx5e_priv *priv, u32 pdn, in = mlx5_vzalloc(inlen); if (in == NULL) { - if_printf(ifp, "%s: failed to allocate inbox\n", __func__); + mlx5_en_err(ifp, "failed to allocate inbox\n"); return (-ENOMEM); } @@ -3576,8 +3576,8 @@ mlx5e_create_mkey(struct mlx5e_priv *priv, u32 pdn, err = mlx5_core_create_mkey(mdev, mkey, in, inlen); if (err) - if_printf(ifp, "%s: mlx5_core_create_mkey failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_core_create_mkey failed, %d\n", + err); kvfree(in); return (err); @@ -3658,7 +3658,7 @@ mlx5e_resume_sq(struct mlx5e_sq *sq) err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_ERR, MLX5_SQC_STATE_RST); if (err != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from ERR to RST failed: %d\n", err); } @@ -3671,7 +3671,7 @@ mlx5e_resume_sq(struct mlx5e_sq *sq) err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RST, MLX5_SQC_STATE_RDY); if (err != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from RST to RDY failed: %d\n", err); } @@ -3703,7 +3703,7 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from RDY to RST failed: %d\n", err); } @@ -3718,7 +3718,7 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) */ err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_ERR, MLX5_RQC_STATE_RST); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from ERR to RST failed: %d\n", err); } } @@ -3733,7 +3733,7 @@ mlx5e_enable_rx_dma(struct mlx5e_channel *ch) mlx5_wq_ll_update_db_record(&rq->wq); err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RST, MLX5_RQC_STATE_RDY); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from RST to RDY failed: %d\n", err); } @@ -3941,7 +3941,7 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) /* update firmware */ error = mlx5e_set_port_pause_and_pfc(priv); if (error == -EINVAL) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "Global pauseframes must be disabled before enabling PFC.\n"); priv->params.rx_priority_flow_control = 0; priv->params.tx_priority_flow_control = 0; @@ -4201,26 +4201,23 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) err = mlx5_alloc_map_uar(mdev, &priv->cq_uar); if (err) { - if_printf(ifp, "%s: mlx5_alloc_map_uar failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_alloc_map_uar failed, %d\n", err); goto err_free_wq; } err = mlx5_core_alloc_pd(mdev, &priv->pdn); if (err) { - if_printf(ifp, "%s: mlx5_core_alloc_pd failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_core_alloc_pd failed, %d\n", err); goto err_unmap_free_uar; } err = mlx5_alloc_transport_domain(mdev, &priv->tdn); if (err) { - if_printf(ifp, "%s: mlx5_alloc_transport_domain failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5_alloc_transport_domain failed, %d\n", err); goto err_dealloc_pd; } err = mlx5e_create_mkey(priv, priv->pdn, &priv->mr); if (err) { - if_printf(ifp, "%s: mlx5e_create_mkey failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_create_mkey failed, %d\n", err); goto err_dealloc_transport_domain; } mlx5_query_nic_vport_mac_address(priv->mdev, 0, dev_addr); @@ -4229,13 +4226,12 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) if (MLX5_CAP_GEN(priv->mdev, vport_group_manager) == 0 && is_zero_ether_addr(dev_addr)) { random_ether_addr(dev_addr); - if_printf(ifp, "Assigned random MAC address\n"); + mlx5_en_err(ifp, "Assigned random MAC address\n"); } #ifdef RATELIMIT err = mlx5e_rl_init(priv); if (err) { - if_printf(ifp, "%s: mlx5e_rl_init failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_rl_init failed, %d\n", err); goto err_create_mkey; } #endif @@ -4263,8 +4259,7 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) connector_type); } else { eth_proto_cap = 0; - if_printf(ifp, "%s: Query port media capability failed," - " %d\n", __func__, err); + mlx5_en_err(ifp, "Query port media capability failed, %d\n", err); } ifmedia_init(&priv->media, IFM_IMASK | IFM_ETH_FMASK, @@ -4381,8 +4376,8 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp * detaching: */ while (READ_ONCE(priv->rl.stats.tx_active_connections) != 0) { - if_printf(priv->ifp, "Waiting for all ratelimit connections " - "to terminate\n"); + mlx5_en_err(priv->ifp, + "Waiting for all ratelimit connections to terminate\n"); pause("W", hz); } #endif @@ -4403,8 +4398,8 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp /* wait for all unlimited send tags to go away */ while (priv->channel_refs != 0) { - if_printf(priv->ifp, "Waiting for all unlimited connections " - "to terminate\n"); + mlx5_en_err(priv->ifp, + "Waiting for all unlimited connections to terminate\n"); pause("W", hz); } Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c Mon Oct 7 09:25:14 2019 (r353225) @@ -518,7 +518,7 @@ mlx5e_rl_worker(void *arg) MLX5E_RL_WORKER_LOCK(rlw); if (error != 0) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "mlx5e_rl_open_channel failed: %d\n", error); break; } @@ -551,7 +551,7 @@ mlx5e_rl_worker(void *arg) MLX5E_RL_RUNLOCK(&priv->rl); if (error != 0) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "mlx5e_rl_open_channel failed: %d\n", error); } else { atomic_add_64(&rlw->priv->rl.stats.tx_open_queues, 1ULL); @@ -565,7 +565,7 @@ mlx5e_rl_worker(void *arg) error = mlx5e_rlw_channel_set_rate_locked(rlw, channel, channel->new_rate * 8ULL); if (error != 0) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "mlx5e_rlw_channel_set_rate_locked failed: %d\n", error); } @@ -574,7 +574,7 @@ mlx5e_rl_worker(void *arg) case MLX5E_RL_ST_DESTROY: error = mlx5e_rlw_channel_set_rate_locked(rlw, channel, 0); if (error != 0) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "mlx5e_rlw_channel_set_rate_locked failed: %d\n", error); } @@ -856,7 +856,7 @@ mlx5e_rl_init(struct mlx5e_priv *priv) PRIV_UNLOCK(priv); if (error != 0) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "mlx5e_rl_open_workers failed: %d\n", error); } @@ -894,7 +894,7 @@ mlx5e_rl_open_workers(struct mlx5e_priv *priv) error = kproc_kthread_add(mlx5e_rl_worker, rlw, &rl_proc, &rl_thread, RFHIGHPID, 0, "mlx5-ratelimit", "mlx5-rl-worker-thread-%d", (int)j); if (error != 0) { - if_printf(rl->priv->ifp, + mlx5_en_err(rl->priv->ifp, "kproc_kthread_add failed: %d\n", error); rlw->worker_done = 1; } @@ -1090,7 +1090,8 @@ mlx5e_find_available_tx_ring_index(struct mlx5e_rl_wor *pchannel = channel; #ifdef RATELIMIT_DEBUG - if_printf(rlw->priv->ifp, "Channel pointer for rate limit connection is %p\n", channel); + mlx5_en_info(rlw->priv->ifp, + "Channel pointer for rate limit connection is %p\n", channel); #endif return (retval); } Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Oct 7 09:24:12 2019 (r353224) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Oct 7 09:25:14 2019 (r353225) @@ -48,6 +48,6 @@ mlx5e_cq_error_event(struct mlx5_core_cq *mcq, int eve { struct mlx5e_cq *cq = container_of(mcq, struct mlx5e_cq, mcq); - if_printf(cq->priv->ifp, "%s: cqn=0x%.6x event=0x%.2x\n", - __func__, mcq->cqn, event); + mlx5_en_err(cq->priv->ifp, "cqn=0x%.6x event=0x%.2x\n", + mcq->cqn, event); } From owner-svn-src-all@freebsd.org Mon Oct 7 09:28:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B753FF87E; Mon, 7 Oct 2019 09:28:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mwCW1NDlz4fLR; Mon, 7 Oct 2019 09:28:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12939C901; Mon, 7 Oct 2019 09:28:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x979StAG086385; Mon, 7 Oct 2019 09:28:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Ssaj086380; Mon, 7 Oct 2019 09:28:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070928.x979Ssaj086380@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 09:28:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353226 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353226 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:28:55 -0000 Author: hselasky Date: Mon Oct 7 09:28:53 2019 New Revision: 353226 URL: https://svnweb.freebsd.org/changeset/base/353226 Log: MFC r352976: Unify prints in mlx5en(4). All prints in mlx5en(4) should use on of the macros: mlx5_en_err/dbg/warn Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:25:14 2019 (r353225) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:28:53 2019 (r353226) @@ -141,6 +141,21 @@ struct mlx5e_cq; typedef void (mlx5e_cq_comp_t)(struct mlx5_core_cq *); +#define mlx5_en_err(_dev, format, ...) \ + if_printf(_dev, "ERR: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_en_warn(_dev, format, ...) \ + if_printf(_dev, "WARN: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + +#define mlx5_en_info(_dev, format, ...) \ + if_printf(_dev, "INFO: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + #define MLX5E_STATS_COUNT(a, ...) a #define MLX5E_STATS_VAR(a, b, c, ...) b c; #define MLX5E_STATS_DESC(a, b, c, d, e, ...) d, e, Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:25:14 2019 (r353225) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:28:53 2019 (r353226) @@ -684,7 +684,7 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARGS) } else { priv->params.hw_lro_en = false; - if_printf(priv->ifp, "To enable HW LRO " + mlx5_en_warn(priv->ifp, "To enable HW LRO " "please also enable LRO via ifconfig(8).\n"); } } else { @@ -824,8 +824,8 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct ret = mlx5_query_module_num(dev, &eeprom->module_num); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed query module error=%d\n", - __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, "Failed query module error=%d\n", + ret); return (ret); } @@ -834,8 +834,8 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct eeprom->device_addr, MLX5E_EEPROM_INFO_BYTES, eeprom->module_num, &data, &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed query eeprom module error=0x%x\n", - __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed query eeprom module error=0x%x\n", ret); return (ret); } @@ -862,8 +862,9 @@ mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct eeprom->len = MLX5E_ETH_MODULE_SFF_8472_LEN; break; default: - if_printf(priv->ifp, "%s:%d: Not recognized cable type = 0x%x(%s)\n", - __func__, __LINE__, data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, + mlx5_en_err(priv->ifp, + "Not recognized cable type = 0x%x(%s)\n", + data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); return (EINVAL); } @@ -887,8 +888,8 @@ mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e ee->len - ee->device_addr, ee->module_num, ee->data + (ee->device_addr / 4), &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom, " - "error = 0x%02x\n", __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed reading eeprom, error = 0x%02x\n",ret); return (ret); } ee->device_addr += size_read; @@ -906,8 +907,9 @@ mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e ((ee->device_addr - MLX5E_EEPROM_HIGH_PAGE_OFFSET) / 4), &size_read); if (ret) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom, " - "error = 0x%02x\n", __func__, __LINE__, ret); + mlx5_en_err(priv->ifp, + "Failed reading eeprom, error = 0x%02x\n", + ret); return (ret); } ee->device_addr += size_read; @@ -983,8 +985,8 @@ mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) /* Read three first bytes to get important info */ error = mlx5e_get_eeprom_info(priv, &eeprom); if (error) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom's " - "initial information\n", __func__, __LINE__); + mlx5_en_err(priv->ifp, + "Failed reading eeprom's initial information\n"); error = 0; goto done; } @@ -998,8 +1000,7 @@ mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) /* Read the whole eeprom information */ error = mlx5e_get_eeprom(priv, &eeprom); if (error) { - if_printf(priv->ifp, "%s:%d: Failed reading eeprom\n", - __func__, __LINE__); + mlx5_en_err(priv->ifp, "Failed reading eeprom\n"); error = 0; /* * Continue printing partial information in case of Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 09:25:14 2019 (r353225) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Mon Oct 7 09:28:53 2019 (r353226) @@ -436,7 +436,7 @@ mlx5e_add_eth_addr_rule(struct mlx5e_priv *priv, match_value = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); match_criteria = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); if (!match_value || !match_criteria) { - if_printf(priv->ifp, "%s: alloc failed\n", __func__); + mlx5_en_err(priv->ifp, "alloc failed\n"); err = -ENOMEM; goto add_eth_addr_rule_out; } @@ -467,7 +467,7 @@ static int mlx5e_vport_context_update_vlans(struct mlx max_list_size = 1 << MLX5_CAP_GEN(priv->mdev, log_max_vlan_list); if (list_size > max_list_size) { - if_printf(ifp, + mlx5_en_err(ifp, "ifnet vlans list size (%d) > (%d) max vport list size, some vlans will be dropped\n", list_size, max_list_size); list_size = max_list_size; @@ -486,7 +486,7 @@ static int mlx5e_vport_context_update_vlans(struct mlx err = mlx5_modify_nic_vport_vlans(priv->mdev, vlans, list_size); if (err) - if_printf(ifp, "Failed to modify vport vlans list err(%d)\n", + mlx5_en_err(ifp, "Failed to modify vport vlans list err(%d)\n", err); kfree(vlans); @@ -549,7 +549,7 @@ mlx5e_add_vlan_rule_sub(struct mlx5e_priv *priv, if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); *rule_p = NULL; - if_printf(priv->ifp, "%s: add rule failed\n", __func__); + mlx5_en_err(priv->ifp, "add rule failed\n"); } return (err); @@ -566,7 +566,7 @@ mlx5e_add_vlan_rule(struct mlx5e_priv *priv, match_value = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); match_criteria = mlx5_vzalloc(MLX5_ST_SZ_BYTES(fte_match_param)); if (!match_value || !match_criteria) { - if_printf(priv->ifp, "%s: alloc failed\n", __func__); + mlx5_en_err(priv->ifp, "alloc failed\n"); err = -ENOMEM; goto add_vlan_rule_out; } @@ -948,7 +948,7 @@ static void mlx5e_vport_context_update_addr_list(struc size++; if (size > max_size) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "ifp %s list size (%d) > (%d) max vport list size, some addresses will be dropped\n", is_uc ? "UC" : "MC", size, max_size); size = max_size; @@ -966,7 +966,7 @@ static void mlx5e_vport_context_update_addr_list(struc err = mlx5_modify_nic_vport_mac_list(priv->mdev, list_type, addr_array, size); out: if (err) - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "Failed to modify vport %s list err(%d)\n", is_uc ? "UC" : "MC", err); kfree(addr_array); Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:25:14 2019 (r353225) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:28:53 2019 (r353226) @@ -428,8 +428,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) if (error) { priv->media_active_last = IFM_ETHER; priv->ifp->if_baudrate = 1; - if_printf(priv->ifp, "%s: query port ptys failed: " - "0x%x\n", __func__, error); + mlx5_en_err(priv->ifp, "query port ptys failed: 0x%x\n", + error); return; } @@ -447,8 +447,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) } if (media_entry.subtype == 0) { - if_printf(priv->ifp, "%s: Could not find operational " - "media subtype\n", __func__); + mlx5_en_err(priv->ifp, + "Could not find operational media subtype\n"); return; } @@ -456,8 +456,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) case IFM_10G_ER: error = mlx5_query_pddr_range_info(mdev, 1, &is_er_type); if (error != 0) { - if_printf(priv->ifp, "%s: query port pddr failed: %d\n", - __func__, error); + mlx5_en_err(priv->ifp, + "query port pddr failed: %d\n", error); } if (error != 0 || is_er_type == 0) media_entry.subtype = IFM_10G_LR; @@ -465,8 +465,8 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) case IFM_40G_LR4: error = mlx5_query_pddr_range_info(mdev, 1, &is_er_type); if (error != 0) { - if_printf(priv->ifp, "%s: query port pddr failed: %d\n", - __func__, error); + mlx5_en_err(priv->ifp, + "query port pddr failed: %d\n", error); } if (error == 0 && is_er_type != 0) media_entry.subtype = IFM_40G_ER4; @@ -545,9 +545,8 @@ mlx5e_set_port_pfc(struct mlx5e_priv *priv) error = -ENXIO; } else if (priv->params.rx_pauseframe_control || priv->params.tx_pauseframe_control) { - if_printf(priv->ifp, - "Global pauseframes must be disabled before " - "enabling PFC.\n"); + mlx5_en_err(priv->ifp, + "Global pauseframes must be disabled before enabling PFC.\n"); error = -EINVAL; } else { error = mlx5e_set_port_pause_and_pfc(priv); @@ -580,7 +579,7 @@ mlx5e_media_change(struct ifnet *dev) error = mlx5_query_port_ptys(mdev, out, sizeof(out), MLX5_PTYS_EN, 1); if (error != 0) { - if_printf(dev, "Query port media capability failed\n"); + mlx5_en_err(dev, "Query port media capability failed\n"); goto done; } @@ -595,14 +594,14 @@ mlx5e_media_change(struct ifnet *dev) if (IFM_SUBTYPE(priv->media.ifm_media) == IFM_AUTO) { link_mode = eth_proto_cap; if (link_mode == 0) { - if_printf(dev, "Port media capability is zero\n"); + mlx5_en_err(dev, "Port media capability is zero\n"); error = EINVAL; goto done; } } else { link_mode = link_mode & eth_proto_cap; if (link_mode == 0) { - if_printf(dev, "Not supported link mode requested\n"); + mlx5_en_err(dev, "Not supported link mode requested\n"); error = EINVAL; goto done; } @@ -611,7 +610,7 @@ mlx5e_media_change(struct ifnet *dev) /* check if PFC is enabled */ if (priv->params.rx_priority_flow_control || priv->params.tx_priority_flow_control) { - if_printf(dev, "PFC must be disabled before enabling global pauseframes.\n"); + mlx5_en_err(dev, "PFC must be disabled before enabling global pauseframes.\n"); error = EINVAL; goto done; } @@ -1020,7 +1019,8 @@ free_out: priv->params_ethtool.diag_pci_enable ? &priv->params_pci : NULL, priv->params_ethtool.diag_general_enable ? &priv->params_general : NULL); if (error != 0) - if_printf(priv->ifp, "Failed reading diagnostics: %d\n", error); + mlx5_en_err(priv->ifp, + "Failed reading diagnostics: %d\n", error); } } @@ -1764,7 +1764,7 @@ mlx5e_drain_sq(struct mlx5e_sq *sq) /* error out remaining requests */ error = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RDY, MLX5_SQC_STATE_ERR); if (error != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from RDY to ERR failed: %d\n", error); } @@ -2828,16 +2828,17 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) err = mlx5_set_port_mtu(mdev, hw_mtu); if (err) { - if_printf(ifp, "%s: mlx5_set_port_mtu failed setting %d, err=%d\n", - __func__, sw_mtu, err); + mlx5_en_err(ifp, "mlx5_set_port_mtu failed setting %d, err=%d\n", + sw_mtu, err); return (err); } /* Update vport context MTU */ err = mlx5_set_vport_mtu(mdev, hw_mtu); if (err) { - if_printf(ifp, "%s: Failed updating vport context with MTU size, err=%d\n", - __func__, err); + mlx5_en_err(ifp, + "Failed updating vport context with MTU size, err=%d\n", + err); } ifp->if_mtu = sw_mtu; @@ -2848,17 +2849,19 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) err = mlx5_query_port_oper_mtu(mdev, &hw_mtu); } if (err) { - if_printf(ifp, "Query port MTU, after setting new " - "MTU value, failed\n"); + mlx5_en_err(ifp, + "Query port MTU, after setting new MTU value, failed\n"); return (err); } else if (MLX5E_HW2SW_MTU(hw_mtu) < sw_mtu) { err = -E2BIG, - if_printf(ifp, "Port MTU %d is smaller than " - "ifp mtu %d\n", hw_mtu, sw_mtu); + mlx5_en_err(ifp, + "Port MTU %d is smaller than ifp mtu %d\n", + hw_mtu, sw_mtu); } else if (MLX5E_HW2SW_MTU(hw_mtu) > sw_mtu) { err = -EINVAL; - if_printf(ifp, "Port MTU %d is bigger than " - "ifp mtu %d\n", hw_mtu, sw_mtu); + mlx5_en_err(ifp, + "Port MTU %d is bigger than ifp mtu %d\n", + hw_mtu, sw_mtu); } priv->params_ethtool.hw_mtu = hw_mtu; @@ -2878,23 +2881,21 @@ mlx5e_open_locked(struct ifnet *ifp) #ifdef RSS if (rss_getnumbuckets() > priv->params.num_channels) { - if_printf(ifp, "NOTE: There are more RSS buckets(%u) than " - "channels(%u) available\n", rss_getnumbuckets(), - priv->params.num_channels); + mlx5_en_info(ifp, + "NOTE: There are more RSS buckets(%u) than channels(%u) available\n", + rss_getnumbuckets(), priv->params.num_channels); } #endif err = mlx5e_open_tises(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_tises failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_tises failed, %d\n", err); return (err); } err = mlx5_vport_alloc_q_counter(priv->mdev, MLX5_INTERFACE_PROTOCOL_ETH, &set_id); if (err) { - if_printf(priv->ifp, - "%s: mlx5_vport_alloc_q_counter failed: %d\n", - __func__, err); + mlx5_en_err(priv->ifp, + "mlx5_vport_alloc_q_counter failed: %d\n", err); goto err_close_tises; } /* store counter set ID */ @@ -2902,32 +2903,30 @@ mlx5e_open_locked(struct ifnet *ifp) err = mlx5e_open_channels(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_channels failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_open_channels failed, %d\n", err); goto err_dalloc_q_counter; } err = mlx5e_open_rqt(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_rqt failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_rqt failed, %d\n", err); goto err_close_channels; } err = mlx5e_open_tirs(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_tir failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_open_tir failed, %d\n", err); goto err_close_rqls; } err = mlx5e_open_flow_table(priv); if (err) { - if_printf(ifp, "%s: mlx5e_open_flow_table failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_open_flow_table failed, %d\n", err); goto err_close_tirs; } err = mlx5e_add_all_vlan_rules(priv); if (err) { - if_printf(ifp, "%s: mlx5e_add_all_vlan_rules failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5e_add_all_vlan_rules failed, %d\n", err); goto err_close_flow_table; } set_bit(MLX5E_STATE_OPENED, &priv->state); @@ -2966,9 +2965,8 @@ mlx5e_open(void *arg) PRIV_LOCK(priv); if (mlx5_set_port_status(priv->mdev, MLX5_PORT_UP)) - if_printf(priv->ifp, - "%s: Setting port status to up failed\n", - __func__); + mlx5_en_err(priv->ifp, + "Setting port status to up failed\n"); mlx5e_open_locked(priv->ifp); priv->ifp->if_drv_flags |= IFF_DRV_RUNNING; @@ -3105,7 +3103,8 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t mlx5e_open_locked(ifp); } else { error = EINVAL; - if_printf(ifp, "Invalid MTU value. Min val: %d, Max val: %d\n", + mlx5_en_err(ifp, + "Invalid MTU value. Min val: %d, Max val: %d\n", MLX5E_MTU_MIN, MIN(MLX5E_MTU_MAX, max_mtu)); } PRIV_UNLOCK(priv); @@ -3159,7 +3158,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t !(IFCAP_TXCSUM & ifp->if_capenable)) { ifp->if_capenable &= ~IFCAP_TSO4; ifp->if_hwassist &= ~CSUM_IP_TSO; - if_printf(ifp, + mlx5_en_err(ifp, "tso4 disabled due to -txcsum.\n"); } } @@ -3171,7 +3170,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t !(IFCAP_TXCSUM_IPV6 & ifp->if_capenable)) { ifp->if_capenable &= ~IFCAP_TSO6; ifp->if_hwassist &= ~CSUM_IP6_TSO; - if_printf(ifp, + mlx5_en_err(ifp, "tso6 disabled due to -txcsum6.\n"); } } @@ -3182,7 +3181,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t if (mask & IFCAP_TSO4) { if (!(IFCAP_TSO4 & ifp->if_capenable) && !(IFCAP_TXCSUM & ifp->if_capenable)) { - if_printf(ifp, "enable txcsum first.\n"); + mlx5_en_err(ifp, "enable txcsum first.\n"); error = EAGAIN; goto out; } @@ -3192,7 +3191,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t if (mask & IFCAP_TSO6) { if (!(IFCAP_TSO6 & ifp->if_capenable) && !(IFCAP_TXCSUM_IPV6 & ifp->if_capenable)) { - if_printf(ifp, "enable txcsum6 first.\n"); + mlx5_en_err(ifp, "enable txcsum6 first.\n"); error = EAGAIN; goto out; } @@ -3262,8 +3261,8 @@ out: /* Get module_num which is required for the query_eeprom */ error = mlx5_query_module_num(priv->mdev, &module_num); if (error) { - if_printf(ifp, "Query module num failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query module num failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3282,8 +3281,9 @@ out: else if (i2c.dev_addr == 0xA2) read_addr = MLX5E_I2C_ADDR_HIGH; else { - if_printf(ifp, "Query eeprom failed, " - "Invalid Address: %X\n", i2c.dev_addr); + mlx5_en_err(ifp, + "Query eeprom failed, Invalid Address: %X\n", + i2c.dev_addr); error = EINVAL; goto err_i2c; } @@ -3292,8 +3292,8 @@ out: (uint32_t)i2c.offset, (uint32_t)i2c.len, module_num, (uint32_t *)i2c.data, &size_read); if (error) { - if_printf(ifp, "Query eeprom failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query eeprom failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3306,8 +3306,8 @@ out: (uint32_t *)(i2c.data + size_read), &size_read); } if (error) { - if_printf(ifp, "Query eeprom failed, eeprom " - "reading is not supported\n"); + mlx5_en_err(ifp, + "Query eeprom failed, eeprom reading is not supported\n"); error = EINVAL; goto err_i2c; } @@ -3443,7 +3443,7 @@ mlx5e_create_mkey(struct mlx5e_priv *priv, u32 pdn, in = mlx5_vzalloc(inlen); if (in == NULL) { - if_printf(ifp, "%s: failed to allocate inbox\n", __func__); + mlx5_en_err(ifp, "failed to allocate inbox\n"); return (-ENOMEM); } @@ -3458,8 +3458,8 @@ mlx5e_create_mkey(struct mlx5e_priv *priv, u32 pdn, err = mlx5_core_create_mkey(mdev, mkey, in, inlen); if (err) - if_printf(ifp, "%s: mlx5_core_create_mkey failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_core_create_mkey failed, %d\n", + err); kvfree(in); return (err); @@ -3540,7 +3540,7 @@ mlx5e_resume_sq(struct mlx5e_sq *sq) err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_ERR, MLX5_SQC_STATE_RST); if (err != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from ERR to RST failed: %d\n", err); } @@ -3553,7 +3553,7 @@ mlx5e_resume_sq(struct mlx5e_sq *sq) err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RST, MLX5_SQC_STATE_RDY); if (err != 0) { - if_printf(sq->ifp, + mlx5_en_err(sq->ifp, "mlx5e_modify_sq() from RST to RDY failed: %d\n", err); } @@ -3585,7 +3585,7 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from RDY to RST failed: %d\n", err); } @@ -3600,7 +3600,7 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) */ err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_ERR, MLX5_RQC_STATE_RST); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from ERR to RST failed: %d\n", err); } } @@ -3615,7 +3615,7 @@ mlx5e_enable_rx_dma(struct mlx5e_channel *ch) mlx5_wq_ll_update_db_record(&rq->wq); err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RST, MLX5_RQC_STATE_RDY); if (err != 0) { - if_printf(rq->ifp, + mlx5_en_err(rq->ifp, "mlx5e_modify_rq() from RST to RDY failed: %d\n", err); } @@ -3823,7 +3823,7 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) /* update firmware */ error = mlx5e_set_port_pause_and_pfc(priv); if (error == -EINVAL) { - if_printf(priv->ifp, + mlx5_en_err(priv->ifp, "Global pauseframes must be disabled before enabling PFC.\n"); priv->params.rx_priority_flow_control = 0; priv->params.tx_priority_flow_control = 0; @@ -3943,26 +3943,23 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) err = mlx5_alloc_map_uar(mdev, &priv->cq_uar); if (err) { - if_printf(ifp, "%s: mlx5_alloc_map_uar failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_alloc_map_uar failed, %d\n", err); goto err_free_wq; } err = mlx5_core_alloc_pd(mdev, &priv->pdn); if (err) { - if_printf(ifp, "%s: mlx5_core_alloc_pd failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5_core_alloc_pd failed, %d\n", err); goto err_unmap_free_uar; } err = mlx5_alloc_transport_domain(mdev, &priv->tdn); if (err) { - if_printf(ifp, "%s: mlx5_alloc_transport_domain failed, %d\n", - __func__, err); + mlx5_en_err(ifp, + "mlx5_alloc_transport_domain failed, %d\n", err); goto err_dealloc_pd; } err = mlx5e_create_mkey(priv, priv->pdn, &priv->mr); if (err) { - if_printf(ifp, "%s: mlx5e_create_mkey failed, %d\n", - __func__, err); + mlx5_en_err(ifp, "mlx5e_create_mkey failed, %d\n", err); goto err_dealloc_transport_domain; } mlx5_query_nic_vport_mac_address(priv->mdev, 0, dev_addr); @@ -3971,7 +3968,7 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) if (MLX5_CAP_GEN(priv->mdev, vport_group_manager) == 0 && is_zero_ether_addr(dev_addr)) { random_ether_addr(dev_addr); - if_printf(ifp, "Assigned random MAC address\n"); + mlx5_en_err(ifp, "Assigned random MAC address\n"); } /* set default MTU */ @@ -3997,8 +3994,7 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) connector_type); } else { eth_proto_cap = 0; - if_printf(ifp, "%s: Query port media capability failed," - " %d\n", __func__, err); + mlx5_en_err(ifp, "Query port media capability failed, %d\n", err); } ifmedia_init(&priv->media, IFM_IMASK | IFM_ETH_FMASK, Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Oct 7 09:25:14 2019 (r353225) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Oct 7 09:28:53 2019 (r353226) @@ -48,6 +48,6 @@ mlx5e_cq_error_event(struct mlx5_core_cq *mcq, int eve { struct mlx5e_cq *cq = container_of(mcq, struct mlx5e_cq, mcq); - if_printf(cq->priv->ifp, "%s: cqn=0x%.6x event=0x%.2x\n", - __func__, mcq->cqn, event); + mlx5_en_err(cq->priv->ifp, "cqn=0x%.6x event=0x%.2x\n", + mcq->cqn, event); } From owner-svn-src-all@freebsd.org Mon Oct 7 09:30:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAF3CFF95B; Mon, 7 Oct 2019 09:30:06 +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 46mwDt4YXJz4fTp; Mon, 7 Oct 2019 09:30:06 +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 7FCEDC907; Mon, 7 Oct 2019 09:30:06 +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 x979U6kh086563; Mon, 7 Oct 2019 09:30:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979U62I086562; Mon, 7 Oct 2019 09:30:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070930.x979U62I086562@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 09:30:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353227 - stable/12/sys/dev/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5 X-SVN-Commit-Revision: 353227 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:30:06 -0000 Author: hselasky Date: Mon Oct 7 09:30:06 2019 New Revision: 353227 URL: https://svnweb.freebsd.org/changeset/base/353227 Log: MFC r352977: Sort the ports registers definitions numerically in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:28:53 2019 (r353226) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:30:06 2019 (r353227) @@ -126,24 +126,24 @@ enum { MLX5_REG_QCAM = 0x4019, MLX5_REG_DCBX_PARAM = 0x4020, MLX5_REG_DCBX_APP = 0x4021, - MLX5_REG_PCAP = 0x5001, MLX5_REG_FPGA_CAP = 0x4022, MLX5_REG_FPGA_CTRL = 0x4023, MLX5_REG_FPGA_ACCESS_REG = 0x4024, MLX5_REG_FPGA_SHELL_CNTR = 0x4025, + MLX5_REG_PCAP = 0x5001, + MLX5_REG_PMLP = 0x5002, MLX5_REG_PMTU = 0x5003, MLX5_REG_PTYS = 0x5004, MLX5_REG_PAOS = 0x5006, MLX5_REG_PFCC = 0x5007, MLX5_REG_PPCNT = 0x5008, - MLX5_REG_PMAOS = 0x5012, MLX5_REG_PUDE = 0x5009, MLX5_REG_PPTB = 0x500B, MLX5_REG_PBMC = 0x500C, + MLX5_REG_PELC = 0x500E, + MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, - MLX5_REG_PELC = 0x500e, - MLX5_REG_PVLC = 0x500f, - MLX5_REG_PMLP = 0x5002, + MLX5_REG_PMAOS = 0x5012, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, MLX5_REG_HOST_ENDIANNESS = 0x7004, From owner-svn-src-all@freebsd.org Mon Oct 7 09:31:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 466BAFF9EF; Mon, 7 Oct 2019 09:31:02 +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 46mwFy1404z4fdn; Mon, 7 Oct 2019 09:31:02 +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 07E39CA32; Mon, 7 Oct 2019 09:31:02 +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 x979V1jE087381; Mon, 7 Oct 2019 09:31:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979V1iW087380; Mon, 7 Oct 2019 09:31:01 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070931.x979V1iW087380@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 09:31:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353228 - stable/11/sys/dev/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5 X-SVN-Commit-Revision: 353228 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:31:02 -0000 Author: hselasky Date: Mon Oct 7 09:31:01 2019 New Revision: 353228 URL: https://svnweb.freebsd.org/changeset/base/353228 Log: MFC r352977: Sort the ports registers definitions numerically in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:30:06 2019 (r353227) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:31:01 2019 (r353228) @@ -124,24 +124,24 @@ enum { MLX5_REG_QCAM = 0x4019, MLX5_REG_DCBX_PARAM = 0x4020, MLX5_REG_DCBX_APP = 0x4021, - MLX5_REG_PCAP = 0x5001, MLX5_REG_FPGA_CAP = 0x4022, MLX5_REG_FPGA_CTRL = 0x4023, MLX5_REG_FPGA_ACCESS_REG = 0x4024, MLX5_REG_FPGA_SHELL_CNTR = 0x4025, + MLX5_REG_PCAP = 0x5001, + MLX5_REG_PMLP = 0x5002, MLX5_REG_PMTU = 0x5003, MLX5_REG_PTYS = 0x5004, MLX5_REG_PAOS = 0x5006, MLX5_REG_PFCC = 0x5007, MLX5_REG_PPCNT = 0x5008, - MLX5_REG_PMAOS = 0x5012, MLX5_REG_PUDE = 0x5009, MLX5_REG_PPTB = 0x500B, MLX5_REG_PBMC = 0x500C, + MLX5_REG_PELC = 0x500E, + MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, - MLX5_REG_PELC = 0x500e, - MLX5_REG_PVLC = 0x500f, - MLX5_REG_PMLP = 0x5002, + MLX5_REG_PMAOS = 0x5012, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, MLX5_REG_HOST_ENDIANNESS = 0x7004, From owner-svn-src-all@freebsd.org Mon Oct 7 09:32:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63DE2FFAB2; Mon, 7 Oct 2019 09:32:03 +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 46mwH71yGvz4fwZ; Mon, 7 Oct 2019 09:32:03 +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 266C1CA89; Mon, 7 Oct 2019 09:32:03 +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 x979W325088988; Mon, 7 Oct 2019 09:32:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979W3VK088987; Mon, 7 Oct 2019 09:32:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070932.x979W3VK088987@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 09:32:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353229 - stable/12/sys/dev/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5 X-SVN-Commit-Revision: 353229 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:32:03 -0000 Author: hselasky Date: Mon Oct 7 09:32:02 2019 New Revision: 353229 URL: https://svnweb.freebsd.org/changeset/base/353229 Log: MFC r352978: Add definition for the Port Buffer Status Register in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:31:01 2019 (r353228) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:32:02 2019 (r353229) @@ -144,6 +144,7 @@ enum { MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, MLX5_REG_PMAOS = 0x5012, + MLX5_REG_PBSR = 0x5038, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, MLX5_REG_HOST_ENDIANNESS = 0x7004, From owner-svn-src-all@freebsd.org Mon Oct 7 09:32:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 77C8AFFCC1; Mon, 7 Oct 2019 09:32:54 +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 46mwJ62TF0z4g5h; Mon, 7 Oct 2019 09:32:54 +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 384D4CAC0; Mon, 7 Oct 2019 09:32:54 +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 x979Ws4k092169; Mon, 7 Oct 2019 09:32:54 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979WsR8092168; Mon, 7 Oct 2019 09:32:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070932.x979WsR8092168@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 09:32:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353230 - stable/11/sys/dev/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5 X-SVN-Commit-Revision: 353230 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:32:54 -0000 Author: hselasky Date: Mon Oct 7 09:32:53 2019 New Revision: 353230 URL: https://svnweb.freebsd.org/changeset/base/353230 Log: MFC r352978: Add definition for the Port Buffer Status Register in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:32:02 2019 (r353229) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:32:53 2019 (r353230) @@ -142,6 +142,7 @@ enum { MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, MLX5_REG_PMAOS = 0x5012, + MLX5_REG_PBSR = 0x5038, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, MLX5_REG_HOST_ENDIANNESS = 0x7004, From owner-svn-src-all@freebsd.org Mon Oct 7 09:33:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9AEAAFFD4E; Mon, 7 Oct 2019 09:33:50 +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 46mwKB3Ysxz4gDc; Mon, 7 Oct 2019 09:33:50 +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 446D2CAC5; Mon, 7 Oct 2019 09:33:50 +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 x979XoKu092321; Mon, 7 Oct 2019 09:33:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979XnC2092320; Mon, 7 Oct 2019 09:33:49 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070933.x979XnC2092320@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 09:33:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353231 - stable/12/sys/dev/mlx5 X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5 X-SVN-Commit-Revision: 353231 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:33:50 -0000 Author: hselasky Date: Mon Oct 7 09:33:49 2019 New Revision: 353231 URL: https://svnweb.freebsd.org/changeset/base/353231 Log: MFC r352979: Update definitons for PPTB and PBMC registers layouts in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:32:53 2019 (r353230) +++ stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:33:49 2019 (r353231) @@ -1557,26 +1557,19 @@ struct mlx5_ifc_field_select_802_1qau_rp_bits { }; struct mlx5_ifc_pptb_reg_bits { - u8 reserved_0[0x2]; + u8 reserved_at_0[0x2]; u8 mm[0x2]; - u8 reserved_1[0x4]; + u8 reserved_at_4[0x4]; u8 local_port[0x8]; - u8 reserved_2[0x6]; + u8 reserved_at_10[0x6]; u8 cm[0x1]; u8 um[0x1]; u8 pm[0x8]; - u8 prio7buff[0x4]; - u8 prio6buff[0x4]; - u8 prio5buff[0x4]; - u8 prio4buff[0x4]; - u8 prio3buff[0x4]; - u8 prio2buff[0x4]; - u8 prio1buff[0x4]; - u8 prio0buff[0x4]; + u8 prio_x_buff[0x20]; u8 pm_msb[0x8]; - u8 reserved_3[0x10]; + u8 reserved_at_48[0x10]; u8 ctrl_buff[0x4]; u8 untagged_buff[0x4]; }; @@ -8690,21 +8683,20 @@ struct mlx5_ifc_pcap_reg_bits { }; struct mlx5_ifc_pbmc_reg_bits { - u8 reserved_0[0x8]; + u8 reserved_at_0[0x8]; u8 local_port[0x8]; - u8 reserved_1[0x10]; + u8 reserved_at_10[0x10]; u8 xoff_timer_value[0x10]; u8 xoff_refresh[0x10]; - u8 reserved_2[0x10]; + u8 reserved_at_40[0x9]; + u8 fullness_threshold[0x7]; u8 port_buffer_size[0x10]; struct mlx5_ifc_bufferx_reg_bits buffer[10]; - u8 reserved_3[0x40]; - - u8 port_shared_buffer[0x40]; + u8 reserved_at_2e0[0x40]; }; struct mlx5_ifc_paos_reg_bits { From owner-svn-src-all@freebsd.org Mon Oct 7 09:34:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A3C9FFDDB; Mon, 7 Oct 2019 09:34:40 +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 46mwL76SQ7z3Bmf; Mon, 7 Oct 2019 09:34:39 +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 C1236CAC6; Mon, 7 Oct 2019 09:34:39 +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 x979Ydc6092430; Mon, 7 Oct 2019 09:34:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979Yd2U092429; Mon, 7 Oct 2019 09:34:39 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070934.x979Yd2U092429@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 09:34:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353232 - stable/11/sys/dev/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5 X-SVN-Commit-Revision: 353232 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:34:40 -0000 Author: hselasky Date: Mon Oct 7 09:34:39 2019 New Revision: 353232 URL: https://svnweb.freebsd.org/changeset/base/353232 Log: MFC r352979: Update definitons for PPTB and PBMC registers layouts in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:33:49 2019 (r353231) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:34:39 2019 (r353232) @@ -1557,26 +1557,19 @@ struct mlx5_ifc_field_select_802_1qau_rp_bits { }; struct mlx5_ifc_pptb_reg_bits { - u8 reserved_0[0x2]; + u8 reserved_at_0[0x2]; u8 mm[0x2]; - u8 reserved_1[0x4]; + u8 reserved_at_4[0x4]; u8 local_port[0x8]; - u8 reserved_2[0x6]; + u8 reserved_at_10[0x6]; u8 cm[0x1]; u8 um[0x1]; u8 pm[0x8]; - u8 prio7buff[0x4]; - u8 prio6buff[0x4]; - u8 prio5buff[0x4]; - u8 prio4buff[0x4]; - u8 prio3buff[0x4]; - u8 prio2buff[0x4]; - u8 prio1buff[0x4]; - u8 prio0buff[0x4]; + u8 prio_x_buff[0x20]; u8 pm_msb[0x8]; - u8 reserved_3[0x10]; + u8 reserved_at_48[0x10]; u8 ctrl_buff[0x4]; u8 untagged_buff[0x4]; }; @@ -8690,21 +8683,20 @@ struct mlx5_ifc_pcap_reg_bits { }; struct mlx5_ifc_pbmc_reg_bits { - u8 reserved_0[0x8]; + u8 reserved_at_0[0x8]; u8 local_port[0x8]; - u8 reserved_1[0x10]; + u8 reserved_at_10[0x10]; u8 xoff_timer_value[0x10]; u8 xoff_refresh[0x10]; - u8 reserved_2[0x10]; + u8 reserved_at_40[0x9]; + u8 fullness_threshold[0x7]; u8 port_buffer_size[0x10]; struct mlx5_ifc_bufferx_reg_bits buffer[10]; - u8 reserved_3[0x40]; - - u8 port_shared_buffer[0x40]; + u8 reserved_at_2e0[0x40]; }; struct mlx5_ifc_paos_reg_bits { From owner-svn-src-all@freebsd.org Mon Oct 7 09:35:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EEC50FFE7A; Mon, 7 Oct 2019 09:35:38 +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 46mwMG64LZz3BwZ; Mon, 7 Oct 2019 09:35:38 +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 B3D4FCACB; Mon, 7 Oct 2019 09:35:38 +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 x979ZcYd092571; Mon, 7 Oct 2019 09:35:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979ZcQX092570; Mon, 7 Oct 2019 09:35:38 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070935.x979ZcQX092570@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 09:35:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353233 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353233 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:35:39 -0000 Author: hselasky Date: Mon Oct 7 09:35:38 2019 New Revision: 353233 URL: https://svnweb.freebsd.org/changeset/base/353233 Log: MFC r352980: Add mlx5e_dbg() compatibility macro. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:34:39 2019 (r353232) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:35:38 2019 (r353233) @@ -1169,6 +1169,8 @@ mlx5e_unref_channel(struct mlx5e_priv *priv) atomic_fetchadd_int(&priv->channel_refs, -1); } +#define mlx5e_dbg(_IGN, _priv, ...) mlx5_core_dbg((_priv)->mdev, __VA_ARGS__) + extern const struct ethtool_ops mlx5e_ethtool_ops; void mlx5e_create_ethtool(struct mlx5e_priv *); void mlx5e_create_stats(struct sysctl_ctx_list *, From owner-svn-src-all@freebsd.org Mon Oct 7 09:36:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 52A74FFF04; Mon, 7 Oct 2019 09:36:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mwNH1WHdz3C5H; Mon, 7 Oct 2019 09:36:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 17552CACC; Mon, 7 Oct 2019 09:36:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x979aUPp092671; Mon, 7 Oct 2019 09:36:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979aURH092670; Mon, 7 Oct 2019 09:36:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070936.x979aURH092670@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 09:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353234 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353234 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:36:31 -0000 Author: hselasky Date: Mon Oct 7 09:36:30 2019 New Revision: 353234 URL: https://svnweb.freebsd.org/changeset/base/353234 Log: MFC r352980: Add mlx5e_dbg() compatibility macro. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:35:38 2019 (r353233) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:36:30 2019 (r353234) @@ -1105,6 +1105,8 @@ mlx5e_cq_arm(struct mlx5e_cq *cq, spinlock_t *dblock) mlx5_cq_arm(mcq, MLX5_CQ_DB_REQ_NOT, mcq->uar->map, dblock, cq->wq.cc); } +#define mlx5e_dbg(_IGN, _priv, ...) mlx5_core_dbg((_priv)->mdev, __VA_ARGS__) + extern const struct ethtool_ops mlx5e_ethtool_ops; void mlx5e_create_ethtool(struct mlx5e_priv *); void mlx5e_create_stats(struct sysctl_ctx_list *, From owner-svn-src-all@freebsd.org Mon Oct 7 09:39:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CE49FFFEE; Mon, 7 Oct 2019 09:39:07 +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 46mwRH2xfJz3CLJ; Mon, 7 Oct 2019 09:39:07 +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 47F9BCADA; Mon, 7 Oct 2019 09:39:07 +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 x979d733092996; Mon, 7 Oct 2019 09:39:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979d6ME092989; Mon, 7 Oct 2019 09:39:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070939.x979d6ME092989@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 09:39:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353235 - in stable/12/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5en X-SVN-Commit-Revision: 353235 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:39:07 -0000 Author: hselasky Date: Mon Oct 7 09:39:05 2019 New Revision: 353235 URL: https://svnweb.freebsd.org/changeset/base/353235 Log: MFC r352981: Import Linux code to query/set buffer state in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Added: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c - copied unchanged from r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c stable/12/sys/dev/mlx5/mlx5_en/port_buffer.h - copied unchanged from r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h Modified: stable/12/sys/conf/files stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/port.h stable/12/sys/modules/mlx5en/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/conf/files ============================================================================== --- stable/12/sys/conf/files Mon Oct 7 09:36:30 2019 (r353234) +++ stable/12/sys/conf/files Mon Oct 7 09:39:05 2019 (r353235) @@ -4853,6 +4853,8 @@ dev/mlx5/mlx5_en/mlx5_en_rl.c optional mlx5en pci in compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_port_buffer.c optional mlx5en pci inet inet6 \ + compile-with "${OFED_C}" # crypto support opencrypto/cast.c optional crypto | ipsec | ipsec_support Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:36:30 2019 (r353234) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:39:05 2019 (r353235) @@ -1236,3 +1236,220 @@ mlx5_set_mfrl_reg(struct mlx5_core_dev *mdev, u8 reset return (mlx5_core_access_reg(mdev, mfrl, sz, mfrl, sz, MLX5_REG_MFRL, 0, 1)); } + +/* speed in units of 1Mb */ +static const u32 mlx5e_link_speed[/*MLX5E_LINK_MODES_NUMBER*/] = { + [MLX5E_1000BASE_CX_SGMII] = 1000, + [MLX5E_1000BASE_KX] = 1000, + [MLX5E_10GBASE_CX4] = 10000, + [MLX5E_10GBASE_KX4] = 10000, + [MLX5E_10GBASE_KR] = 10000, + [MLX5E_20GBASE_KR2] = 20000, + [MLX5E_40GBASE_CR4] = 40000, + [MLX5E_40GBASE_KR4] = 40000, + [MLX5E_56GBASE_R4] = 56000, + [MLX5E_10GBASE_CR] = 10000, + [MLX5E_10GBASE_SR] = 10000, + [MLX5E_10GBASE_ER_LR] = 10000, + [MLX5E_40GBASE_SR4] = 40000, + [MLX5E_40GBASE_LR4_ER4] = 40000, + [MLX5E_50GBASE_SR2] = 50000, + [MLX5E_100GBASE_CR4] = 100000, + [MLX5E_100GBASE_SR4] = 100000, + [MLX5E_100GBASE_KR4] = 100000, + [MLX5E_100GBASE_LR4] = 100000, + [MLX5E_100BASE_TX] = 100, + [MLX5E_1000BASE_T] = 1000, + [MLX5E_10GBASE_T] = 10000, + [MLX5E_25GBASE_CR] = 25000, + [MLX5E_25GBASE_KR] = 25000, + [MLX5E_25GBASE_SR] = 25000, + [MLX5E_50GBASE_CR2] = 50000, + [MLX5E_50GBASE_KR2] = 50000, +}; + +static const u32 mlx5e_ext_link_speed[/*MLX5E_EXT_LINK_MODES_NUMBER*/] = { + [MLX5E_SGMII_100M] = 100, + [MLX5E_1000BASE_X_SGMII] = 1000, + [MLX5E_5GBASE_R] = 5000, + [MLX5E_10GBASE_XFI_XAUI_1] = 10000, + [MLX5E_40GBASE_XLAUI_4_XLPPI_4] = 40000, + [MLX5E_25GAUI_1_25GBASE_CR_KR] = 25000, + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2] = 50000, + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR] = 50000, + [MLX5E_CAUI_4_100GBASE_CR4_KR4] = 100000, + [MLX5E_200GAUI_4_200GBASE_CR4_KR4] = 200000, + [MLX5E_400GAUI_8] = 400000, +}; + +static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev, + const u32 **arr, u32 *size) +{ + bool ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); + + *size = ext ? ARRAY_SIZE(mlx5e_ext_link_speed) : + ARRAY_SIZE(mlx5e_link_speed); + *arr = ext ? mlx5e_ext_link_speed : mlx5e_link_speed; +} + +u32 mlx5e_port_ptys2speed(struct mlx5_core_dev *mdev, u32 eth_proto_oper) +{ + unsigned long temp = eth_proto_oper; + const u32 *table; + u32 speed = 0; + u32 max_size; + int i; + + mlx5e_port_get_speed_arr(mdev, &table, &max_size); + i = find_first_bit(&temp, max_size); + if (i < max_size) + speed = table[i]; + return speed; +} + +int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext, + struct mlx5e_port_eth_proto *eproto) +{ + u32 out[MLX5_ST_SZ_DW(ptys_reg)]; + int err; + + if (!eproto) + return -EINVAL; + + err = mlx5_query_port_ptys(dev, out, sizeof(out), MLX5_PTYS_EN, port); + if (err) + return err; + + eproto->cap = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, + eth_proto_capability); + eproto->admin = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_admin); + eproto->oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper); + return 0; +} + +int mlx5e_port_linkspeed(struct mlx5_core_dev *mdev, u32 *speed) +{ + struct mlx5e_port_eth_proto eproto; + bool ext; + int err; + + ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); + err = mlx5_port_query_eth_proto(mdev, 1, ext, &eproto); + if (err) + goto out; + + *speed = mlx5e_port_ptys2speed(mdev, eproto.oper); + if (!(*speed)) + err = -EINVAL; + +out: + return err; +} + +int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out) +{ + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *in; + int err; + + in = kzalloc(sz, GFP_KERNEL); + if (!in) + return -ENOMEM; + + MLX5_SET(pbmc_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PBMC, 0, 0); + + kfree(in); + return err; +} + +int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in) +{ + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *out; + int err; + + out = kzalloc(sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + MLX5_SET(pbmc_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PBMC, 0, 1); + + kfree(out); + return err; +} + +/* buffer[i]: buffer that priority i mapped to */ +int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer) +{ + int sz = MLX5_ST_SZ_BYTES(pptb_reg); + u32 prio_x_buff; + void *out; + void *in; + int prio; + int err; + + in = kzalloc(sz, GFP_KERNEL); + out = kzalloc(sz, GFP_KERNEL); + if (!in || !out) { + err = -ENOMEM; + goto out; + } + + MLX5_SET(pptb_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 0); + if (err) + goto out; + + prio_x_buff = MLX5_GET(pptb_reg, out, prio_x_buff); + for (prio = 0; prio < 8; prio++) { + buffer[prio] = (u8)(prio_x_buff >> (4 * prio)) & 0xF; + mlx5_core_dbg(mdev, "prio %d, buffer %d\n", prio, buffer[prio]); + } +out: + kfree(in); + kfree(out); + return err; +} + +int mlx5e_port_set_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer) +{ + int sz = MLX5_ST_SZ_BYTES(pptb_reg); + u32 prio_x_buff; + void *out; + void *in; + int prio; + int err; + + in = kzalloc(sz, GFP_KERNEL); + out = kzalloc(sz, GFP_KERNEL); + if (!in || !out) { + err = -ENOMEM; + goto out; + } + + /* First query the pptb register */ + MLX5_SET(pptb_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 0); + if (err) + goto out; + + memcpy(in, out, sz); + MLX5_SET(pptb_reg, in, local_port, 1); + + /* Update the pm and prio_x_buff */ + MLX5_SET(pptb_reg, in, pm, 0xFF); + + prio_x_buff = 0; + for (prio = 0; prio < 8; prio++) + prio_x_buff |= (buffer[prio] << (4 * prio)); + MLX5_SET(pptb_reg, in, prio_x_buff, prio_x_buff); + + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 1); + +out: + kfree(in); + kfree(out); + return err; +} Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:36:30 2019 (r353234) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:39:05 2019 (r353235) @@ -987,6 +987,11 @@ struct mlx5e_clbr_point { u_int clbr_gen; }; +struct mlx5e_dcbx { + u32 cable_len; + u32 xoff; +}; + struct mlx5e_priv { struct mlx5_core_dev *mdev; /* must be first */ @@ -1054,6 +1059,8 @@ struct mlx5e_priv { int clbr_curr; struct mlx5e_clbr_point clbr_points[2]; u_int clbr_gen; + + struct mlx5e_dcbx dcbx; struct mlx5e_channel channel[]; }; Copied: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c (from r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 09:39:05 2019 (r353235, copy of r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c) @@ -0,0 +1,328 @@ +/*- + * Copyright (c) 2018 Mellanox Technologies. 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 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 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$ + */ + +#include "port_buffer.h" + +#define MLX5E_MAX_PORT_MTU 9216 + +int mlx5e_port_query_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer) +{ + struct mlx5_core_dev *mdev = priv->mdev; + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + u32 total_used = 0; + void *buffer; + void *out; + int err; + int i; + + out = kzalloc(sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + err = mlx5e_port_query_pbmc(mdev, out); + if (err) + goto out; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + buffer = MLX5_ADDR_OF(pbmc_reg, out, buffer[i]); + port_buffer->buffer[i].lossy = + MLX5_GET(bufferx_reg, buffer, lossy); + port_buffer->buffer[i].epsb = + MLX5_GET(bufferx_reg, buffer, epsb); + port_buffer->buffer[i].size = + MLX5_GET(bufferx_reg, buffer, size) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->buffer[i].xon = + MLX5_GET(bufferx_reg, buffer, xon_threshold) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->buffer[i].xoff = + MLX5_GET(bufferx_reg, buffer, xoff_threshold) << MLX5E_BUFFER_CELL_SHIFT; + total_used += port_buffer->buffer[i].size; + + mlx5e_dbg(HW, priv, "buffer %d: size=%d, xon=%d, xoff=%d, epsb=%d, lossy=%d\n", i, + port_buffer->buffer[i].size, + port_buffer->buffer[i].xon, + port_buffer->buffer[i].xoff, + port_buffer->buffer[i].epsb, + port_buffer->buffer[i].lossy); + } + + port_buffer->port_buffer_size = + MLX5_GET(pbmc_reg, out, port_buffer_size) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->spare_buffer_size = + port_buffer->port_buffer_size - total_used; + + mlx5e_dbg(HW, priv, "total buffer size=%d, spare buffer size=%d\n", + port_buffer->port_buffer_size, + port_buffer->spare_buffer_size); +out: + kfree(out); + return err; +} + +static int port_set_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer) +{ + struct mlx5_core_dev *mdev = priv->mdev; + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *buffer; + void *in; + int err; + int i; + + in = kzalloc(sz, GFP_KERNEL); + if (!in) + return -ENOMEM; + + err = mlx5e_port_query_pbmc(mdev, in); + if (err) + goto out; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + buffer = MLX5_ADDR_OF(pbmc_reg, in, buffer[i]); + + MLX5_SET(bufferx_reg, buffer, size, + port_buffer->buffer[i].size >> MLX5E_BUFFER_CELL_SHIFT); + MLX5_SET(bufferx_reg, buffer, lossy, + port_buffer->buffer[i].lossy); + MLX5_SET(bufferx_reg, buffer, xoff_threshold, + port_buffer->buffer[i].xoff >> MLX5E_BUFFER_CELL_SHIFT); + MLX5_SET(bufferx_reg, buffer, xon_threshold, + port_buffer->buffer[i].xon >> MLX5E_BUFFER_CELL_SHIFT); + } + + err = mlx5e_port_set_pbmc(mdev, in); +out: + kfree(in); + return err; +} + +/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) */ +static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) +{ + u32 speed; + u32 xoff; + int err; + + err = mlx5e_port_linkspeed(priv->mdev, &speed); + if (err) { + mlx5_core_warn(priv->mdev, "cannot get port speed\n"); + speed = SPEED_40000; + } + speed = max_t(u32, speed, SPEED_40000); + xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100; + + mlx5e_dbg(HW, priv, "%s: xoff=%d\n", __func__, xoff); + return xoff; +} + +static int update_xoff_threshold(struct mlx5e_port_buffer *port_buffer, + u32 xoff) +{ + int i; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + if (port_buffer->buffer[i].lossy) { + port_buffer->buffer[i].xoff = 0; + port_buffer->buffer[i].xon = 0; + continue; + } + + if (port_buffer->buffer[i].size < + (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) + return -ENOMEM; + + port_buffer->buffer[i].xoff = port_buffer->buffer[i].size - xoff; + port_buffer->buffer[i].xon = + port_buffer->buffer[i].xoff - MLX5E_MAX_PORT_MTU; + } + + return 0; +} + +/** + * update_buffer_lossy() + * mtu: device's MTU + * pfc_en: current pfc configuration + * buffer: current prio to buffer mapping + * xoff: xoff value + * port_buffer: port receive buffer configuration + * change: + * + * Update buffer configuration based on pfc configuraiton and priority + * to buffer mapping. + * Buffer's lossy bit is changed to: + * lossless if there is at least one PFC enabled priority mapped to this buffer + * lossy if all priorities mapped to this buffer are PFC disabled + * + * Return: + * Return 0 if no error. + * Set change to true if buffer configuration is modified. + */ +static int update_buffer_lossy(unsigned int mtu, + u8 pfc_en, u8 *buffer, u32 xoff, + struct mlx5e_port_buffer *port_buffer, + bool *change) +{ + bool changed = false; + u8 lossy_count; + u8 prio_count; + u8 lossy; + int prio; + int err; + int i; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + prio_count = 0; + lossy_count = 0; + + for (prio = 0; prio < MLX5E_MAX_PRIORITY; prio++) { + if (buffer[prio] != i) + continue; + + prio_count++; + lossy_count += !(pfc_en & (1 << prio)); + } + + if (lossy_count == prio_count) + lossy = 1; + else /* lossy_count < prio_count */ + lossy = 0; + + if (lossy != port_buffer->buffer[i].lossy) { + port_buffer->buffer[i].lossy = lossy; + changed = true; + } + } + + if (changed) { + err = update_xoff_threshold(port_buffer, xoff); + if (err) + return err; + + *change = true; + } + + return 0; +} + +int mlx5e_port_manual_buffer_config(struct mlx5e_priv *priv, + u32 change, unsigned int mtu, + struct ieee_pfc *pfc, + u32 *buffer_size, + u8 *prio2buffer) +{ + struct mlx5e_port_buffer port_buffer; + u32 xoff = calculate_xoff(priv, mtu); + bool update_prio2buffer = false; + u8 buffer[MLX5E_MAX_PRIORITY]; + bool update_buffer = false; + u32 total_used = 0; + u8 curr_pfc_en; + int err; + int i; + + mlx5e_dbg(HW, priv, "%s: change=%x\n", __func__, change); + + err = mlx5e_port_query_buffer(priv, &port_buffer); + if (err) + return err; + + if (change & MLX5E_PORT_BUFFER_CABLE_LEN) { + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_PFC) { + err = mlx5e_port_query_priority2buffer(priv->mdev, buffer); + if (err) + return err; + + err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, + &port_buffer, &update_buffer); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_PRIO2BUFFER) { + update_prio2buffer = true; + err = mlx5_query_port_pfc(priv->mdev, &curr_pfc_en, NULL); + if (err) + return err; + + err = update_buffer_lossy(mtu, curr_pfc_en, prio2buffer, xoff, + &port_buffer, &update_buffer); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_SIZE) { + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + mlx5e_dbg(HW, priv, "%s: buffer[%d]=%d\n", __func__, i, buffer_size[i]); + if (!port_buffer.buffer[i].lossy && !buffer_size[i]) { + mlx5e_dbg(HW, priv, "%s: lossless buffer[%d] size cannot be zero\n", + __func__, i); + return -EINVAL; + } + + port_buffer.buffer[i].size = buffer_size[i]; + total_used += buffer_size[i]; + } + + mlx5e_dbg(HW, priv, "%s: total buffer requested=%d\n", __func__, total_used); + + if (total_used > port_buffer.port_buffer_size) + return -EINVAL; + + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + + /* Need to update buffer configuration if xoff value is changed */ + if (!update_buffer && xoff != priv->dcbx.xoff) { + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + priv->dcbx.xoff = xoff; + + /* Apply the settings */ + if (update_buffer) { + err = port_set_buffer(priv, &port_buffer); + if (err) + return err; + } + + if (update_prio2buffer) + err = mlx5e_port_set_priority2buffer(priv->mdev, prio2buffer); + + return err; +} Copied: stable/12/sys/dev/mlx5/mlx5_en/port_buffer.h (from r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/sys/dev/mlx5/mlx5_en/port_buffer.h Mon Oct 7 09:39:05 2019 (r353235, copy of r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h) @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2018 Mellanox Technologies. 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 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 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 __MLX5_EN_PORT_BUFFER_H__ +#define __MLX5_EN_PORT_BUFFER_H__ + +#include "en.h" +#include + +#define MLX5E_MAX_BUFFER 8 +#define MLX5E_BUFFER_CELL_SHIFT 7 +#define MLX5E_DEFAULT_CABLE_LEN 7 /* 7 meters */ + +#define MLX5_BUFFER_SUPPORTED(mdev) (MLX5_CAP_GEN(mdev, pcam_reg) && \ + MLX5_CAP_PCAM_REG(mdev, pbmc) && \ + MLX5_CAP_PCAM_REG(mdev, pptb)) + +enum { + MLX5E_PORT_BUFFER_CABLE_LEN = BIT(0), + MLX5E_PORT_BUFFER_PFC = BIT(1), + MLX5E_PORT_BUFFER_PRIO2BUFFER = BIT(2), + MLX5E_PORT_BUFFER_SIZE = BIT(3), +}; + +struct mlx5e_bufferx_reg { + u8 lossy; + u8 epsb; + u32 size; + u32 xoff; + u32 xon; +}; + +struct mlx5e_port_buffer { + u32 port_buffer_size; + u32 spare_buffer_size; + struct mlx5e_bufferx_reg buffer[MLX5E_MAX_BUFFER]; +}; + +#define IEEE_8021QAZ_MAX_TCS 8 + +struct ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[IEEE_8021QAZ_MAX_TCS]; + __u64 indications[IEEE_8021QAZ_MAX_TCS]; +}; + +int mlx5e_port_manual_buffer_config(struct mlx5e_priv *priv, + u32 change, unsigned int mtu, + struct ieee_pfc *pfc, + u32 *buffer_size, + u8 *prio2buffer); + +int mlx5e_port_query_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer); +#endif Modified: stable/12/sys/dev/mlx5/port.h ============================================================================== --- stable/12/sys/dev/mlx5/port.h Mon Oct 7 09:36:30 2019 (r353234) +++ stable/12/sys/dev/mlx5/port.h Mon Oct 7 09:39:05 2019 (r353235) @@ -179,7 +179,16 @@ enum mlx5_qpts_trust_state { MLX5_QPTS_TRUST_DSCP = 2, MLX5_QPTS_TRUST_BOTH = 3, }; +struct mlx5e_port_eth_proto { + u32 cap; + u32 admin; + u32 oper; +}; +#ifndef SPEED_40000 +#define SPEED_40000 40000 +#endif + #define MLX5E_PROT_MASK(link_mode) (1 << (link_mode)) #define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF @@ -251,5 +260,15 @@ int mlx5_set_dscp2prio(struct mlx5_core_dev *mdev, con int mlx5_query_dscp2prio(struct mlx5_core_dev *mdev, u8 *dscp2prio); int mlx5_query_pddr_range_info(struct mlx5_core_dev *mdev, u8 local_port, u8 *is_er_type); + +u32 mlx5e_port_ptys2speed(struct mlx5_core_dev *mdev, u32 eth_proto_oper); +int mlx5e_port_linkspeed(struct mlx5_core_dev *mdev, u32 *speed); +int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext, + struct mlx5e_port_eth_proto *eproto); + +int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out); +int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in); +int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer); +int mlx5e_port_set_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer); #endif /* __MLX5_PORT_H__ */ Modified: stable/12/sys/modules/mlx5en/Makefile ============================================================================== --- stable/12/sys/modules/mlx5en/Makefile Mon Oct 7 09:36:30 2019 (r353234) +++ stable/12/sys/modules/mlx5en/Makefile Mon Oct 7 09:39:05 2019 (r353235) @@ -11,6 +11,7 @@ mlx5_en_flow_table.c \ mlx5_en_rx.c \ mlx5_en_rl.c \ mlx5_en_txrx.c \ +mlx5_en_port_buffer.c \ device_if.h bus_if.h vnode_if.h pci_if.h \ opt_inet.h opt_inet6.h opt_rss.h opt_ratelimit.h From owner-svn-src-all@freebsd.org Mon Oct 7 09:40:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F45012820C; Mon, 7 Oct 2019 09:40: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 46mwTR3wh1z3CWd; Mon, 7 Oct 2019 09:40: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 69ADCCB06; Mon, 7 Oct 2019 09:40: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 x979ex0X097025; Mon, 7 Oct 2019 09:40:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979ewlW097015; Mon, 7 Oct 2019 09:40:58 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070940.x979ewlW097015@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 09:40:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353236 - in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core dev/mlx5/mlx5_en modules/mlx5en X-SVN-Commit-Revision: 353236 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:40:59 -0000 Author: hselasky Date: Mon Oct 7 09:40:57 2019 New Revision: 353236 URL: https://svnweb.freebsd.org/changeset/base/353236 Log: MFC r352981: Import Linux code to query/set buffer state in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Added: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c - copied unchanged from r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c stable/11/sys/dev/mlx5/mlx5_en/port_buffer.h - copied unchanged from r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h Modified: stable/11/sys/conf/files stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/port.h stable/11/sys/modules/mlx5en/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Oct 7 09:39:05 2019 (r353235) +++ stable/11/sys/conf/files Mon Oct 7 09:40:57 2019 (r353236) @@ -4625,6 +4625,8 @@ dev/mlx5/mlx5_en/mlx5_en_rx.c optional mlx5en pci in compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_port_buffer.c optional mlx5en pci inet inet6 \ + compile-with "${OFED_C}" # crypto support opencrypto/cast.c optional crypto | ipsec | ipsec_support Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:39:05 2019 (r353235) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Oct 7 09:40:57 2019 (r353236) @@ -1236,3 +1236,220 @@ mlx5_set_mfrl_reg(struct mlx5_core_dev *mdev, u8 reset return (mlx5_core_access_reg(mdev, mfrl, sz, mfrl, sz, MLX5_REG_MFRL, 0, 1)); } + +/* speed in units of 1Mb */ +static const u32 mlx5e_link_speed[/*MLX5E_LINK_MODES_NUMBER*/] = { + [MLX5E_1000BASE_CX_SGMII] = 1000, + [MLX5E_1000BASE_KX] = 1000, + [MLX5E_10GBASE_CX4] = 10000, + [MLX5E_10GBASE_KX4] = 10000, + [MLX5E_10GBASE_KR] = 10000, + [MLX5E_20GBASE_KR2] = 20000, + [MLX5E_40GBASE_CR4] = 40000, + [MLX5E_40GBASE_KR4] = 40000, + [MLX5E_56GBASE_R4] = 56000, + [MLX5E_10GBASE_CR] = 10000, + [MLX5E_10GBASE_SR] = 10000, + [MLX5E_10GBASE_ER_LR] = 10000, + [MLX5E_40GBASE_SR4] = 40000, + [MLX5E_40GBASE_LR4_ER4] = 40000, + [MLX5E_50GBASE_SR2] = 50000, + [MLX5E_100GBASE_CR4] = 100000, + [MLX5E_100GBASE_SR4] = 100000, + [MLX5E_100GBASE_KR4] = 100000, + [MLX5E_100GBASE_LR4] = 100000, + [MLX5E_100BASE_TX] = 100, + [MLX5E_1000BASE_T] = 1000, + [MLX5E_10GBASE_T] = 10000, + [MLX5E_25GBASE_CR] = 25000, + [MLX5E_25GBASE_KR] = 25000, + [MLX5E_25GBASE_SR] = 25000, + [MLX5E_50GBASE_CR2] = 50000, + [MLX5E_50GBASE_KR2] = 50000, +}; + +static const u32 mlx5e_ext_link_speed[/*MLX5E_EXT_LINK_MODES_NUMBER*/] = { + [MLX5E_SGMII_100M] = 100, + [MLX5E_1000BASE_X_SGMII] = 1000, + [MLX5E_5GBASE_R] = 5000, + [MLX5E_10GBASE_XFI_XAUI_1] = 10000, + [MLX5E_40GBASE_XLAUI_4_XLPPI_4] = 40000, + [MLX5E_25GAUI_1_25GBASE_CR_KR] = 25000, + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2] = 50000, + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR] = 50000, + [MLX5E_CAUI_4_100GBASE_CR4_KR4] = 100000, + [MLX5E_200GAUI_4_200GBASE_CR4_KR4] = 200000, + [MLX5E_400GAUI_8] = 400000, +}; + +static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev, + const u32 **arr, u32 *size) +{ + bool ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); + + *size = ext ? ARRAY_SIZE(mlx5e_ext_link_speed) : + ARRAY_SIZE(mlx5e_link_speed); + *arr = ext ? mlx5e_ext_link_speed : mlx5e_link_speed; +} + +u32 mlx5e_port_ptys2speed(struct mlx5_core_dev *mdev, u32 eth_proto_oper) +{ + unsigned long temp = eth_proto_oper; + const u32 *table; + u32 speed = 0; + u32 max_size; + int i; + + mlx5e_port_get_speed_arr(mdev, &table, &max_size); + i = find_first_bit(&temp, max_size); + if (i < max_size) + speed = table[i]; + return speed; +} + +int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext, + struct mlx5e_port_eth_proto *eproto) +{ + u32 out[MLX5_ST_SZ_DW(ptys_reg)]; + int err; + + if (!eproto) + return -EINVAL; + + err = mlx5_query_port_ptys(dev, out, sizeof(out), MLX5_PTYS_EN, port); + if (err) + return err; + + eproto->cap = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, + eth_proto_capability); + eproto->admin = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_admin); + eproto->oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper); + return 0; +} + +int mlx5e_port_linkspeed(struct mlx5_core_dev *mdev, u32 *speed) +{ + struct mlx5e_port_eth_proto eproto; + bool ext; + int err; + + ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); + err = mlx5_port_query_eth_proto(mdev, 1, ext, &eproto); + if (err) + goto out; + + *speed = mlx5e_port_ptys2speed(mdev, eproto.oper); + if (!(*speed)) + err = -EINVAL; + +out: + return err; +} + +int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out) +{ + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *in; + int err; + + in = kzalloc(sz, GFP_KERNEL); + if (!in) + return -ENOMEM; + + MLX5_SET(pbmc_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PBMC, 0, 0); + + kfree(in); + return err; +} + +int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in) +{ + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *out; + int err; + + out = kzalloc(sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + MLX5_SET(pbmc_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PBMC, 0, 1); + + kfree(out); + return err; +} + +/* buffer[i]: buffer that priority i mapped to */ +int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer) +{ + int sz = MLX5_ST_SZ_BYTES(pptb_reg); + u32 prio_x_buff; + void *out; + void *in; + int prio; + int err; + + in = kzalloc(sz, GFP_KERNEL); + out = kzalloc(sz, GFP_KERNEL); + if (!in || !out) { + err = -ENOMEM; + goto out; + } + + MLX5_SET(pptb_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 0); + if (err) + goto out; + + prio_x_buff = MLX5_GET(pptb_reg, out, prio_x_buff); + for (prio = 0; prio < 8; prio++) { + buffer[prio] = (u8)(prio_x_buff >> (4 * prio)) & 0xF; + mlx5_core_dbg(mdev, "prio %d, buffer %d\n", prio, buffer[prio]); + } +out: + kfree(in); + kfree(out); + return err; +} + +int mlx5e_port_set_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer) +{ + int sz = MLX5_ST_SZ_BYTES(pptb_reg); + u32 prio_x_buff; + void *out; + void *in; + int prio; + int err; + + in = kzalloc(sz, GFP_KERNEL); + out = kzalloc(sz, GFP_KERNEL); + if (!in || !out) { + err = -ENOMEM; + goto out; + } + + /* First query the pptb register */ + MLX5_SET(pptb_reg, in, local_port, 1); + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 0); + if (err) + goto out; + + memcpy(in, out, sz); + MLX5_SET(pptb_reg, in, local_port, 1); + + /* Update the pm and prio_x_buff */ + MLX5_SET(pptb_reg, in, pm, 0xFF); + + prio_x_buff = 0; + for (prio = 0; prio < 8; prio++) + prio_x_buff |= (buffer[prio] << (4 * prio)); + MLX5_SET(pptb_reg, in, prio_x_buff, prio_x_buff); + + err = mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPTB, 0, 1); + +out: + kfree(in); + kfree(out); + return err; +} Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:39:05 2019 (r353235) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:40:57 2019 (r353236) @@ -951,6 +951,11 @@ struct mlx5e_flow_tables { struct mlx5e_flow_table inner_rss; }; +struct mlx5e_dcbx { + u32 cable_len; + u32 xoff; +}; + struct mlx5e_priv { struct mlx5_core_dev *mdev; /* must be first */ @@ -1008,6 +1013,8 @@ struct mlx5e_priv { int media_active_last; struct callout watchdog; + + struct mlx5e_dcbx dcbx; struct mlx5e_channel channel[]; }; Copied: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c (from r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 09:40:57 2019 (r353236, copy of r352981, head/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c) @@ -0,0 +1,328 @@ +/*- + * Copyright (c) 2018 Mellanox Technologies. 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 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 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$ + */ + +#include "port_buffer.h" + +#define MLX5E_MAX_PORT_MTU 9216 + +int mlx5e_port_query_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer) +{ + struct mlx5_core_dev *mdev = priv->mdev; + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + u32 total_used = 0; + void *buffer; + void *out; + int err; + int i; + + out = kzalloc(sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + err = mlx5e_port_query_pbmc(mdev, out); + if (err) + goto out; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + buffer = MLX5_ADDR_OF(pbmc_reg, out, buffer[i]); + port_buffer->buffer[i].lossy = + MLX5_GET(bufferx_reg, buffer, lossy); + port_buffer->buffer[i].epsb = + MLX5_GET(bufferx_reg, buffer, epsb); + port_buffer->buffer[i].size = + MLX5_GET(bufferx_reg, buffer, size) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->buffer[i].xon = + MLX5_GET(bufferx_reg, buffer, xon_threshold) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->buffer[i].xoff = + MLX5_GET(bufferx_reg, buffer, xoff_threshold) << MLX5E_BUFFER_CELL_SHIFT; + total_used += port_buffer->buffer[i].size; + + mlx5e_dbg(HW, priv, "buffer %d: size=%d, xon=%d, xoff=%d, epsb=%d, lossy=%d\n", i, + port_buffer->buffer[i].size, + port_buffer->buffer[i].xon, + port_buffer->buffer[i].xoff, + port_buffer->buffer[i].epsb, + port_buffer->buffer[i].lossy); + } + + port_buffer->port_buffer_size = + MLX5_GET(pbmc_reg, out, port_buffer_size) << MLX5E_BUFFER_CELL_SHIFT; + port_buffer->spare_buffer_size = + port_buffer->port_buffer_size - total_used; + + mlx5e_dbg(HW, priv, "total buffer size=%d, spare buffer size=%d\n", + port_buffer->port_buffer_size, + port_buffer->spare_buffer_size); +out: + kfree(out); + return err; +} + +static int port_set_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer) +{ + struct mlx5_core_dev *mdev = priv->mdev; + int sz = MLX5_ST_SZ_BYTES(pbmc_reg); + void *buffer; + void *in; + int err; + int i; + + in = kzalloc(sz, GFP_KERNEL); + if (!in) + return -ENOMEM; + + err = mlx5e_port_query_pbmc(mdev, in); + if (err) + goto out; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + buffer = MLX5_ADDR_OF(pbmc_reg, in, buffer[i]); + + MLX5_SET(bufferx_reg, buffer, size, + port_buffer->buffer[i].size >> MLX5E_BUFFER_CELL_SHIFT); + MLX5_SET(bufferx_reg, buffer, lossy, + port_buffer->buffer[i].lossy); + MLX5_SET(bufferx_reg, buffer, xoff_threshold, + port_buffer->buffer[i].xoff >> MLX5E_BUFFER_CELL_SHIFT); + MLX5_SET(bufferx_reg, buffer, xon_threshold, + port_buffer->buffer[i].xon >> MLX5E_BUFFER_CELL_SHIFT); + } + + err = mlx5e_port_set_pbmc(mdev, in); +out: + kfree(in); + return err; +} + +/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) */ +static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) +{ + u32 speed; + u32 xoff; + int err; + + err = mlx5e_port_linkspeed(priv->mdev, &speed); + if (err) { + mlx5_core_warn(priv->mdev, "cannot get port speed\n"); + speed = SPEED_40000; + } + speed = max_t(u32, speed, SPEED_40000); + xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100; + + mlx5e_dbg(HW, priv, "%s: xoff=%d\n", __func__, xoff); + return xoff; +} + +static int update_xoff_threshold(struct mlx5e_port_buffer *port_buffer, + u32 xoff) +{ + int i; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + if (port_buffer->buffer[i].lossy) { + port_buffer->buffer[i].xoff = 0; + port_buffer->buffer[i].xon = 0; + continue; + } + + if (port_buffer->buffer[i].size < + (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) + return -ENOMEM; + + port_buffer->buffer[i].xoff = port_buffer->buffer[i].size - xoff; + port_buffer->buffer[i].xon = + port_buffer->buffer[i].xoff - MLX5E_MAX_PORT_MTU; + } + + return 0; +} + +/** + * update_buffer_lossy() + * mtu: device's MTU + * pfc_en: current pfc configuration + * buffer: current prio to buffer mapping + * xoff: xoff value + * port_buffer: port receive buffer configuration + * change: + * + * Update buffer configuration based on pfc configuraiton and priority + * to buffer mapping. + * Buffer's lossy bit is changed to: + * lossless if there is at least one PFC enabled priority mapped to this buffer + * lossy if all priorities mapped to this buffer are PFC disabled + * + * Return: + * Return 0 if no error. + * Set change to true if buffer configuration is modified. + */ +static int update_buffer_lossy(unsigned int mtu, + u8 pfc_en, u8 *buffer, u32 xoff, + struct mlx5e_port_buffer *port_buffer, + bool *change) +{ + bool changed = false; + u8 lossy_count; + u8 prio_count; + u8 lossy; + int prio; + int err; + int i; + + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + prio_count = 0; + lossy_count = 0; + + for (prio = 0; prio < MLX5E_MAX_PRIORITY; prio++) { + if (buffer[prio] != i) + continue; + + prio_count++; + lossy_count += !(pfc_en & (1 << prio)); + } + + if (lossy_count == prio_count) + lossy = 1; + else /* lossy_count < prio_count */ + lossy = 0; + + if (lossy != port_buffer->buffer[i].lossy) { + port_buffer->buffer[i].lossy = lossy; + changed = true; + } + } + + if (changed) { + err = update_xoff_threshold(port_buffer, xoff); + if (err) + return err; + + *change = true; + } + + return 0; +} + +int mlx5e_port_manual_buffer_config(struct mlx5e_priv *priv, + u32 change, unsigned int mtu, + struct ieee_pfc *pfc, + u32 *buffer_size, + u8 *prio2buffer) +{ + struct mlx5e_port_buffer port_buffer; + u32 xoff = calculate_xoff(priv, mtu); + bool update_prio2buffer = false; + u8 buffer[MLX5E_MAX_PRIORITY]; + bool update_buffer = false; + u32 total_used = 0; + u8 curr_pfc_en; + int err; + int i; + + mlx5e_dbg(HW, priv, "%s: change=%x\n", __func__, change); + + err = mlx5e_port_query_buffer(priv, &port_buffer); + if (err) + return err; + + if (change & MLX5E_PORT_BUFFER_CABLE_LEN) { + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_PFC) { + err = mlx5e_port_query_priority2buffer(priv->mdev, buffer); + if (err) + return err; + + err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, + &port_buffer, &update_buffer); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_PRIO2BUFFER) { + update_prio2buffer = true; + err = mlx5_query_port_pfc(priv->mdev, &curr_pfc_en, NULL); + if (err) + return err; + + err = update_buffer_lossy(mtu, curr_pfc_en, prio2buffer, xoff, + &port_buffer, &update_buffer); + if (err) + return err; + } + + if (change & MLX5E_PORT_BUFFER_SIZE) { + for (i = 0; i < MLX5E_MAX_BUFFER; i++) { + mlx5e_dbg(HW, priv, "%s: buffer[%d]=%d\n", __func__, i, buffer_size[i]); + if (!port_buffer.buffer[i].lossy && !buffer_size[i]) { + mlx5e_dbg(HW, priv, "%s: lossless buffer[%d] size cannot be zero\n", + __func__, i); + return -EINVAL; + } + + port_buffer.buffer[i].size = buffer_size[i]; + total_used += buffer_size[i]; + } + + mlx5e_dbg(HW, priv, "%s: total buffer requested=%d\n", __func__, total_used); + + if (total_used > port_buffer.port_buffer_size) + return -EINVAL; + + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + + /* Need to update buffer configuration if xoff value is changed */ + if (!update_buffer && xoff != priv->dcbx.xoff) { + update_buffer = true; + err = update_xoff_threshold(&port_buffer, xoff); + if (err) + return err; + } + priv->dcbx.xoff = xoff; + + /* Apply the settings */ + if (update_buffer) { + err = port_set_buffer(priv, &port_buffer); + if (err) + return err; + } + + if (update_prio2buffer) + err = mlx5e_port_set_priority2buffer(priv->mdev, prio2buffer); + + return err; +} Copied: stable/11/sys/dev/mlx5/mlx5_en/port_buffer.h (from r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_en/port_buffer.h Mon Oct 7 09:40:57 2019 (r353236, copy of r352981, head/sys/dev/mlx5/mlx5_en/port_buffer.h) @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2018 Mellanox Technologies. 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 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 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 __MLX5_EN_PORT_BUFFER_H__ +#define __MLX5_EN_PORT_BUFFER_H__ + +#include "en.h" +#include + +#define MLX5E_MAX_BUFFER 8 +#define MLX5E_BUFFER_CELL_SHIFT 7 +#define MLX5E_DEFAULT_CABLE_LEN 7 /* 7 meters */ + +#define MLX5_BUFFER_SUPPORTED(mdev) (MLX5_CAP_GEN(mdev, pcam_reg) && \ + MLX5_CAP_PCAM_REG(mdev, pbmc) && \ + MLX5_CAP_PCAM_REG(mdev, pptb)) + +enum { + MLX5E_PORT_BUFFER_CABLE_LEN = BIT(0), + MLX5E_PORT_BUFFER_PFC = BIT(1), + MLX5E_PORT_BUFFER_PRIO2BUFFER = BIT(2), + MLX5E_PORT_BUFFER_SIZE = BIT(3), +}; + +struct mlx5e_bufferx_reg { + u8 lossy; + u8 epsb; + u32 size; + u32 xoff; + u32 xon; +}; + +struct mlx5e_port_buffer { + u32 port_buffer_size; + u32 spare_buffer_size; + struct mlx5e_bufferx_reg buffer[MLX5E_MAX_BUFFER]; +}; + +#define IEEE_8021QAZ_MAX_TCS 8 + +struct ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[IEEE_8021QAZ_MAX_TCS]; + __u64 indications[IEEE_8021QAZ_MAX_TCS]; +}; + +int mlx5e_port_manual_buffer_config(struct mlx5e_priv *priv, + u32 change, unsigned int mtu, + struct ieee_pfc *pfc, + u32 *buffer_size, + u8 *prio2buffer); + +int mlx5e_port_query_buffer(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer); +#endif Modified: stable/11/sys/dev/mlx5/port.h ============================================================================== --- stable/11/sys/dev/mlx5/port.h Mon Oct 7 09:39:05 2019 (r353235) +++ stable/11/sys/dev/mlx5/port.h Mon Oct 7 09:40:57 2019 (r353236) @@ -179,7 +179,16 @@ enum mlx5_qpts_trust_state { MLX5_QPTS_TRUST_DSCP = 2, MLX5_QPTS_TRUST_BOTH = 3, }; +struct mlx5e_port_eth_proto { + u32 cap; + u32 admin; + u32 oper; +}; +#ifndef SPEED_40000 +#define SPEED_40000 40000 +#endif + #define MLX5E_PROT_MASK(link_mode) (1 << (link_mode)) #define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF @@ -251,5 +260,15 @@ int mlx5_set_dscp2prio(struct mlx5_core_dev *mdev, con int mlx5_query_dscp2prio(struct mlx5_core_dev *mdev, u8 *dscp2prio); int mlx5_query_pddr_range_info(struct mlx5_core_dev *mdev, u8 local_port, u8 *is_er_type); + +u32 mlx5e_port_ptys2speed(struct mlx5_core_dev *mdev, u32 eth_proto_oper); +int mlx5e_port_linkspeed(struct mlx5_core_dev *mdev, u32 *speed); +int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext, + struct mlx5e_port_eth_proto *eproto); + +int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out); +int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in); +int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer); +int mlx5e_port_set_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer); #endif /* __MLX5_PORT_H__ */ Modified: stable/11/sys/modules/mlx5en/Makefile ============================================================================== --- stable/11/sys/modules/mlx5en/Makefile Mon Oct 7 09:39:05 2019 (r353235) +++ stable/11/sys/modules/mlx5en/Makefile Mon Oct 7 09:40:57 2019 (r353236) @@ -10,6 +10,7 @@ mlx5_en_tx.c \ mlx5_en_flow_table.c \ mlx5_en_rx.c \ mlx5_en_txrx.c \ +mlx5_en_port_buffer.c \ device_if.h bus_if.h vnode_if.h pci_if.h \ opt_inet.h opt_inet6.h opt_rss.h From owner-svn-src-all@freebsd.org Mon Oct 7 09:42:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EBF031282E4; Mon, 7 Oct 2019 09:42:09 +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 46mwVn5sw0z3CkX; Mon, 7 Oct 2019 09:42:09 +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 ACAE7CC70; Mon, 7 Oct 2019 09:42:09 +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 x979g9ax098092; Mon, 7 Oct 2019 09:42:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979g98v098090; Mon, 7 Oct 2019 09:42:09 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070942.x979g98v098090@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 09:42:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353237 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353237 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:42:10 -0000 Author: hselasky Date: Mon Oct 7 09:42:08 2019 New Revision: 353237 URL: https://svnweb.freebsd.org/changeset/base/353237 Log: MFC r352982: Add support for buffer parameter manipulations in mlx5en(4). The following sysctls are added: dev.mce.N.conf.qos.cable_length dev.mce.N.conf.qos.buffers_size dev.mce.N.conf.qos.buffers_prio Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:40:57 2019 (r353236) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:42:08 2019 (r353237) @@ -1200,5 +1200,6 @@ void mlx5e_modify_rx_dma(struct mlx5e_priv *priv, uint void mlx5e_resume_sq(struct mlx5e_sq *sq); void mlx5e_update_sq_inline(struct mlx5e_sq *sq); void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); +int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); #endif /* _MLX5_EN_H_ */ Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:40:57 2019 (r353236) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:42:08 2019 (r353237) @@ -26,6 +26,7 @@ */ #include "en.h" +#include "port_buffer.h" #include void @@ -429,6 +430,99 @@ done: return (err); } +int +mlx5e_update_buf_lossy(struct mlx5e_priv *priv) +{ + struct ieee_pfc pfc; + + PRIV_ASSERT_LOCKED(priv); + bzero(&pfc, sizeof(pfc)); + pfc.pfc_en = priv->params.rx_priority_flow_control; + return (-mlx5e_port_manual_buffer_config(priv, MLX5E_PORT_BUFFER_PFC, + priv->params_ethtool.hw_mtu, &pfc, NULL, NULL)); +} + +static int +mlx5e_buf_size_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + u32 buf_size[MLX5E_MAX_BUFFER]; + struct mlx5e_port_buffer port_buffer; + int error, i; + + priv = arg1; + PRIV_LOCK(priv); + error = -mlx5e_port_query_buffer(priv, &port_buffer); + if (error != 0) + goto done; + for (i = 0; i < nitems(buf_size); i++) + buf_size[i] = port_buffer.buffer[i].size; + error = SYSCTL_OUT(req, buf_size, sizeof(buf_size)); + if (error != 0 || req->newptr == NULL) + goto done; + error = SYSCTL_IN(req, buf_size, sizeof(buf_size)); + if (error != 0) + goto done; + error = -mlx5e_port_manual_buffer_config(priv, MLX5E_PORT_BUFFER_SIZE, + priv->params_ethtool.hw_mtu, NULL, buf_size, NULL); +done: + PRIV_UNLOCK(priv); + return (error); +} + +static int +mlx5e_buf_prio_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + struct mlx5_core_dev *mdev; + u8 buffer[MLX5E_MAX_BUFFER]; + int error; + + priv = arg1; + mdev = priv->mdev; + PRIV_LOCK(priv); + error = -mlx5e_port_query_priority2buffer(mdev, buffer); + if (error != 0) + goto done; + error = SYSCTL_OUT(req, buffer, MLX5E_MAX_BUFFER); + if (error != 0 || req->newptr == NULL) + goto done; + error = SYSCTL_IN(req, buffer, MLX5E_MAX_BUFFER); + if (error != 0) + goto done; + error = -mlx5e_port_manual_buffer_config(priv, + MLX5E_PORT_BUFFER_PRIO2BUFFER, + priv->params_ethtool.hw_mtu, NULL, NULL, buffer); + if (error == 0) + error = mlx5e_update_buf_lossy(priv); +done: + PRIV_UNLOCK(priv); + return (error); +} + +static int +mlx5e_cable_length_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + u_int cable_len; + int error; + + priv = arg1; + PRIV_LOCK(priv); + cable_len = priv->dcbx.cable_len; + error = sysctl_handle_int(oidp, &cable_len, 0, req); + if (error == 0 && req->newptr != NULL && + cable_len != priv->dcbx.cable_len) { + error = -mlx5e_port_manual_buffer_config(priv, + MLX5E_PORT_BUFFER_CABLE_LEN, priv->params_ethtool.hw_mtu, + NULL, NULL, NULL); + if (error == 0) + priv->dcbx.cable_len = cable_len; + } + PRIV_UNLOCK(priv); + return (error); +} + #define MLX5_PARAM_OFFSET(n) \ __offsetof(struct mlx5e_priv, params_ethtool.n) @@ -1163,6 +1257,7 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) { struct sysctl_oid *node, *qos_node; const char *pnameunit; + struct mlx5e_port_buffer port_buffer; unsigned x; int i; @@ -1312,5 +1407,23 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) A B : A); #undef B #undef A + } + + if (mlx5e_port_query_buffer(priv, &port_buffer) == 0) { + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "buffers_size", + CTLTYPE_U32 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_buf_size_handler, "IU", + "Set buffers sizes"); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "buffers_prio", + CTLTYPE_U8 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_buf_prio_handler, "CU", + "Set prio to buffers mapping"); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "cable_length", + CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_cable_length_handler, "IU", + "Set cable length in meters for xoff threshold calculation"); } } Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:40:57 2019 (r353236) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:42:08 2019 (r353237) @@ -3866,8 +3866,11 @@ mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_A } /* check if update is required */ - if (rx_pfc != priv->params.rx_priority_flow_control) + if (rx_pfc != priv->params.rx_priority_flow_control) { err = -mlx5e_set_port_pfc(priv); + if (err == 0) + err = mlx5e_update_buf_lossy(priv); + } done: if (err != 0) priv->params.rx_priority_flow_control= rx_pfc; From owner-svn-src-all@freebsd.org Mon Oct 7 09:42:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D5BC6128369; Mon, 7 Oct 2019 09:42:58 +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 46mwWk5FzYz3D3y; Mon, 7 Oct 2019 09:42:58 +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 984C5CC91; Mon, 7 Oct 2019 09:42:58 +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 x979gwYn099122; Mon, 7 Oct 2019 09:42:58 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979gwG6099119; Mon, 7 Oct 2019 09:42:58 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070942.x979gwG6099119@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 09:42:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353238 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353238 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:42:58 -0000 Author: hselasky Date: Mon Oct 7 09:42:57 2019 New Revision: 353238 URL: https://svnweb.freebsd.org/changeset/base/353238 Log: MFC r352982: Add support for buffer parameter manipulations in mlx5en(4). The following sysctls are added: dev.mce.N.conf.qos.cable_length dev.mce.N.conf.qos.buffers_size dev.mce.N.conf.qos.buffers_prio Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:42:08 2019 (r353237) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:42:57 2019 (r353238) @@ -1136,5 +1136,6 @@ void mlx5e_modify_rx_dma(struct mlx5e_priv *priv, uint void mlx5e_resume_sq(struct mlx5e_sq *sq); void mlx5e_update_sq_inline(struct mlx5e_sq *sq); void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); +int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); #endif /* _MLX5_EN_H_ */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:42:08 2019 (r353237) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:42:57 2019 (r353238) @@ -26,6 +26,7 @@ */ #include "en.h" +#include "port_buffer.h" #include void @@ -429,6 +430,99 @@ done: return (err); } +int +mlx5e_update_buf_lossy(struct mlx5e_priv *priv) +{ + struct ieee_pfc pfc; + + PRIV_ASSERT_LOCKED(priv); + bzero(&pfc, sizeof(pfc)); + pfc.pfc_en = priv->params.rx_priority_flow_control; + return (-mlx5e_port_manual_buffer_config(priv, MLX5E_PORT_BUFFER_PFC, + priv->params_ethtool.hw_mtu, &pfc, NULL, NULL)); +} + +static int +mlx5e_buf_size_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + u32 buf_size[MLX5E_MAX_BUFFER]; + struct mlx5e_port_buffer port_buffer; + int error, i; + + priv = arg1; + PRIV_LOCK(priv); + error = -mlx5e_port_query_buffer(priv, &port_buffer); + if (error != 0) + goto done; + for (i = 0; i < nitems(buf_size); i++) + buf_size[i] = port_buffer.buffer[i].size; + error = SYSCTL_OUT(req, buf_size, sizeof(buf_size)); + if (error != 0 || req->newptr == NULL) + goto done; + error = SYSCTL_IN(req, buf_size, sizeof(buf_size)); + if (error != 0) + goto done; + error = -mlx5e_port_manual_buffer_config(priv, MLX5E_PORT_BUFFER_SIZE, + priv->params_ethtool.hw_mtu, NULL, buf_size, NULL); +done: + PRIV_UNLOCK(priv); + return (error); +} + +static int +mlx5e_buf_prio_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + struct mlx5_core_dev *mdev; + u8 buffer[MLX5E_MAX_BUFFER]; + int error; + + priv = arg1; + mdev = priv->mdev; + PRIV_LOCK(priv); + error = -mlx5e_port_query_priority2buffer(mdev, buffer); + if (error != 0) + goto done; + error = SYSCTL_OUT(req, buffer, MLX5E_MAX_BUFFER); + if (error != 0 || req->newptr == NULL) + goto done; + error = SYSCTL_IN(req, buffer, MLX5E_MAX_BUFFER); + if (error != 0) + goto done; + error = -mlx5e_port_manual_buffer_config(priv, + MLX5E_PORT_BUFFER_PRIO2BUFFER, + priv->params_ethtool.hw_mtu, NULL, NULL, buffer); + if (error == 0) + error = mlx5e_update_buf_lossy(priv); +done: + PRIV_UNLOCK(priv); + return (error); +} + +static int +mlx5e_cable_length_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv; + u_int cable_len; + int error; + + priv = arg1; + PRIV_LOCK(priv); + cable_len = priv->dcbx.cable_len; + error = sysctl_handle_int(oidp, &cable_len, 0, req); + if (error == 0 && req->newptr != NULL && + cable_len != priv->dcbx.cable_len) { + error = -mlx5e_port_manual_buffer_config(priv, + MLX5E_PORT_BUFFER_CABLE_LEN, priv->params_ethtool.hw_mtu, + NULL, NULL, NULL); + if (error == 0) + priv->dcbx.cable_len = cable_len; + } + PRIV_UNLOCK(priv); + return (error); +} + #define MLX5_PARAM_OFFSET(n) \ __offsetof(struct mlx5e_priv, params_ethtool.n) @@ -1163,6 +1257,7 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) { struct sysctl_oid *node, *qos_node; const char *pnameunit; + struct mlx5e_port_buffer port_buffer; unsigned x; int i; @@ -1312,5 +1407,23 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) A B : A); #undef B #undef A + } + + if (mlx5e_port_query_buffer(priv, &port_buffer) == 0) { + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "buffers_size", + CTLTYPE_U32 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_buf_size_handler, "IU", + "Set buffers sizes"); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "buffers_prio", + CTLTYPE_U8 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_buf_prio_handler, "CU", + "Set prio to buffers mapping"); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, "cable_length", + CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, mlx5e_cable_length_handler, "IU", + "Set cable length in meters for xoff threshold calculation"); } } Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:42:08 2019 (r353237) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:42:57 2019 (r353238) @@ -3748,8 +3748,11 @@ mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_A } /* check if update is required */ - if (rx_pfc != priv->params.rx_priority_flow_control) + if (rx_pfc != priv->params.rx_priority_flow_control) { err = -mlx5e_set_port_pfc(priv); + if (err == 0) + err = mlx5e_update_buf_lossy(priv); + } done: if (err != 0) priv->params.rx_priority_flow_control= rx_pfc; From owner-svn-src-all@freebsd.org Mon Oct 7 09:45:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D04E6128460; Mon, 7 Oct 2019 09:45:22 +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 46mwZV5XF7z3DF9; Mon, 7 Oct 2019 09:45:22 +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 A1E40CC96; Mon, 7 Oct 2019 09:45:22 +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 x979jMh9099389; Mon, 7 Oct 2019 09:45:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979jKFq099380; Mon, 7 Oct 2019 09:45:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070945.x979jKFq099380@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 09:45:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353239 - in stable/12: share/man/man4 sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353239 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:45:22 -0000 Author: hselasky Date: Mon Oct 7 09:45:20 2019 New Revision: 353239 URL: https://svnweb.freebsd.org/changeset/base/353239 Log: MFC r352983 and r353001: Move EEPROM information query from a sysctl in mlx5en(4) to an ioctl in mlx5core. The EEPROM information is not only a property of the mlx5en(4) driver. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/share/man/man4/mlx5io.4 stable/12/sys/dev/mlx5/diagnostics.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/12/sys/dev/mlx5/mlx5io.h stable/12/sys/dev/mlx5/port.h Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/mlx5io.4 ============================================================================== --- stable/12/share/man/man4/mlx5io.4 Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/share/man/man4/mlx5io.4 Mon Oct 7 09:45:20 2019 (r353239) @@ -25,18 +25,18 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd October 2, 2019 .Dt mlx5io 4 .Os .Sh NAME .Nm mlx5io -.Nd IOCTL interface to manage Connect-X 4/5 Mellanox network adapters +.Nd IOCTL interface to manage Connect-X 4/5/6 Mellanox network adapters .Sh SYNOPSIS .In dev/mlx5/mlx5io.h .Sh DESCRIPTION The .Nm -interface is provided for management of the Connect-X 4 and 5 network adapters +interface is provided for management of the Connect-X4, 5 and 6 network adapters in the aspects not covered by the generic network configuration, mostly related to the PCIe attachment and internal card working. Interface consists of the commands, which are passed by means of @@ -147,6 +147,29 @@ Requests PCIe link-level reset on the device. The address of the device is specified by the .Vt struct mlx5_tool_addr structure, which should be passed as an argument. +.It Dv MLX5_EEPROM_GET +Fetch EEPROM information. +The argument to the command should point to the input/output +.Vt struct mlx5_eeprom_get +structure where, the +.Dv devaddr +field specifies the address of the device. +.Bd -literal +struct mlx5_eeprom_get { + struct mlx5_tool_addr devaddr; + size_t eeprom_info_page_valid; + uint32_t *eeprom_info_buf; + size_t eeprom_info_out_len; +}; +.Ed +.Pp +On successfull return, the +.Dv eeprom_info_out_len +field reports the length of the EEPROM information. +.Dv eeprom_info_buf +field contains the actual EEPROM information. +.Dv eeprom_info_page_valid +field reports the third page validity. .El .Sh FILES The Modified: stable/12/sys/dev/mlx5/diagnostics.h ============================================================================== --- stable/12/sys/dev/mlx5/diagnostics.h Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/diagnostics.h Mon Oct 7 09:45:20 2019 (r353239) @@ -32,6 +32,8 @@ #define MLX5_CORE_DIAGNOSTICS_STRUCT(n, s, t) s, #define MLX5_CORE_DIAGNOSTICS_ENTRY(n, s, t) { #s, (t) }, +static MALLOC_DEFINE(M_MLX5_EEPROM, "MLX5EEPROM", "MLX5 EEPROM information"); + struct mlx5_core_diagnostics_entry { const char *desc; u16 counter_id; @@ -127,6 +129,18 @@ union mlx5_core_general_diagnostics { extern const struct mlx5_core_diagnostics_entry mlx5_core_general_diagnostics_table[MLX5_CORE_GENERAL_DIAGNOSTICS_NUM]; +struct mlx5_eeprom { + int lock_bit; + int i2c_addr; + int page_num; + int device_addr; + int module_num; + int len; + int type; + int page_valid; + u32 *data; +}; + /* function prototypes */ int mlx5_core_set_diagnostics_full(struct mlx5_core_dev *mdev, u8 enable_pci, u8 enable_general); @@ -134,5 +148,8 @@ int mlx5_core_get_diagnostics_full(struct mlx5_core_de union mlx5_core_pci_diagnostics *ppci, union mlx5_core_general_diagnostics *pgen); int mlx5_core_supports_diagnostics(struct mlx5_core_dev *mdev, u16 counter_id); +int mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee); #endif /* MLX5_CORE_DIAGNOSTICS_H */ Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 09:45:20 2019 (r353239) @@ -26,7 +26,10 @@ */ #include +#include #include +#include +#include const struct mlx5_core_diagnostics_entry mlx5_core_pci_diagnostics_table[ @@ -284,3 +287,156 @@ int mlx5_core_supports_diagnostics(struct mlx5_core_de } return 0; /* not supported counter */ } + +/* + * Read the first three bytes of the eeprom in order to get the needed info + * for the whole reading. + * Byte 0 - Identifier byte + * Byte 1 - Revision byte + * Byte 2 - Status byte + */ +int +mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + u32 data = 0; + int size_read = 0; + int ret; + + ret = mlx5_query_module_num(dev, &eeprom->module_num); + if (ret) { + mlx5_core_err(dev, "Failed query module error=%d\n", ret); + return (-ret); + } + + /* Read the first three bytes to get Identifier, Revision and Status */ + ret = mlx5_query_eeprom(dev, eeprom->i2c_addr, eeprom->page_num, + eeprom->device_addr, MLX5_EEPROM_INFO_BYTES, eeprom->module_num, &data, + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed query EEPROM module error=0x%x\n", ret); + return (-ret); + } + + switch (data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) { + case SFF_8024_ID_QSFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + break; + case SFF_8024_ID_QSFPPLUS: + case SFF_8024_ID_QSFP28: + if ((data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) == SFF_8024_ID_QSFP28 || + ((data & MLX5_EEPROM_REVISION_ID_BYTE_MASK) >> 8) >= 0x3) { + eeprom->type = MLX5_ETH_MODULE_SFF_8636; + eeprom->len = MLX5_ETH_MODULE_SFF_8636_LEN; + } else { + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + } + if ((data & MLX5_EEPROM_PAGE_3_VALID_BIT_MASK) == 0) + eeprom->page_valid = 1; + break; + case SFF_8024_ID_SFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8472; + eeprom->len = MLX5_ETH_MODULE_SFF_8472_LEN; + break; + default: + mlx5_core_err(dev, "Not recognized cable type = 0x%x(%s)\n", + data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, + sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); + return (EINVAL); + } + return (0); +} + +/* Read both low and high pages of the eeprom */ +int +mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee) +{ + int size_read = 0; + int ret; + + if (ee->len == 0) + return (EINVAL); + + /* Read low page of the eeprom */ + while (ee->device_addr < ee->len) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, ee->device_addr, + ee->len - ee->device_addr, ee->module_num, + ee->data + (ee->device_addr / 4), &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", ret); + return (-ret); + } + ee->device_addr += size_read; + } + + /* Read high page of the eeprom */ + if (ee->page_valid == 1) { + ee->device_addr = MLX5_EEPROM_HIGH_PAGE_OFFSET; + ee->page_num = MLX5_EEPROM_HIGH_PAGE; + size_read = 0; + while (ee->device_addr < MLX5_EEPROM_PAGE_LENGTH) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, + ee->device_addr, MLX5_EEPROM_PAGE_LENGTH - ee->device_addr, + ee->module_num, ee->data + (ee->len / 4) + + ((ee->device_addr - MLX5_EEPROM_HIGH_PAGE_OFFSET) / 4), + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", + ret); + return (-ret); + } + ee->device_addr += size_read; + } + } + return (0); +} + +/* + * Read cable EEPROM module information by first inspecting the first + * three bytes to get the initial information for a whole reading. + * Information will be printed to dmesg. + */ +int +mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + int error; + + eeprom->i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom->device_addr = 0; + eeprom->page_num = MLX5_EEPROM_LOW_PAGE; + eeprom->page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, eeprom); + if (error) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom->data = malloc(eeprom->len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + + /* Read the whole eeprom information */ + error = mlx5_get_eeprom(dev, eeprom); + if (error) { + mlx5_core_err(dev, "Failed reading EEPROM\n"); + error = 0; + /* + * Continue printing partial information in case of + * an error + */ + } + free(eeprom->data, M_MLX5_EEPROM); + + return (error); +} + + Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:45:20 2019 (r353239) @@ -32,8 +32,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include +#include static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); @@ -306,6 +308,54 @@ mlx5_fw_reset(struct mlx5_core_dev *mdev) } static int +mlx5_eeprom_copyout(struct mlx5_core_dev *dev, struct mlx5_eeprom_get *eeprom_info) +{ + struct mlx5_eeprom eeprom; + int error; + + eeprom.i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom.device_addr = 0; + eeprom.page_num = MLX5_EEPROM_LOW_PAGE; + eeprom.page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, &eeprom); + if (error != 0) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + eeprom_info->eeprom_info_page_valid = eeprom.page_valid; + eeprom_info->eeprom_info_out_len = eeprom.len; + + if (eeprom_info->eeprom_info_buf == NULL) + return (0); + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom.data = malloc(eeprom.len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + + /* Read the whole eeprom information */ + error = mlx5_get_eeprom(dev, &eeprom); + if (error != 0) { + mlx5_core_err(dev, "Failed reading EEPROM error = %d\n", + error); + error = 0; + /* + * Continue printing partial information in case of + * an error + */ + } + error = copyout(eeprom.data, eeprom_info->eeprom_info_buf, + eeprom.len); + free(eeprom.data, M_MLX5_EEPROM); + + return (error); +} + +static int mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td) { @@ -314,6 +364,7 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d struct mlx5_tool_addr *devaddr; struct mlx5_fw_update *fu; struct firmware fake_fw; + struct mlx5_eeprom_get *eeprom_info; int error; error = 0; @@ -391,6 +442,18 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d if (error != 0) break; error = mlx5_fw_reset(mdev); + break; + case MLX5_EEPROM_GET: + if ((fflag & FREAD) == 0) { + error = EBADF; + break; + } + eeprom_info = (struct mlx5_eeprom_get *)data; + devaddr = &eeprom_info->devaddr; + error = mlx5_dbsf_to_core(devaddr, &mdev); + if (error != 0) + break; + error = mlx5_eeprom_copyout(mdev, eeprom_info); break; default: error = ENOTTY; Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:45:20 2019 (r353239) @@ -713,34 +713,6 @@ struct mlx5e_params_ethtool { u8 trust_state; }; -/* EEPROM Standards for plug in modules */ -#ifndef MLX5E_ETH_MODULE_SFF_8472 -#define MLX5E_ETH_MODULE_SFF_8472 0x1 -#define MLX5E_ETH_MODULE_SFF_8472_LEN 128 -#endif - -#ifndef MLX5E_ETH_MODULE_SFF_8636 -#define MLX5E_ETH_MODULE_SFF_8636 0x2 -#define MLX5E_ETH_MODULE_SFF_8636_LEN 256 -#endif - -#ifndef MLX5E_ETH_MODULE_SFF_8436 -#define MLX5E_ETH_MODULE_SFF_8436 0x3 -#define MLX5E_ETH_MODULE_SFF_8436_LEN 256 -#endif - -/* EEPROM I2C Addresses */ -#define MLX5E_I2C_ADDR_LOW 0x50 -#define MLX5E_I2C_ADDR_HIGH 0x51 - -#define MLX5E_EEPROM_LOW_PAGE 0x0 -#define MLX5E_EEPROM_HIGH_PAGE 0x3 - -#define MLX5E_EEPROM_HIGH_PAGE_OFFSET 128 -#define MLX5E_EEPROM_PAGE_LENGTH 256 - -#define MLX5E_EEPROM_INFO_BYTES 0x3 - struct mlx5e_cq { /* data path - accessed per cqe */ struct mlx5_cqwq wq; Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:45:20 2019 (r353239) @@ -27,7 +27,6 @@ #include "en.h" #include "port_buffer.h" -#include void mlx5e_create_stats(struct sysctl_ctx_list *ctx, @@ -901,214 +900,6 @@ done: return (error); } -/* - * Read the first three bytes of the eeprom in order to get the needed info - * for the whole reading. - * Byte 0 - Identifier byte - * Byte 1 - Revision byte - * Byte 2 - Status byte - */ -static int -mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct mlx5e_eeprom *eeprom) -{ - struct mlx5_core_dev *dev = priv->mdev; - u32 data = 0; - int size_read = 0; - int ret; - - ret = mlx5_query_module_num(dev, &eeprom->module_num); - if (ret) { - mlx5_en_err(priv->ifp, "Failed query module error=%d\n", - ret); - return (ret); - } - - /* Read the first three bytes to get Identifier, Revision and Status */ - ret = mlx5_query_eeprom(dev, eeprom->i2c_addr, eeprom->page_num, - eeprom->device_addr, MLX5E_EEPROM_INFO_BYTES, eeprom->module_num, &data, - &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed query eeprom module error=0x%x\n", ret); - return (ret); - } - - switch (data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) { - case SFF_8024_ID_QSFP: - eeprom->type = MLX5E_ETH_MODULE_SFF_8436; - eeprom->len = MLX5E_ETH_MODULE_SFF_8436_LEN; - break; - case SFF_8024_ID_QSFPPLUS: - case SFF_8024_ID_QSFP28: - if ((data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) == SFF_8024_ID_QSFP28 || - ((data & MLX5_EEPROM_REVISION_ID_BYTE_MASK) >> 8) >= 0x3) { - eeprom->type = MLX5E_ETH_MODULE_SFF_8636; - eeprom->len = MLX5E_ETH_MODULE_SFF_8636_LEN; - } else { - eeprom->type = MLX5E_ETH_MODULE_SFF_8436; - eeprom->len = MLX5E_ETH_MODULE_SFF_8436_LEN; - } - if ((data & MLX5_EEPROM_PAGE_3_VALID_BIT_MASK) == 0) - eeprom->page_valid = 1; - break; - case SFF_8024_ID_SFP: - eeprom->type = MLX5E_ETH_MODULE_SFF_8472; - eeprom->len = MLX5E_ETH_MODULE_SFF_8472_LEN; - break; - default: - mlx5_en_err(priv->ifp, - "Not recognized cable type = 0x%x(%s)\n", - data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, - sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); - return (EINVAL); - } - return (0); -} - -/* Read both low and high pages of the eeprom */ -static int -mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e_eeprom *ee) -{ - struct mlx5_core_dev *dev = priv->mdev; - int size_read = 0; - int ret; - - if (ee->len == 0) - return (EINVAL); - - /* Read low page of the eeprom */ - while (ee->device_addr < ee->len) { - ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, ee->device_addr, - ee->len - ee->device_addr, ee->module_num, - ee->data + (ee->device_addr / 4), &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom, error = 0x%02x\n",ret); - return (ret); - } - ee->device_addr += size_read; - } - - /* Read high page of the eeprom */ - if (ee->page_valid) { - ee->device_addr = MLX5E_EEPROM_HIGH_PAGE_OFFSET; - ee->page_num = MLX5E_EEPROM_HIGH_PAGE; - size_read = 0; - while (ee->device_addr < MLX5E_EEPROM_PAGE_LENGTH) { - ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, - ee->device_addr, MLX5E_EEPROM_PAGE_LENGTH - ee->device_addr, - ee->module_num, ee->data + (ee->len / 4) + - ((ee->device_addr - MLX5E_EEPROM_HIGH_PAGE_OFFSET) / 4), - &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom, error = 0x%02x\n", - ret); - return (ret); - } - ee->device_addr += size_read; - } - } - return (0); -} - -static void -mlx5e_print_eeprom(struct mlx5e_eeprom *eeprom) -{ - int row; - int index_in_row; - int byte_to_write = 0; - int line_length = 16; - - printf("\nOffset\t\tValues\n"); - printf("------\t\t------"); - while (byte_to_write < eeprom->len) { - printf("\n0x%04X\t\t", byte_to_write); - for (index_in_row = 0; index_in_row < line_length; index_in_row++) { - printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); - byte_to_write++; - } - } - - if (eeprom->page_valid) { - row = MLX5E_EEPROM_HIGH_PAGE_OFFSET; - printf("\n\nUpper Page 0x03\n"); - printf("\nOffset\t\tValues\n"); - printf("------\t\t------"); - while (row < MLX5E_EEPROM_PAGE_LENGTH) { - printf("\n0x%04X\t\t", row); - for (index_in_row = 0; index_in_row < line_length; index_in_row++) { - printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); - byte_to_write++; - row++; - } - } - } -} - -/* - * Read cable EEPROM module information by first inspecting the first - * three bytes to get the initial information for a whole reading. - * Information will be printed to dmesg. - */ -static int -mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) -{ - struct mlx5e_priv *priv = arg1; - struct mlx5e_eeprom eeprom; - int error; - int result = 0; - - PRIV_LOCK(priv); - error = sysctl_handle_int(oidp, &result, 0, req); - if (error || !req->newptr) - goto done; - - /* Check if device is gone */ - if (priv->gone) { - error = ENXIO; - goto done; - } - - if (result == 1) { - eeprom.i2c_addr = MLX5E_I2C_ADDR_LOW; - eeprom.device_addr = 0; - eeprom.page_num = MLX5E_EEPROM_LOW_PAGE; - eeprom.page_valid = 0; - - /* Read three first bytes to get important info */ - error = mlx5e_get_eeprom_info(priv, &eeprom); - if (error) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom's initial information\n"); - error = 0; - goto done; - } - /* - * Allocate needed length buffer and additional space for - * page 0x03 - */ - eeprom.data = malloc(eeprom.len + MLX5E_EEPROM_PAGE_LENGTH, - M_MLX5EN, M_WAITOK | M_ZERO); - - /* Read the whole eeprom information */ - error = mlx5e_get_eeprom(priv, &eeprom); - if (error) { - mlx5_en_err(priv->ifp, "Failed reading eeprom\n"); - error = 0; - /* - * Continue printing partial information in case of - * an error - */ - } - mlx5e_print_eeprom(&eeprom); - free(eeprom.data, M_MLX5EN); - } -done: - PRIV_UNLOCK(priv); - return (error); -} - static const char *mlx5e_params_desc[] = { MLX5E_PARAMS(MLX5E_STATS_DESC) }; @@ -1346,11 +1137,6 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) OID_AUTO, "device_name", CTLFLAG_RD, __DECONST(void *, pnameunit), 0, "PCI device name"); - - /* EEPROM support */ - SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, "eeprom_info", - CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, - mlx5e_read_eeprom, "I", "EEPROM information"); /* Diagnostics support */ mlx5e_create_diagnostics(priv); Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:45:20 2019 (r353239) @@ -3395,9 +3395,9 @@ out: * The internal conversion is as follows: */ if (i2c.dev_addr == 0xA0) - read_addr = MLX5E_I2C_ADDR_LOW; + read_addr = MLX5_I2C_ADDR_LOW; else if (i2c.dev_addr == 0xA2) - read_addr = MLX5E_I2C_ADDR_HIGH; + read_addr = MLX5_I2C_ADDR_HIGH; else { mlx5_en_err(ifp, "Query eeprom failed, Invalid Address: %X\n", @@ -3406,7 +3406,7 @@ out: goto err_i2c; } error = mlx5_query_eeprom(priv->mdev, - read_addr, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5_EEPROM_LOW_PAGE, (uint32_t)i2c.offset, (uint32_t)i2c.len, module_num, (uint32_t *)i2c.data, &size_read); if (error) { @@ -3418,7 +3418,7 @@ out: if (i2c.len > MLX5_EEPROM_MAX_BYTES) { error = mlx5_query_eeprom(priv->mdev, - read_addr, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5_EEPROM_LOW_PAGE, (uint32_t)(i2c.offset + size_read), (uint32_t)(i2c.len - size_read), module_num, (uint32_t *)(i2c.data + size_read), &size_read); Modified: stable/12/sys/dev/mlx5/mlx5io.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5io.h Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/mlx5io.h Mon Oct 7 09:45:20 2019 (r353239) @@ -55,11 +55,19 @@ struct mlx5_fw_update { size_t img_fw_data_len; }; +struct mlx5_eeprom_get { + struct mlx5_tool_addr devaddr; + uint32_t *eeprom_info_buf; + uint8_t eeprom_info_page_valid; + size_t eeprom_info_out_len; +}; + #define MLX5_FWDUMP_GET _IOWR('m', 1, struct mlx5_fwdump_get) #define MLX5_FWDUMP_RESET _IOW('m', 2, struct mlx5_tool_addr) #define MLX5_FWDUMP_FORCE _IOW('m', 3, struct mlx5_tool_addr) #define MLX5_FW_UPDATE _IOW('m', 4, struct mlx5_fw_update) #define MLX5_FW_RESET _IOW('m', 5, struct mlx5_tool_addr) +#define MLX5_EEPROM_GET _IOWR('m', 6, struct mlx5_eeprom_get) #ifndef _KERNEL #define MLX5_DEV_PATH _PATH_DEV"mlx5ctl" Modified: stable/12/sys/dev/mlx5/port.h ============================================================================== --- stable/12/sys/dev/mlx5/port.h Mon Oct 7 09:42:57 2019 (r353238) +++ stable/12/sys/dev/mlx5/port.h Mon Oct 7 09:45:20 2019 (r353239) @@ -50,13 +50,34 @@ enum mlx5_an_status { MLX5_AN_LINK_DOWN = 4, }; +/* EEPROM I2C Addresses */ +#define MLX5_I2C_ADDR_LOW 0x50 +#define MLX5_I2C_ADDR_HIGH 0x51 +#define MLX5_EEPROM_PAGE_LENGTH 256 #define MLX5_EEPROM_MAX_BYTES 32 #define MLX5_EEPROM_IDENTIFIER_BYTE_MASK 0x000000ff #define MLX5_EEPROM_REVISION_ID_BYTE_MASK 0x0000ff00 #define MLX5_EEPROM_PAGE_3_VALID_BIT_MASK 0x00040000 -#define MLX5_I2C_ADDR_LOW 0x50 -#define MLX5_I2C_ADDR_HIGH 0x51 -#define MLX5_EEPROM_PAGE_LENGTH 256 +#define MLX5_EEPROM_LOW_PAGE 0x0 +#define MLX5_EEPROM_HIGH_PAGE 0x3 +#define MLX5_EEPROM_HIGH_PAGE_OFFSET 128 +#define MLX5_EEPROM_INFO_BYTES 0x3 + +/* EEPROM Standards for plug in modules */ +#ifndef MLX5_ETH_MODULE_SFF_8472 +#define MLX5_ETH_MODULE_SFF_8472 0x1 +#define MLX5_ETH_MODULE_SFF_8472_LEN 128 +#endif + +#ifndef MLX5_ETH_MODULE_SFF_8636 +#define MLX5_ETH_MODULE_SFF_8636 0x2 +#define MLX5_ETH_MODULE_SFF_8636_LEN 256 +#endif + +#ifndef MLX5_ETH_MODULE_SFF_8436 +#define MLX5_ETH_MODULE_SFF_8436 0x3 +#define MLX5_ETH_MODULE_SFF_8436_LEN 256 +#endif enum mlx5e_link_speed { MLX5E_1000BASE_CX_SGMII = 0, From owner-svn-src-all@freebsd.org Mon Oct 7 09:46:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A44D128504; Mon, 7 Oct 2019 09:46:35 +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 46mwbv4K62z3DMy; Mon, 7 Oct 2019 09:46:35 +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 77404CC9D; Mon, 7 Oct 2019 09:46:35 +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 x979kZCh099545; Mon, 7 Oct 2019 09:46:35 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979kXES099535; Mon, 7 Oct 2019 09:46:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070946.x979kXES099535@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 09:46:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353240 - in stable/11: share/man/man4 sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353240 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:46:35 -0000 Author: hselasky Date: Mon Oct 7 09:46:33 2019 New Revision: 353240 URL: https://svnweb.freebsd.org/changeset/base/353240 Log: MFC r352983 and r353001: Move EEPROM information query from a sysctl in mlx5en(4) to an ioctl in mlx5core. The EEPROM information is not only a property of the mlx5en(4) driver. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/share/man/man4/mlx5io.4 stable/11/sys/dev/mlx5/diagnostics.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5io.h stable/11/sys/dev/mlx5/port.h Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/mlx5io.4 ============================================================================== --- stable/11/share/man/man4/mlx5io.4 Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/share/man/man4/mlx5io.4 Mon Oct 7 09:46:33 2019 (r353240) @@ -25,18 +25,18 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd October 2, 2019 .Dt mlx5io 4 .Os .Sh NAME .Nm mlx5io -.Nd IOCTL interface to manage Connect-X 4/5 Mellanox network adapters +.Nd IOCTL interface to manage Connect-X 4/5/6 Mellanox network adapters .Sh SYNOPSIS .In dev/mlx5/mlx5io.h .Sh DESCRIPTION The .Nm -interface is provided for management of the Connect-X 4 and 5 network adapters +interface is provided for management of the Connect-X4, 5 and 6 network adapters in the aspects not covered by the generic network configuration, mostly related to the PCIe attachment and internal card working. Interface consists of the commands, which are passed by means of @@ -147,6 +147,29 @@ Requests PCIe link-level reset on the device. The address of the device is specified by the .Vt struct mlx5_tool_addr structure, which should be passed as an argument. +.It Dv MLX5_EEPROM_GET +Fetch EEPROM information. +The argument to the command should point to the input/output +.Vt struct mlx5_eeprom_get +structure where, the +.Dv devaddr +field specifies the address of the device. +.Bd -literal +struct mlx5_eeprom_get { + struct mlx5_tool_addr devaddr; + size_t eeprom_info_page_valid; + uint32_t *eeprom_info_buf; + size_t eeprom_info_out_len; +}; +.Ed +.Pp +On successfull return, the +.Dv eeprom_info_out_len +field reports the length of the EEPROM information. +.Dv eeprom_info_buf +field contains the actual EEPROM information. +.Dv eeprom_info_page_valid +field reports the third page validity. .El .Sh FILES The Modified: stable/11/sys/dev/mlx5/diagnostics.h ============================================================================== --- stable/11/sys/dev/mlx5/diagnostics.h Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/diagnostics.h Mon Oct 7 09:46:33 2019 (r353240) @@ -32,6 +32,8 @@ #define MLX5_CORE_DIAGNOSTICS_STRUCT(n, s, t) s, #define MLX5_CORE_DIAGNOSTICS_ENTRY(n, s, t) { #s, (t) }, +static MALLOC_DEFINE(M_MLX5_EEPROM, "MLX5EEPROM", "MLX5 EEPROM information"); + struct mlx5_core_diagnostics_entry { const char *desc; u16 counter_id; @@ -127,6 +129,18 @@ union mlx5_core_general_diagnostics { extern const struct mlx5_core_diagnostics_entry mlx5_core_general_diagnostics_table[MLX5_CORE_GENERAL_DIAGNOSTICS_NUM]; +struct mlx5_eeprom { + int lock_bit; + int i2c_addr; + int page_num; + int device_addr; + int module_num; + int len; + int type; + int page_valid; + u32 *data; +}; + /* function prototypes */ int mlx5_core_set_diagnostics_full(struct mlx5_core_dev *mdev, u8 enable_pci, u8 enable_general); @@ -134,5 +148,8 @@ int mlx5_core_get_diagnostics_full(struct mlx5_core_de union mlx5_core_pci_diagnostics *ppci, union mlx5_core_general_diagnostics *pgen); int mlx5_core_supports_diagnostics(struct mlx5_core_dev *mdev, u16 counter_id); +int mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee); #endif /* MLX5_CORE_DIAGNOSTICS_H */ Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 09:46:33 2019 (r353240) @@ -26,7 +26,10 @@ */ #include +#include #include +#include +#include const struct mlx5_core_diagnostics_entry mlx5_core_pci_diagnostics_table[ @@ -284,3 +287,156 @@ int mlx5_core_supports_diagnostics(struct mlx5_core_de } return 0; /* not supported counter */ } + +/* + * Read the first three bytes of the eeprom in order to get the needed info + * for the whole reading. + * Byte 0 - Identifier byte + * Byte 1 - Revision byte + * Byte 2 - Status byte + */ +int +mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + u32 data = 0; + int size_read = 0; + int ret; + + ret = mlx5_query_module_num(dev, &eeprom->module_num); + if (ret) { + mlx5_core_err(dev, "Failed query module error=%d\n", ret); + return (-ret); + } + + /* Read the first three bytes to get Identifier, Revision and Status */ + ret = mlx5_query_eeprom(dev, eeprom->i2c_addr, eeprom->page_num, + eeprom->device_addr, MLX5_EEPROM_INFO_BYTES, eeprom->module_num, &data, + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed query EEPROM module error=0x%x\n", ret); + return (-ret); + } + + switch (data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) { + case SFF_8024_ID_QSFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + break; + case SFF_8024_ID_QSFPPLUS: + case SFF_8024_ID_QSFP28: + if ((data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) == SFF_8024_ID_QSFP28 || + ((data & MLX5_EEPROM_REVISION_ID_BYTE_MASK) >> 8) >= 0x3) { + eeprom->type = MLX5_ETH_MODULE_SFF_8636; + eeprom->len = MLX5_ETH_MODULE_SFF_8636_LEN; + } else { + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + } + if ((data & MLX5_EEPROM_PAGE_3_VALID_BIT_MASK) == 0) + eeprom->page_valid = 1; + break; + case SFF_8024_ID_SFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8472; + eeprom->len = MLX5_ETH_MODULE_SFF_8472_LEN; + break; + default: + mlx5_core_err(dev, "Not recognized cable type = 0x%x(%s)\n", + data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, + sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); + return (EINVAL); + } + return (0); +} + +/* Read both low and high pages of the eeprom */ +int +mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee) +{ + int size_read = 0; + int ret; + + if (ee->len == 0) + return (EINVAL); + + /* Read low page of the eeprom */ + while (ee->device_addr < ee->len) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, ee->device_addr, + ee->len - ee->device_addr, ee->module_num, + ee->data + (ee->device_addr / 4), &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", ret); + return (-ret); + } + ee->device_addr += size_read; + } + + /* Read high page of the eeprom */ + if (ee->page_valid == 1) { + ee->device_addr = MLX5_EEPROM_HIGH_PAGE_OFFSET; + ee->page_num = MLX5_EEPROM_HIGH_PAGE; + size_read = 0; + while (ee->device_addr < MLX5_EEPROM_PAGE_LENGTH) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, + ee->device_addr, MLX5_EEPROM_PAGE_LENGTH - ee->device_addr, + ee->module_num, ee->data + (ee->len / 4) + + ((ee->device_addr - MLX5_EEPROM_HIGH_PAGE_OFFSET) / 4), + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", + ret); + return (-ret); + } + ee->device_addr += size_read; + } + } + return (0); +} + +/* + * Read cable EEPROM module information by first inspecting the first + * three bytes to get the initial information for a whole reading. + * Information will be printed to dmesg. + */ +int +mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + int error; + + eeprom->i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom->device_addr = 0; + eeprom->page_num = MLX5_EEPROM_LOW_PAGE; + eeprom->page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, eeprom); + if (error) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom->data = malloc(eeprom->len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + + /* Read the whole eeprom information */ + error = mlx5_get_eeprom(dev, eeprom); + if (error) { + mlx5_core_err(dev, "Failed reading EEPROM\n"); + error = 0; + /* + * Continue printing partial information in case of + * an error + */ + } + free(eeprom->data, M_MLX5_EEPROM); + + return (error); +} + + Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:46:33 2019 (r353240) @@ -32,8 +32,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include +#include static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); @@ -306,6 +308,54 @@ mlx5_fw_reset(struct mlx5_core_dev *mdev) } static int +mlx5_eeprom_copyout(struct mlx5_core_dev *dev, struct mlx5_eeprom_get *eeprom_info) +{ + struct mlx5_eeprom eeprom; + int error; + + eeprom.i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom.device_addr = 0; + eeprom.page_num = MLX5_EEPROM_LOW_PAGE; + eeprom.page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, &eeprom); + if (error != 0) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + eeprom_info->eeprom_info_page_valid = eeprom.page_valid; + eeprom_info->eeprom_info_out_len = eeprom.len; + + if (eeprom_info->eeprom_info_buf == NULL) + return (0); + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom.data = malloc(eeprom.len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + + /* Read the whole eeprom information */ + error = mlx5_get_eeprom(dev, &eeprom); + if (error != 0) { + mlx5_core_err(dev, "Failed reading EEPROM error = %d\n", + error); + error = 0; + /* + * Continue printing partial information in case of + * an error + */ + } + error = copyout(eeprom.data, eeprom_info->eeprom_info_buf, + eeprom.len); + free(eeprom.data, M_MLX5_EEPROM); + + return (error); +} + +static int mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td) { @@ -314,6 +364,7 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d struct mlx5_tool_addr *devaddr; struct mlx5_fw_update *fu; struct firmware fake_fw; + struct mlx5_eeprom_get *eeprom_info; int error; error = 0; @@ -391,6 +442,18 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d if (error != 0) break; error = mlx5_fw_reset(mdev); + break; + case MLX5_EEPROM_GET: + if ((fflag & FREAD) == 0) { + error = EBADF; + break; + } + eeprom_info = (struct mlx5_eeprom_get *)data; + devaddr = &eeprom_info->devaddr; + error = mlx5_dbsf_to_core(devaddr, &mdev); + if (error != 0) + break; + error = mlx5_eeprom_copyout(mdev, eeprom_info); break; default: error = ENOTTY; Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:46:33 2019 (r353240) @@ -712,34 +712,6 @@ struct mlx5e_params_ethtool { u8 trust_state; }; -/* EEPROM Standards for plug in modules */ -#ifndef MLX5E_ETH_MODULE_SFF_8472 -#define MLX5E_ETH_MODULE_SFF_8472 0x1 -#define MLX5E_ETH_MODULE_SFF_8472_LEN 128 -#endif - -#ifndef MLX5E_ETH_MODULE_SFF_8636 -#define MLX5E_ETH_MODULE_SFF_8636 0x2 -#define MLX5E_ETH_MODULE_SFF_8636_LEN 256 -#endif - -#ifndef MLX5E_ETH_MODULE_SFF_8436 -#define MLX5E_ETH_MODULE_SFF_8436 0x3 -#define MLX5E_ETH_MODULE_SFF_8436_LEN 256 -#endif - -/* EEPROM I2C Addresses */ -#define MLX5E_I2C_ADDR_LOW 0x50 -#define MLX5E_I2C_ADDR_HIGH 0x51 - -#define MLX5E_EEPROM_LOW_PAGE 0x0 -#define MLX5E_EEPROM_HIGH_PAGE 0x3 - -#define MLX5E_EEPROM_HIGH_PAGE_OFFSET 128 -#define MLX5E_EEPROM_PAGE_LENGTH 256 - -#define MLX5E_EEPROM_INFO_BYTES 0x3 - struct mlx5e_cq { /* data path - accessed per cqe */ struct mlx5_cqwq wq; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:46:33 2019 (r353240) @@ -27,7 +27,6 @@ #include "en.h" #include "port_buffer.h" -#include void mlx5e_create_stats(struct sysctl_ctx_list *ctx, @@ -901,214 +900,6 @@ done: return (error); } -/* - * Read the first three bytes of the eeprom in order to get the needed info - * for the whole reading. - * Byte 0 - Identifier byte - * Byte 1 - Revision byte - * Byte 2 - Status byte - */ -static int -mlx5e_get_eeprom_info(struct mlx5e_priv *priv, struct mlx5e_eeprom *eeprom) -{ - struct mlx5_core_dev *dev = priv->mdev; - u32 data = 0; - int size_read = 0; - int ret; - - ret = mlx5_query_module_num(dev, &eeprom->module_num); - if (ret) { - mlx5_en_err(priv->ifp, "Failed query module error=%d\n", - ret); - return (ret); - } - - /* Read the first three bytes to get Identifier, Revision and Status */ - ret = mlx5_query_eeprom(dev, eeprom->i2c_addr, eeprom->page_num, - eeprom->device_addr, MLX5E_EEPROM_INFO_BYTES, eeprom->module_num, &data, - &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed query eeprom module error=0x%x\n", ret); - return (ret); - } - - switch (data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) { - case SFF_8024_ID_QSFP: - eeprom->type = MLX5E_ETH_MODULE_SFF_8436; - eeprom->len = MLX5E_ETH_MODULE_SFF_8436_LEN; - break; - case SFF_8024_ID_QSFPPLUS: - case SFF_8024_ID_QSFP28: - if ((data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) == SFF_8024_ID_QSFP28 || - ((data & MLX5_EEPROM_REVISION_ID_BYTE_MASK) >> 8) >= 0x3) { - eeprom->type = MLX5E_ETH_MODULE_SFF_8636; - eeprom->len = MLX5E_ETH_MODULE_SFF_8636_LEN; - } else { - eeprom->type = MLX5E_ETH_MODULE_SFF_8436; - eeprom->len = MLX5E_ETH_MODULE_SFF_8436_LEN; - } - if ((data & MLX5_EEPROM_PAGE_3_VALID_BIT_MASK) == 0) - eeprom->page_valid = 1; - break; - case SFF_8024_ID_SFP: - eeprom->type = MLX5E_ETH_MODULE_SFF_8472; - eeprom->len = MLX5E_ETH_MODULE_SFF_8472_LEN; - break; - default: - mlx5_en_err(priv->ifp, - "Not recognized cable type = 0x%x(%s)\n", - data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, - sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); - return (EINVAL); - } - return (0); -} - -/* Read both low and high pages of the eeprom */ -static int -mlx5e_get_eeprom(struct mlx5e_priv *priv, struct mlx5e_eeprom *ee) -{ - struct mlx5_core_dev *dev = priv->mdev; - int size_read = 0; - int ret; - - if (ee->len == 0) - return (EINVAL); - - /* Read low page of the eeprom */ - while (ee->device_addr < ee->len) { - ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, ee->device_addr, - ee->len - ee->device_addr, ee->module_num, - ee->data + (ee->device_addr / 4), &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom, error = 0x%02x\n",ret); - return (ret); - } - ee->device_addr += size_read; - } - - /* Read high page of the eeprom */ - if (ee->page_valid) { - ee->device_addr = MLX5E_EEPROM_HIGH_PAGE_OFFSET; - ee->page_num = MLX5E_EEPROM_HIGH_PAGE; - size_read = 0; - while (ee->device_addr < MLX5E_EEPROM_PAGE_LENGTH) { - ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, - ee->device_addr, MLX5E_EEPROM_PAGE_LENGTH - ee->device_addr, - ee->module_num, ee->data + (ee->len / 4) + - ((ee->device_addr - MLX5E_EEPROM_HIGH_PAGE_OFFSET) / 4), - &size_read); - if (ret) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom, error = 0x%02x\n", - ret); - return (ret); - } - ee->device_addr += size_read; - } - } - return (0); -} - -static void -mlx5e_print_eeprom(struct mlx5e_eeprom *eeprom) -{ - int row; - int index_in_row; - int byte_to_write = 0; - int line_length = 16; - - printf("\nOffset\t\tValues\n"); - printf("------\t\t------"); - while (byte_to_write < eeprom->len) { - printf("\n0x%04X\t\t", byte_to_write); - for (index_in_row = 0; index_in_row < line_length; index_in_row++) { - printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); - byte_to_write++; - } - } - - if (eeprom->page_valid) { - row = MLX5E_EEPROM_HIGH_PAGE_OFFSET; - printf("\n\nUpper Page 0x03\n"); - printf("\nOffset\t\tValues\n"); - printf("------\t\t------"); - while (row < MLX5E_EEPROM_PAGE_LENGTH) { - printf("\n0x%04X\t\t", row); - for (index_in_row = 0; index_in_row < line_length; index_in_row++) { - printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); - byte_to_write++; - row++; - } - } - } -} - -/* - * Read cable EEPROM module information by first inspecting the first - * three bytes to get the initial information for a whole reading. - * Information will be printed to dmesg. - */ -static int -mlx5e_read_eeprom(SYSCTL_HANDLER_ARGS) -{ - struct mlx5e_priv *priv = arg1; - struct mlx5e_eeprom eeprom; - int error; - int result = 0; - - PRIV_LOCK(priv); - error = sysctl_handle_int(oidp, &result, 0, req); - if (error || !req->newptr) - goto done; - - /* Check if device is gone */ - if (priv->gone) { - error = ENXIO; - goto done; - } - - if (result == 1) { - eeprom.i2c_addr = MLX5E_I2C_ADDR_LOW; - eeprom.device_addr = 0; - eeprom.page_num = MLX5E_EEPROM_LOW_PAGE; - eeprom.page_valid = 0; - - /* Read three first bytes to get important info */ - error = mlx5e_get_eeprom_info(priv, &eeprom); - if (error) { - mlx5_en_err(priv->ifp, - "Failed reading eeprom's initial information\n"); - error = 0; - goto done; - } - /* - * Allocate needed length buffer and additional space for - * page 0x03 - */ - eeprom.data = malloc(eeprom.len + MLX5E_EEPROM_PAGE_LENGTH, - M_MLX5EN, M_WAITOK | M_ZERO); - - /* Read the whole eeprom information */ - error = mlx5e_get_eeprom(priv, &eeprom); - if (error) { - mlx5_en_err(priv->ifp, "Failed reading eeprom\n"); - error = 0; - /* - * Continue printing partial information in case of - * an error - */ - } - mlx5e_print_eeprom(&eeprom); - free(eeprom.data, M_MLX5EN); - } -done: - PRIV_UNLOCK(priv); - return (error); -} - static const char *mlx5e_params_desc[] = { MLX5E_PARAMS(MLX5E_STATS_DESC) }; @@ -1346,11 +1137,6 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) OID_AUTO, "device_name", CTLFLAG_RD, __DECONST(void *, pnameunit), 0, "PCI device name"); - - /* EEPROM support */ - SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, "eeprom_info", - CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, - mlx5e_read_eeprom, "I", "EEPROM information"); /* Diagnostics support */ mlx5e_create_diagnostics(priv); Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:46:33 2019 (r353240) @@ -3277,9 +3277,9 @@ out: * The internal conversion is as follows: */ if (i2c.dev_addr == 0xA0) - read_addr = MLX5E_I2C_ADDR_LOW; + read_addr = MLX5_I2C_ADDR_LOW; else if (i2c.dev_addr == 0xA2) - read_addr = MLX5E_I2C_ADDR_HIGH; + read_addr = MLX5_I2C_ADDR_HIGH; else { mlx5_en_err(ifp, "Query eeprom failed, Invalid Address: %X\n", @@ -3288,7 +3288,7 @@ out: goto err_i2c; } error = mlx5_query_eeprom(priv->mdev, - read_addr, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5_EEPROM_LOW_PAGE, (uint32_t)i2c.offset, (uint32_t)i2c.len, module_num, (uint32_t *)i2c.data, &size_read); if (error) { @@ -3300,7 +3300,7 @@ out: if (i2c.len > MLX5_EEPROM_MAX_BYTES) { error = mlx5_query_eeprom(priv->mdev, - read_addr, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5_EEPROM_LOW_PAGE, (uint32_t)(i2c.offset + size_read), (uint32_t)(i2c.len - size_read), module_num, (uint32_t *)(i2c.data + size_read), &size_read); Modified: stable/11/sys/dev/mlx5/mlx5io.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5io.h Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/mlx5io.h Mon Oct 7 09:46:33 2019 (r353240) @@ -55,11 +55,19 @@ struct mlx5_fw_update { size_t img_fw_data_len; }; +struct mlx5_eeprom_get { + struct mlx5_tool_addr devaddr; + uint32_t *eeprom_info_buf; + uint8_t eeprom_info_page_valid; + size_t eeprom_info_out_len; +}; + #define MLX5_FWDUMP_GET _IOWR('m', 1, struct mlx5_fwdump_get) #define MLX5_FWDUMP_RESET _IOW('m', 2, struct mlx5_tool_addr) #define MLX5_FWDUMP_FORCE _IOW('m', 3, struct mlx5_tool_addr) #define MLX5_FW_UPDATE _IOW('m', 4, struct mlx5_fw_update) #define MLX5_FW_RESET _IOW('m', 5, struct mlx5_tool_addr) +#define MLX5_EEPROM_GET _IOWR('m', 6, struct mlx5_eeprom_get) #ifndef _KERNEL #define MLX5_DEV_PATH _PATH_DEV"mlx5ctl" Modified: stable/11/sys/dev/mlx5/port.h ============================================================================== --- stable/11/sys/dev/mlx5/port.h Mon Oct 7 09:45:20 2019 (r353239) +++ stable/11/sys/dev/mlx5/port.h Mon Oct 7 09:46:33 2019 (r353240) @@ -50,13 +50,34 @@ enum mlx5_an_status { MLX5_AN_LINK_DOWN = 4, }; +/* EEPROM I2C Addresses */ +#define MLX5_I2C_ADDR_LOW 0x50 +#define MLX5_I2C_ADDR_HIGH 0x51 +#define MLX5_EEPROM_PAGE_LENGTH 256 #define MLX5_EEPROM_MAX_BYTES 32 #define MLX5_EEPROM_IDENTIFIER_BYTE_MASK 0x000000ff #define MLX5_EEPROM_REVISION_ID_BYTE_MASK 0x0000ff00 #define MLX5_EEPROM_PAGE_3_VALID_BIT_MASK 0x00040000 -#define MLX5_I2C_ADDR_LOW 0x50 -#define MLX5_I2C_ADDR_HIGH 0x51 -#define MLX5_EEPROM_PAGE_LENGTH 256 +#define MLX5_EEPROM_LOW_PAGE 0x0 +#define MLX5_EEPROM_HIGH_PAGE 0x3 +#define MLX5_EEPROM_HIGH_PAGE_OFFSET 128 +#define MLX5_EEPROM_INFO_BYTES 0x3 + +/* EEPROM Standards for plug in modules */ +#ifndef MLX5_ETH_MODULE_SFF_8472 +#define MLX5_ETH_MODULE_SFF_8472 0x1 +#define MLX5_ETH_MODULE_SFF_8472_LEN 128 +#endif + +#ifndef MLX5_ETH_MODULE_SFF_8636 +#define MLX5_ETH_MODULE_SFF_8636 0x2 +#define MLX5_ETH_MODULE_SFF_8636_LEN 256 +#endif + +#ifndef MLX5_ETH_MODULE_SFF_8436 +#define MLX5_ETH_MODULE_SFF_8436 0x3 +#define MLX5_ETH_MODULE_SFF_8436_LEN 256 +#endif enum mlx5e_link_speed { MLX5E_1000BASE_CX_SGMII = 0, From owner-svn-src-all@freebsd.org Mon Oct 7 09:48:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE0B81285C2; Mon, 7 Oct 2019 09:48:21 +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 46mwdx4bK8z3DWP; Mon, 7 Oct 2019 09:48:21 +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 7C9D9CC9E; Mon, 7 Oct 2019 09:48:21 +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 x979mLaI099727; Mon, 7 Oct 2019 09:48:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979mLSJ099725; Mon, 7 Oct 2019 09:48:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070948.x979mLSJ099725@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 09:48:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353241 - stable/12/usr.sbin/mlx5tool X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/usr.sbin/mlx5tool X-SVN-Commit-Revision: 353241 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:48:21 -0000 Author: hselasky Date: Mon Oct 7 09:48:20 2019 New Revision: 353241 URL: https://svnweb.freebsd.org/changeset/base/353241 Log: MFC r352984: Add the ability to query the EEPROM information in mlx5tool(8). Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/usr.sbin/mlx5tool/mlx5tool.8 stable/12/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/mlx5tool/mlx5tool.8 ============================================================================== --- stable/12/usr.sbin/mlx5tool/mlx5tool.8 Mon Oct 7 09:46:33 2019 (r353240) +++ stable/12/usr.sbin/mlx5tool/mlx5tool.8 Mon Oct 7 09:48:20 2019 (r353241) @@ -30,28 +30,31 @@ .Os .Sh NAME .Nm mlx5tool -.Nd Utility for managing Connect-X 4/5 Mellanox network adapters +.Nd Utility for managing Connect-X 4/5/6 Mellanox network adapters .Sh SYNOPSIS .Nm .Fl d Ar domain:bus:slot:func +.Fl E +.Nm +.Fl d Ar domain:bus:slot:func .Fl e .Nm .Fl d Ar domain:bus:slot:func -.Fl rn +.Fl f Ar file.mfa2 .Nm .Fl d Ar domain:bus:slot:func .Fl o Ar file .Fl w .Nm .Fl d Ar domain:bus:slot:func -.Fl f Ar file.mfa2 +.Fl r .Nm .Fl d Ar domain:bus:slot:func .Fl z .Sh DESCRIPTION The .Nm -utility is provided for management of the Connect-X 4 and 5 network adapters +utility is provided for management of the Connect-X4, 5 and 6 network adapters in the aspects not covered by the generic .Xr ifconfig 8 command, mostly related to the PCIe attachment and internal card working. @@ -73,21 +76,13 @@ analysis of the failure by the Mellanox support team. .Pp The following commands are currently implemented: .Bl -tag -width indent +.It Fl E +Print EEPROM information .It Fl e Take the snapshot of the firmware registers state and store it in the kernel buffer. The buffer must be empty, in other words, no dumps should be written so far, or existing dump cleared with the -.Fl r -command for the specified device. -.It Fl r -Clear the stored firmware dump, preparing the kernel buffer for -the next dump. -.It Fl w -Fetches the stored firmware dump and writes it into the file specified -by the -.Fl o -option argument. .It Fl f Flashes the firmware image .Fa file.mfa2 @@ -100,6 +95,16 @@ newly flashed image, which can be performed by the sys or using the .Fl z option. +.Fl r +command for the specified device. +.It Fl r +Clear the stored firmware dump, preparing the kernel buffer for +the next dump. +.It Fl w +Fetches the stored firmware dump and writes it into the file specified +by the +.Fl o +option argument. .It Fl z Performs PCIe link-level reset on the specified device. .El Modified: stable/12/usr.sbin/mlx5tool/mlx5tool.c ============================================================================== --- stable/12/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 09:46:33 2019 (r353240) +++ stable/12/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 09:48:20 2019 (r353241) @@ -200,7 +200,86 @@ mlx5tool_fw_reset(int ctldev, const struct mlx5_tool_a return (0); } +#define MLX5_EEPROM_HIGH_PAGE_OFFSET 128 +#define MLX5_EEPROM_PAGE_LENGTH 256 + static void +mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_info) +{ + unsigned int byte_to_write, index_in_row, line_length, row; + + byte_to_write = 0; + line_length = 16; + + printf("\nOffset\t\tValues\n"); + printf("------\t\t------"); + while (byte_to_write < eeprom_info->eeprom_info_out_len) { + printf("\n0x%04X\t\t", byte_to_write); + for (index_in_row = 0; index_in_row < line_length; + index_in_row++) { + printf("%02X ", + ((uint8_t *)eeprom_info->eeprom_info_buf)[ + byte_to_write]); + byte_to_write++; + } + } + + if (eeprom_info->eeprom_info_page_valid) { + row = MLX5_EEPROM_HIGH_PAGE_OFFSET; + printf("\n\nUpper Page 0x03\n"); + printf("\nOffset\t\tValues\n"); + printf("------\t\t------"); + for (row = MLX5_EEPROM_HIGH_PAGE_OFFSET; + row < MLX5_EEPROM_PAGE_LENGTH;) { + printf("\n0x%04X\t\t", row); + for (index_in_row = 0; + index_in_row < line_length; + index_in_row++) { + printf("%02X ", + ((uint8_t *)eeprom_info-> + eeprom_info_buf)[byte_to_write]); + byte_to_write++; + row++; + } + } + } + printf("\n"); +} + +static int +mlx5tool_get_eeprom_info(int ctldev, const struct mlx5_tool_addr *addr) +{ + struct mlx5_eeprom_get eeprom_info; + int error; + + memset(&eeprom_info, 0, sizeof(eeprom_info)); + eeprom_info.devaddr = *addr; + + error = ioctl(ctldev, MLX5_EEPROM_GET, &eeprom_info); + if (error != 0) { + warn("MLX5_EEPROM_GET"); + return (error); + } + eeprom_info.eeprom_info_buf = + malloc(eeprom_info.eeprom_info_out_len + MLX5_EEPROM_PAGE_LENGTH); + if (eeprom_info.eeprom_info_buf == NULL) { + warn("alloc eeprom_info.eeprom_info_buf "); + return (ENOMEM); + } + error = ioctl(ctldev, MLX5_EEPROM_GET, &eeprom_info); + if (error != 0) { + warn("MLX5_EEPROM_GET"); + free(eeprom_info.eeprom_info_buf); + return (error); + } + + mlx5tool_eeprom_print(&eeprom_info); + + free(eeprom_info.eeprom_info_buf); + return (0); +} + +static void usage(void) { @@ -209,6 +288,7 @@ usage(void) " -e | -f fw.mfa2 | -z]\n"); fprintf(stderr, "\t-w - write firmware dump to the specified file\n"); fprintf(stderr, "\t-r - reset dump\n"); + fprintf(stderr, "\t-E - get eeprom info\n"); fprintf(stderr, "\t-e - force dump\n"); fprintf(stderr, "\t-f fw.img - flash firmware from fw.img\n"); fprintf(stderr, "\t-z - initiate firmware reset\n"); @@ -221,6 +301,7 @@ enum mlx5_action { ACTION_DUMP_FORCE, ACTION_FW_UPDATE, ACTION_FW_RESET, + ACTION_GET_EEPROM_INFO, ACTION_NONE, }; @@ -238,7 +319,7 @@ main(int argc, char *argv[]) addrstr = NULL; dumpname = NULL; img_fw_path = NULL; - while ((c = getopt(argc, argv, "d:ef:ho:rwz")) != -1) { + while ((c = getopt(argc, argv, "d:Eef:ho:rwz")) != -1) { switch (c) { case 'd': addrstr = optarg; @@ -248,6 +329,11 @@ main(int argc, char *argv[]) usage(); act = ACTION_DUMP_GET; break; + case 'E': + if (act != ACTION_NONE) + usage(); + act = ACTION_GET_EEPROM_INFO; + break; case 'e': if (act != ACTION_NONE) usage(); @@ -302,6 +388,9 @@ main(int argc, char *argv[]) break; case ACTION_FW_RESET: res = mlx5tool_fw_reset(ctldev, &addr); + break; + case ACTION_GET_EEPROM_INFO: + res = mlx5tool_get_eeprom_info(ctldev, &addr); break; default: res = 0; From owner-svn-src-all@freebsd.org Mon Oct 7 09:49:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4ABBD128658; Mon, 7 Oct 2019 09:49:04 +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 46mwfm1Bqsz3Ddl; Mon, 7 Oct 2019 09:49:04 +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 0C1D6CC9F; Mon, 7 Oct 2019 09:49:04 +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 x979n3e9099828; Mon, 7 Oct 2019 09:49:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979n3EF099826; Mon, 7 Oct 2019 09:49:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070949.x979n3EF099826@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 09:49:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353242 - stable/11/usr.sbin/mlx5tool X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/usr.sbin/mlx5tool X-SVN-Commit-Revision: 353242 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:49:04 -0000 Author: hselasky Date: Mon Oct 7 09:49:03 2019 New Revision: 353242 URL: https://svnweb.freebsd.org/changeset/base/353242 Log: MFC r352984: Add the ability to query the EEPROM information in mlx5tool(8). Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.8 stable/11/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.8 ============================================================================== --- stable/11/usr.sbin/mlx5tool/mlx5tool.8 Mon Oct 7 09:48:20 2019 (r353241) +++ stable/11/usr.sbin/mlx5tool/mlx5tool.8 Mon Oct 7 09:49:03 2019 (r353242) @@ -30,28 +30,31 @@ .Os .Sh NAME .Nm mlx5tool -.Nd Utility for managing Connect-X 4/5 Mellanox network adapters +.Nd Utility for managing Connect-X 4/5/6 Mellanox network adapters .Sh SYNOPSIS .Nm .Fl d Ar domain:bus:slot:func +.Fl E +.Nm +.Fl d Ar domain:bus:slot:func .Fl e .Nm .Fl d Ar domain:bus:slot:func -.Fl rn +.Fl f Ar file.mfa2 .Nm .Fl d Ar domain:bus:slot:func .Fl o Ar file .Fl w .Nm .Fl d Ar domain:bus:slot:func -.Fl f Ar file.mfa2 +.Fl r .Nm .Fl d Ar domain:bus:slot:func .Fl z .Sh DESCRIPTION The .Nm -utility is provided for management of the Connect-X 4 and 5 network adapters +utility is provided for management of the Connect-X4, 5 and 6 network adapters in the aspects not covered by the generic .Xr ifconfig 8 command, mostly related to the PCIe attachment and internal card working. @@ -73,21 +76,13 @@ analysis of the failure by the Mellanox support team. .Pp The following commands are currently implemented: .Bl -tag -width indent +.It Fl E +Print EEPROM information .It Fl e Take the snapshot of the firmware registers state and store it in the kernel buffer. The buffer must be empty, in other words, no dumps should be written so far, or existing dump cleared with the -.Fl r -command for the specified device. -.It Fl r -Clear the stored firmware dump, preparing the kernel buffer for -the next dump. -.It Fl w -Fetches the stored firmware dump and writes it into the file specified -by the -.Fl o -option argument. .It Fl f Flashes the firmware image .Fa file.mfa2 @@ -100,6 +95,16 @@ newly flashed image, which can be performed by the sys or using the .Fl z option. +.Fl r +command for the specified device. +.It Fl r +Clear the stored firmware dump, preparing the kernel buffer for +the next dump. +.It Fl w +Fetches the stored firmware dump and writes it into the file specified +by the +.Fl o +option argument. .It Fl z Performs PCIe link-level reset on the specified device. .El Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.c ============================================================================== --- stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 09:48:20 2019 (r353241) +++ stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 09:49:03 2019 (r353242) @@ -200,7 +200,86 @@ mlx5tool_fw_reset(int ctldev, const struct mlx5_tool_a return (0); } +#define MLX5_EEPROM_HIGH_PAGE_OFFSET 128 +#define MLX5_EEPROM_PAGE_LENGTH 256 + static void +mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_info) +{ + unsigned int byte_to_write, index_in_row, line_length, row; + + byte_to_write = 0; + line_length = 16; + + printf("\nOffset\t\tValues\n"); + printf("------\t\t------"); + while (byte_to_write < eeprom_info->eeprom_info_out_len) { + printf("\n0x%04X\t\t", byte_to_write); + for (index_in_row = 0; index_in_row < line_length; + index_in_row++) { + printf("%02X ", + ((uint8_t *)eeprom_info->eeprom_info_buf)[ + byte_to_write]); + byte_to_write++; + } + } + + if (eeprom_info->eeprom_info_page_valid) { + row = MLX5_EEPROM_HIGH_PAGE_OFFSET; + printf("\n\nUpper Page 0x03\n"); + printf("\nOffset\t\tValues\n"); + printf("------\t\t------"); + for (row = MLX5_EEPROM_HIGH_PAGE_OFFSET; + row < MLX5_EEPROM_PAGE_LENGTH;) { + printf("\n0x%04X\t\t", row); + for (index_in_row = 0; + index_in_row < line_length; + index_in_row++) { + printf("%02X ", + ((uint8_t *)eeprom_info-> + eeprom_info_buf)[byte_to_write]); + byte_to_write++; + row++; + } + } + } + printf("\n"); +} + +static int +mlx5tool_get_eeprom_info(int ctldev, const struct mlx5_tool_addr *addr) +{ + struct mlx5_eeprom_get eeprom_info; + int error; + + memset(&eeprom_info, 0, sizeof(eeprom_info)); + eeprom_info.devaddr = *addr; + + error = ioctl(ctldev, MLX5_EEPROM_GET, &eeprom_info); + if (error != 0) { + warn("MLX5_EEPROM_GET"); + return (error); + } + eeprom_info.eeprom_info_buf = + malloc(eeprom_info.eeprom_info_out_len + MLX5_EEPROM_PAGE_LENGTH); + if (eeprom_info.eeprom_info_buf == NULL) { + warn("alloc eeprom_info.eeprom_info_buf "); + return (ENOMEM); + } + error = ioctl(ctldev, MLX5_EEPROM_GET, &eeprom_info); + if (error != 0) { + warn("MLX5_EEPROM_GET"); + free(eeprom_info.eeprom_info_buf); + return (error); + } + + mlx5tool_eeprom_print(&eeprom_info); + + free(eeprom_info.eeprom_info_buf); + return (0); +} + +static void usage(void) { @@ -209,6 +288,7 @@ usage(void) " -e | -f fw.mfa2 | -z]\n"); fprintf(stderr, "\t-w - write firmware dump to the specified file\n"); fprintf(stderr, "\t-r - reset dump\n"); + fprintf(stderr, "\t-E - get eeprom info\n"); fprintf(stderr, "\t-e - force dump\n"); fprintf(stderr, "\t-f fw.img - flash firmware from fw.img\n"); fprintf(stderr, "\t-z - initiate firmware reset\n"); @@ -221,6 +301,7 @@ enum mlx5_action { ACTION_DUMP_FORCE, ACTION_FW_UPDATE, ACTION_FW_RESET, + ACTION_GET_EEPROM_INFO, ACTION_NONE, }; @@ -238,7 +319,7 @@ main(int argc, char *argv[]) addrstr = NULL; dumpname = NULL; img_fw_path = NULL; - while ((c = getopt(argc, argv, "d:ef:ho:rwz")) != -1) { + while ((c = getopt(argc, argv, "d:Eef:ho:rwz")) != -1) { switch (c) { case 'd': addrstr = optarg; @@ -248,6 +329,11 @@ main(int argc, char *argv[]) usage(); act = ACTION_DUMP_GET; break; + case 'E': + if (act != ACTION_NONE) + usage(); + act = ACTION_GET_EEPROM_INFO; + break; case 'e': if (act != ACTION_NONE) usage(); @@ -302,6 +388,9 @@ main(int argc, char *argv[]) break; case ACTION_FW_RESET: res = mlx5tool_fw_reset(ctldev, &addr); + break; + case ACTION_GET_EEPROM_INFO: + res = mlx5tool_get_eeprom_info(ctldev, &addr); break; default: res = 0; From owner-svn-src-all@freebsd.org Mon Oct 7 09:51:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F91312897B; Mon, 7 Oct 2019 09:51:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mwj51pBJz3DvT; Mon, 7 Oct 2019 09:51:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0AF81CCCF; Mon, 7 Oct 2019 09:51:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x979p4n7001567; Mon, 7 Oct 2019 09:51:04 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979p3O6001559; Mon, 7 Oct 2019 09:51:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070951.x979p3O6001559@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 09:51:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353243 - in stable/12/sys/dev/mlx5: . mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_en X-SVN-Commit-Revision: 353243 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:51:05 -0000 Author: hselasky Date: Mon Oct 7 09:51:03 2019 New Revision: 353243 URL: https://svnweb.freebsd.org/changeset/base/353243 Log: MFC r352985: Add sysctl(8) to get and set forward error correction, FEC, configuration in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/device.h stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/12/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/device.h ============================================================================== --- stable/12/sys/dev/mlx5/device.h Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/device.h Mon Oct 7 09:51:03 2019 (r353243) @@ -1053,6 +1053,9 @@ enum mlx5_mcam_feature_groups { #define MLX5_CAP_PCAM_FEATURE(mdev, fld) \ MLX5_GET(pcam_reg, (mdev)->caps.pcam, feature_cap_mask.enhanced_features.fld) +#define MLX5_CAP_PCAM_REG(mdev, reg) \ + MLX5_GET(pcam_reg, (mdev)->caps.pcam, port_access_reg_cap_mask.regs_5000_to_507f.reg) + #define MLX5_CAP_MCAM_FEATURE(mdev, fld) \ MLX5_GET(mcam_reg, (mdev)->caps.mcam, mng_feature_cap_mask.enhanced_features.fld) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/driver.h Mon Oct 7 09:51:03 2019 (r353243) @@ -144,6 +144,7 @@ enum { MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, MLX5_REG_PMAOS = 0x5012, + MLX5_REG_PPLM = 0x5023, MLX5_REG_PBSR = 0x5038, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:51:03 2019 (r353243) @@ -75,6 +75,9 @@ #define MLX5E_MAX_PRIORITY 8 +#define MLX5E_MAX_FEC_10X_25X 4 +#define MLX5E_MAX_FEC_50X 4 + /* IEEE 802.1Qaz standard supported values */ #define IEEE_8021QAZ_MAX_TCS 8 @@ -711,6 +714,11 @@ struct mlx5e_params_ethtool { u8 prio_tc[MLX5E_MAX_PRIORITY]; u8 dscp2prio[MLX5_MAX_SUPPORTED_DSCP]; u8 trust_state; + u8 fec_mask_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u16 fec_mask_50x[MLX5E_MAX_FEC_50X]; + u8 fec_avail_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u16 fec_avail_50x[MLX5E_MAX_FEC_50X]; + u32 fec_mode_active; }; struct mlx5e_cq { @@ -1173,5 +1181,6 @@ void mlx5e_resume_sq(struct mlx5e_sq *sq); void mlx5e_update_sq_inline(struct mlx5e_sq *sq); void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); +int mlx5e_fec_update(struct mlx5e_priv *priv); #endif /* _MLX5_EN_H_ */ Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:51:03 2019 (r353243) @@ -345,7 +345,286 @@ done: return (err); } +int +mlx5e_fec_update(struct mlx5e_priv *priv) +{ + struct mlx5_core_dev *mdev = priv->mdev; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + int err; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) + return (EOPNOTSUPP); + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) + return (EOPNOTSUPP); + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + return (err); + + /* get 10x..25x mask */ + priv->params_ethtool.fec_mask_10x_25x[0] = + MLX5_GET(pplm_reg, in, fec_override_admin_10g_40g); + priv->params_ethtool.fec_mask_10x_25x[1] = + MLX5_GET(pplm_reg, in, fec_override_admin_25g) & + MLX5_GET(pplm_reg, in, fec_override_admin_50g); + priv->params_ethtool.fec_mask_10x_25x[2] = + MLX5_GET(pplm_reg, in, fec_override_admin_56g); + priv->params_ethtool.fec_mask_10x_25x[3] = + MLX5_GET(pplm_reg, in, fec_override_admin_100g); + + /* get 10x..25x available bits */ + priv->params_ethtool.fec_avail_10x_25x[0] = + MLX5_GET(pplm_reg, in, fec_override_cap_10g_40g); + priv->params_ethtool.fec_avail_10x_25x[1] = + MLX5_GET(pplm_reg, in, fec_override_cap_25g) & + MLX5_GET(pplm_reg, in, fec_override_cap_50g); + priv->params_ethtool.fec_avail_10x_25x[2] = + MLX5_GET(pplm_reg, in, fec_override_cap_56g); + priv->params_ethtool.fec_avail_10x_25x[3] = + MLX5_GET(pplm_reg, in, fec_override_cap_100g); + + /* get 50x mask */ + priv->params_ethtool.fec_mask_50x[0] = + MLX5_GET(pplm_reg, in, fec_override_admin_50g_1x); + priv->params_ethtool.fec_mask_50x[1] = + MLX5_GET(pplm_reg, in, fec_override_admin_100g_2x); + priv->params_ethtool.fec_mask_50x[2] = + MLX5_GET(pplm_reg, in, fec_override_admin_200g_4x); + priv->params_ethtool.fec_mask_50x[3] = + MLX5_GET(pplm_reg, in, fec_override_admin_400g_8x); + + /* get 50x available bits */ + priv->params_ethtool.fec_avail_50x[0] = + MLX5_GET(pplm_reg, in, fec_override_cap_50g_1x); + priv->params_ethtool.fec_avail_50x[1] = + MLX5_GET(pplm_reg, in, fec_override_cap_100g_2x); + priv->params_ethtool.fec_avail_50x[2] = + MLX5_GET(pplm_reg, in, fec_override_cap_200g_4x); + priv->params_ethtool.fec_avail_50x[3] = + MLX5_GET(pplm_reg, in, fec_override_cap_400g_8x); + + /* get current FEC mask */ + priv->params_ethtool.fec_mode_active = + MLX5_GET(pplm_reg, in, fec_mode_active); + + return (0); +} + static int +mlx5e_fec_mask_10x_25x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + struct mlx5_core_dev *mdev = priv->mdev; + u32 out[MLX5_ST_SZ_DW(pplm_reg)] = {}; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + u8 fec_mask_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u8 fec_cap_changed = 0; + u8 x; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_mask_10x_25x, + sizeof(priv->params_ethtool.fec_mask_10x_25x)); + if (err || !req->newptr) + goto done; + + err = SYSCTL_IN(req, fec_mask_10x_25x, + sizeof(fec_mask_10x_25x)); + if (err) + goto done; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) { + err = EOPNOTSUPP; + goto done; + } + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) { + err = EOPNOTSUPP; + goto done; + } + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + goto done; + + /* range check input value */ + for (x = 0; x != MLX5E_MAX_FEC_10X_25X; x++) { + /* check only one bit is set, if any */ + if (fec_mask_10x_25x[x] & (fec_mask_10x_25x[x] - 1)) { + err = ERANGE; + goto done; + } + /* check a supported bit is set, if any */ + if (fec_mask_10x_25x[x] & + ~priv->params_ethtool.fec_avail_10x_25x[x]) { + err = ERANGE; + goto done; + } + fec_cap_changed |= (fec_mask_10x_25x[x] ^ + priv->params_ethtool.fec_mask_10x_25x[x]); + } + + /* check for no changes */ + if (fec_cap_changed == 0) + goto done; + + memset(in, 0, sizeof(in)); + + MLX5_SET(pplm_reg, in, local_port, 1); + + /* set new values */ + MLX5_SET(pplm_reg, in, fec_override_admin_10g_40g, fec_mask_10x_25x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_25g, fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_50g, fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_56g, fec_mask_10x_25x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g, fec_mask_10x_25x[3]); + + /* preserve other values */ + MLX5_SET(pplm_reg, in, fec_override_admin_50g_1x, priv->params_ethtool.fec_mask_50x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g_2x, priv->params_ethtool.fec_mask_50x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_200g_4x, priv->params_ethtool.fec_mask_50x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_400g_8x, priv->params_ethtool.fec_mask_50x[3]); + + /* send new value to the firmware */ + err = -mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPLM, 0, 1); + if (err) + goto done; + + memcpy(priv->params_ethtool.fec_mask_10x_25x, fec_mask_10x_25x, + sizeof(priv->params_ethtool.fec_mask_10x_25x)); + + mlx5_toggle_port_link(priv->mdev); +done: + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_avail_10x_25x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_avail_10x_25x, + sizeof(priv->params_ethtool.fec_avail_10x_25x)); + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_mask_50x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + struct mlx5_core_dev *mdev = priv->mdev; + u32 out[MLX5_ST_SZ_DW(pplm_reg)] = {}; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + u16 fec_mask_50x[MLX5E_MAX_FEC_50X]; + u16 fec_cap_changed = 0; + u8 x; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_mask_50x, + sizeof(priv->params_ethtool.fec_mask_50x)); + if (err || !req->newptr) + goto done; + + err = SYSCTL_IN(req, fec_mask_50x, + sizeof(fec_mask_50x)); + if (err) + goto done; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) { + err = EOPNOTSUPP; + goto done; + } + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) { + err = EOPNOTSUPP; + goto done; + } + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + goto done; + + /* range check input value */ + for (x = 0; x != MLX5E_MAX_FEC_50X; x++) { + /* check only one bit is set, if any */ + if (fec_mask_50x[x] & (fec_mask_50x[x] - 1)) { + err = ERANGE; + goto done; + } + /* check a supported bit is set, if any */ + if (fec_mask_50x[x] & + ~priv->params_ethtool.fec_avail_50x[x]) { + err = ERANGE; + goto done; + } + fec_cap_changed |= (fec_mask_50x[x] ^ + priv->params_ethtool.fec_mask_50x[x]); + } + + /* check for no changes */ + if (fec_cap_changed == 0) + goto done; + + memset(in, 0, sizeof(in)); + + MLX5_SET(pplm_reg, in, local_port, 1); + + /* set new values */ + MLX5_SET(pplm_reg, in, fec_override_admin_50g_1x, fec_mask_50x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g_2x, fec_mask_50x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_200g_4x, fec_mask_50x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_400g_8x, fec_mask_50x[3]); + + /* preserve other values */ + MLX5_SET(pplm_reg, in, fec_override_admin_10g_40g, priv->params_ethtool.fec_mask_10x_25x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_25g, priv->params_ethtool.fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_50g, priv->params_ethtool.fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_56g, priv->params_ethtool.fec_mask_10x_25x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g, priv->params_ethtool.fec_mask_10x_25x[3]); + + /* send new value to the firmware */ + err = -mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPLM, 0, 1); + if (err) + goto done; + + memcpy(priv->params_ethtool.fec_mask_50x, fec_mask_50x, + sizeof(priv->params_ethtool.fec_mask_50x)); + + mlx5_toggle_port_link(priv->mdev); +done: + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_avail_50x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_avail_50x, + sizeof(priv->params_ethtool.fec_avail_50x)); + PRIV_UNLOCK(priv); + return (err); +} + +static int mlx5e_trust_state_handler(SYSCTL_HANDLER_ARGS) { struct mlx5e_priv *priv = arg1; @@ -1046,7 +1325,9 @@ mlx5e_create_diagnostics(struct mlx5e_priv *priv) void mlx5e_create_ethtool(struct mlx5e_priv *priv) { - struct sysctl_oid *node, *qos_node; + struct sysctl_oid *fec_node; + struct sysctl_oid *qos_node; + struct sysctl_oid *node; const char *pnameunit; struct mlx5e_port_buffer port_buffer; unsigned x; @@ -1125,6 +1406,54 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) mlx5e_ethtool_handler(NULL, priv, x, NULL); #endif } + } + + /* create fec node */ + fec_node = SYSCTL_ADD_NODE(&priv->sysctl_ctx, + SYSCTL_CHILDREN(node), OID_AUTO, + "fec", CTLFLAG_RW, NULL, "Forward Error Correction"); + if (fec_node == NULL) + return; + + if (mlx5e_fec_update(priv) == 0) { + SYSCTL_ADD_U32(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mode_active", CTLFLAG_RD | CTLFLAG_MPSAFE, + &priv->params_ethtool.fec_mode_active, 0, + "Current FEC mode bit, if any."); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mask_10x_25x", CTLTYPE_U8 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_mask_10x_25x_handler, "CU", + "Set FEC masks for 10G_40G, 25G_50G, 56G, 100G respectivly. " + "0:Auto " + "1:NOFEC " + "2:FIRECODE " + "4:RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "avail_10x_25x", CTLTYPE_U8 | CTLFLAG_RD | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_avail_10x_25x_handler, "CU", + "Get available FEC bits for 10G_40G, 25G_50G, 56G, 100G respectivly. " + "0:Auto " + "1:NOFEC " + "2:FIRECODE " + "4:RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mask_50x", CTLTYPE_U16 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_mask_50x_handler, "SU", + "Set FEC masks for 50G 1x, 100G 2x, 200G 4x, 400G 8x respectivly. " + "0:Auto " + "128:RS " + "512:LL RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "avail_50x", CTLTYPE_U16 | CTLFLAG_RD | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_avail_50x_handler, "SU", + "Get available FEC bits for 50G 1x, 100G 2x, 200G 4x, 400G 8x respectivly. " + "0:Auto " + "128:RS " + "512:LL RS"); } SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:51:03 2019 (r353243) @@ -859,6 +859,7 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv) u64 rx_packets = 0; u64 rx_bytes = 0; u32 rx_out_of_buffer = 0; + int error; int i; int j; @@ -1015,12 +1016,19 @@ free_out: /* Update diagnostics, if any */ if (priv->params_ethtool.diag_pci_enable || priv->params_ethtool.diag_general_enable) { - int error = mlx5_core_get_diagnostics_full(mdev, + error = mlx5_core_get_diagnostics_full(mdev, priv->params_ethtool.diag_pci_enable ? &priv->params_pci : NULL, priv->params_ethtool.diag_general_enable ? &priv->params_general : NULL); if (error != 0) mlx5_en_err(priv->ifp, "Failed reading diagnostics: %d\n", error); + } + + /* Update FEC, if any */ + error = mlx5e_fec_update(priv); + if (error != 0 && error != EOPNOTSUPP) { + mlx5_en_err(priv->ifp, + "Updating FEC failed: %d\n", error); } } Modified: stable/12/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:49:03 2019 (r353242) +++ stable/12/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:51:03 2019 (r353243) @@ -7992,31 +7992,47 @@ struct mlx5_ifc_pplr_reg_bits { }; struct mlx5_ifc_pplm_reg_bits { - u8 reserved_0[0x8]; - u8 local_port[0x8]; - u8 reserved_1[0x10]; + u8 reserved_at_0[0x8]; + u8 local_port[0x8]; + u8 reserved_at_10[0x10]; - u8 reserved_2[0x20]; + u8 reserved_at_20[0x20]; - u8 port_profile_mode[0x8]; - u8 static_port_profile[0x8]; - u8 active_port_profile[0x8]; - u8 reserved_3[0x8]; + u8 port_profile_mode[0x8]; + u8 static_port_profile[0x8]; + u8 active_port_profile[0x8]; + u8 reserved_at_58[0x8]; - u8 retransmission_active[0x8]; - u8 fec_mode_active[0x18]; + u8 retransmission_active[0x8]; + u8 fec_mode_active[0x18]; - u8 reserved_4[0x10]; - u8 v_100g_fec_override_cap[0x4]; - u8 v_50g_fec_override_cap[0x4]; - u8 v_25g_fec_override_cap[0x4]; - u8 v_10g_40g_fec_override_cap[0x4]; + u8 rs_fec_correction_bypass_cap[0x4]; + u8 reserved_at_84[0x8]; + u8 fec_override_cap_56g[0x4]; + u8 fec_override_cap_100g[0x4]; + u8 fec_override_cap_50g[0x4]; + u8 fec_override_cap_25g[0x4]; + u8 fec_override_cap_10g_40g[0x4]; - u8 reserved_5[0x10]; - u8 v_100g_fec_override_admin[0x4]; - u8 v_50g_fec_override_admin[0x4]; - u8 v_25g_fec_override_admin[0x4]; - u8 v_10g_40g_fec_override_admin[0x4]; + u8 rs_fec_correction_bypass_admin[0x4]; + u8 reserved_at_a4[0x8]; + u8 fec_override_admin_56g[0x4]; + u8 fec_override_admin_100g[0x4]; + u8 fec_override_admin_50g[0x4]; + u8 fec_override_admin_25g[0x4]; + u8 fec_override_admin_10g_40g[0x4]; + + u8 fec_override_cap_400g_8x[0x10]; + u8 fec_override_cap_200g_4x[0x10]; + u8 fec_override_cap_100g_2x[0x10]; + u8 fec_override_cap_50g_1x[0x10]; + + u8 fec_override_admin_400g_8x[0x10]; + u8 fec_override_admin_200g_4x[0x10]; + u8 fec_override_admin_100g_2x[0x10]; + u8 fec_override_admin_50g_1x[0x10]; + + u8 reserved_at_140[0xC0]; }; struct mlx5_ifc_ppll_reg_bits { @@ -8610,6 +8626,22 @@ struct mlx5_ifc_pcam_enhanced_features_bits { u8 ppcnt_statistical_group[0x1]; }; +struct mlx5_ifc_pcam_regs_5000_to_507f_bits { + u8 port_access_reg_cap_mask_127_to_96[0x20]; + u8 port_access_reg_cap_mask_95_to_64[0x20]; + + u8 port_access_reg_cap_mask_63_to_36[0x1c]; + u8 pplm[0x1]; + u8 port_access_reg_cap_mask_34_to_32[0x3]; + + u8 port_access_reg_cap_mask_31_to_13[0x13]; + u8 pbmc[0x1]; + u8 pptb[0x1]; + u8 port_access_reg_cap_mask_10_to_09[0x2]; + u8 ppcnt[0x1]; + u8 port_access_reg_cap_mask_07_to_00[0x8]; +}; + struct mlx5_ifc_pcam_reg_bits { u8 reserved_at_0[0x8]; u8 feature_group[0x8]; @@ -8619,6 +8651,7 @@ struct mlx5_ifc_pcam_reg_bits { u8 reserved_at_20[0x20]; union { + struct mlx5_ifc_pcam_regs_5000_to_507f_bits regs_5000_to_507f; u8 reserved_at_0[0x80]; } port_access_reg_cap_mask; From owner-svn-src-all@freebsd.org Mon Oct 7 09:52:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D3DCF128C5B; Mon, 7 Oct 2019 09:52:11 +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 46mwkM5Kqdz3FKK; Mon, 7 Oct 2019 09:52:11 +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 92473CE4D; Mon, 7 Oct 2019 09:52:11 +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 x979qBUO002504; Mon, 7 Oct 2019 09:52:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979qA4E002498; Mon, 7 Oct 2019 09:52:10 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070952.x979qA4E002498@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 09:52:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353244 - in stable/11/sys/dev/mlx5: . mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_en X-SVN-Commit-Revision: 353244 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:52:11 -0000 Author: hselasky Date: Mon Oct 7 09:52:10 2019 New Revision: 353244 URL: https://svnweb.freebsd.org/changeset/base/353244 Log: MFC r352985: Add sysctl(8) to get and set forward error correction, FEC, configuration in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_ifc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/device.h Mon Oct 7 09:52:10 2019 (r353244) @@ -1051,6 +1051,9 @@ enum mlx5_mcam_feature_groups { #define MLX5_CAP_PCAM_FEATURE(mdev, fld) \ MLX5_GET(pcam_reg, (mdev)->caps.pcam, feature_cap_mask.enhanced_features.fld) +#define MLX5_CAP_PCAM_REG(mdev, reg) \ + MLX5_GET(pcam_reg, (mdev)->caps.pcam, port_access_reg_cap_mask.regs_5000_to_507f.reg) + #define MLX5_CAP_MCAM_FEATURE(mdev, fld) \ MLX5_GET(mcam_reg, (mdev)->caps.mcam, mng_feature_cap_mask.enhanced_features.fld) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/driver.h Mon Oct 7 09:52:10 2019 (r353244) @@ -142,6 +142,7 @@ enum { MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, MLX5_REG_PMAOS = 0x5012, + MLX5_REG_PPLM = 0x5023, MLX5_REG_PBSR = 0x5038, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:52:10 2019 (r353244) @@ -74,6 +74,9 @@ #define MLX5E_MAX_PRIORITY 8 +#define MLX5E_MAX_FEC_10X_25X 4 +#define MLX5E_MAX_FEC_50X 4 + /* IEEE 802.1Qaz standard supported values */ #define IEEE_8021QAZ_MAX_TCS 8 @@ -710,6 +713,11 @@ struct mlx5e_params_ethtool { u8 prio_tc[MLX5E_MAX_PRIORITY]; u8 dscp2prio[MLX5_MAX_SUPPORTED_DSCP]; u8 trust_state; + u8 fec_mask_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u16 fec_mask_50x[MLX5E_MAX_FEC_50X]; + u8 fec_avail_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u16 fec_avail_50x[MLX5E_MAX_FEC_50X]; + u32 fec_mode_active; }; struct mlx5e_cq { @@ -1109,5 +1117,6 @@ void mlx5e_resume_sq(struct mlx5e_sq *sq); void mlx5e_update_sq_inline(struct mlx5e_sq *sq); void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); +int mlx5e_fec_update(struct mlx5e_priv *priv); #endif /* _MLX5_EN_H_ */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Oct 7 09:52:10 2019 (r353244) @@ -345,7 +345,286 @@ done: return (err); } +int +mlx5e_fec_update(struct mlx5e_priv *priv) +{ + struct mlx5_core_dev *mdev = priv->mdev; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + int err; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) + return (EOPNOTSUPP); + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) + return (EOPNOTSUPP); + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + return (err); + + /* get 10x..25x mask */ + priv->params_ethtool.fec_mask_10x_25x[0] = + MLX5_GET(pplm_reg, in, fec_override_admin_10g_40g); + priv->params_ethtool.fec_mask_10x_25x[1] = + MLX5_GET(pplm_reg, in, fec_override_admin_25g) & + MLX5_GET(pplm_reg, in, fec_override_admin_50g); + priv->params_ethtool.fec_mask_10x_25x[2] = + MLX5_GET(pplm_reg, in, fec_override_admin_56g); + priv->params_ethtool.fec_mask_10x_25x[3] = + MLX5_GET(pplm_reg, in, fec_override_admin_100g); + + /* get 10x..25x available bits */ + priv->params_ethtool.fec_avail_10x_25x[0] = + MLX5_GET(pplm_reg, in, fec_override_cap_10g_40g); + priv->params_ethtool.fec_avail_10x_25x[1] = + MLX5_GET(pplm_reg, in, fec_override_cap_25g) & + MLX5_GET(pplm_reg, in, fec_override_cap_50g); + priv->params_ethtool.fec_avail_10x_25x[2] = + MLX5_GET(pplm_reg, in, fec_override_cap_56g); + priv->params_ethtool.fec_avail_10x_25x[3] = + MLX5_GET(pplm_reg, in, fec_override_cap_100g); + + /* get 50x mask */ + priv->params_ethtool.fec_mask_50x[0] = + MLX5_GET(pplm_reg, in, fec_override_admin_50g_1x); + priv->params_ethtool.fec_mask_50x[1] = + MLX5_GET(pplm_reg, in, fec_override_admin_100g_2x); + priv->params_ethtool.fec_mask_50x[2] = + MLX5_GET(pplm_reg, in, fec_override_admin_200g_4x); + priv->params_ethtool.fec_mask_50x[3] = + MLX5_GET(pplm_reg, in, fec_override_admin_400g_8x); + + /* get 50x available bits */ + priv->params_ethtool.fec_avail_50x[0] = + MLX5_GET(pplm_reg, in, fec_override_cap_50g_1x); + priv->params_ethtool.fec_avail_50x[1] = + MLX5_GET(pplm_reg, in, fec_override_cap_100g_2x); + priv->params_ethtool.fec_avail_50x[2] = + MLX5_GET(pplm_reg, in, fec_override_cap_200g_4x); + priv->params_ethtool.fec_avail_50x[3] = + MLX5_GET(pplm_reg, in, fec_override_cap_400g_8x); + + /* get current FEC mask */ + priv->params_ethtool.fec_mode_active = + MLX5_GET(pplm_reg, in, fec_mode_active); + + return (0); +} + static int +mlx5e_fec_mask_10x_25x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + struct mlx5_core_dev *mdev = priv->mdev; + u32 out[MLX5_ST_SZ_DW(pplm_reg)] = {}; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + u8 fec_mask_10x_25x[MLX5E_MAX_FEC_10X_25X]; + u8 fec_cap_changed = 0; + u8 x; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_mask_10x_25x, + sizeof(priv->params_ethtool.fec_mask_10x_25x)); + if (err || !req->newptr) + goto done; + + err = SYSCTL_IN(req, fec_mask_10x_25x, + sizeof(fec_mask_10x_25x)); + if (err) + goto done; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) { + err = EOPNOTSUPP; + goto done; + } + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) { + err = EOPNOTSUPP; + goto done; + } + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + goto done; + + /* range check input value */ + for (x = 0; x != MLX5E_MAX_FEC_10X_25X; x++) { + /* check only one bit is set, if any */ + if (fec_mask_10x_25x[x] & (fec_mask_10x_25x[x] - 1)) { + err = ERANGE; + goto done; + } + /* check a supported bit is set, if any */ + if (fec_mask_10x_25x[x] & + ~priv->params_ethtool.fec_avail_10x_25x[x]) { + err = ERANGE; + goto done; + } + fec_cap_changed |= (fec_mask_10x_25x[x] ^ + priv->params_ethtool.fec_mask_10x_25x[x]); + } + + /* check for no changes */ + if (fec_cap_changed == 0) + goto done; + + memset(in, 0, sizeof(in)); + + MLX5_SET(pplm_reg, in, local_port, 1); + + /* set new values */ + MLX5_SET(pplm_reg, in, fec_override_admin_10g_40g, fec_mask_10x_25x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_25g, fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_50g, fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_56g, fec_mask_10x_25x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g, fec_mask_10x_25x[3]); + + /* preserve other values */ + MLX5_SET(pplm_reg, in, fec_override_admin_50g_1x, priv->params_ethtool.fec_mask_50x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g_2x, priv->params_ethtool.fec_mask_50x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_200g_4x, priv->params_ethtool.fec_mask_50x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_400g_8x, priv->params_ethtool.fec_mask_50x[3]); + + /* send new value to the firmware */ + err = -mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPLM, 0, 1); + if (err) + goto done; + + memcpy(priv->params_ethtool.fec_mask_10x_25x, fec_mask_10x_25x, + sizeof(priv->params_ethtool.fec_mask_10x_25x)); + + mlx5_toggle_port_link(priv->mdev); +done: + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_avail_10x_25x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_avail_10x_25x, + sizeof(priv->params_ethtool.fec_avail_10x_25x)); + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_mask_50x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + struct mlx5_core_dev *mdev = priv->mdev; + u32 out[MLX5_ST_SZ_DW(pplm_reg)] = {}; + u32 in[MLX5_ST_SZ_DW(pplm_reg)] = {}; + const int sz = MLX5_ST_SZ_BYTES(pplm_reg); + u16 fec_mask_50x[MLX5E_MAX_FEC_50X]; + u16 fec_cap_changed = 0; + u8 x; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_mask_50x, + sizeof(priv->params_ethtool.fec_mask_50x)); + if (err || !req->newptr) + goto done; + + err = SYSCTL_IN(req, fec_mask_50x, + sizeof(fec_mask_50x)); + if (err) + goto done; + + if (!MLX5_CAP_GEN(mdev, pcam_reg)) { + err = EOPNOTSUPP; + goto done; + } + + if (!MLX5_CAP_PCAM_REG(mdev, pplm)) { + err = EOPNOTSUPP; + goto done; + } + + MLX5_SET(pplm_reg, in, local_port, 1); + + err = -mlx5_core_access_reg(mdev, in, sz, in, sz, MLX5_REG_PPLM, 0, 0); + if (err) + goto done; + + /* range check input value */ + for (x = 0; x != MLX5E_MAX_FEC_50X; x++) { + /* check only one bit is set, if any */ + if (fec_mask_50x[x] & (fec_mask_50x[x] - 1)) { + err = ERANGE; + goto done; + } + /* check a supported bit is set, if any */ + if (fec_mask_50x[x] & + ~priv->params_ethtool.fec_avail_50x[x]) { + err = ERANGE; + goto done; + } + fec_cap_changed |= (fec_mask_50x[x] ^ + priv->params_ethtool.fec_mask_50x[x]); + } + + /* check for no changes */ + if (fec_cap_changed == 0) + goto done; + + memset(in, 0, sizeof(in)); + + MLX5_SET(pplm_reg, in, local_port, 1); + + /* set new values */ + MLX5_SET(pplm_reg, in, fec_override_admin_50g_1x, fec_mask_50x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g_2x, fec_mask_50x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_200g_4x, fec_mask_50x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_400g_8x, fec_mask_50x[3]); + + /* preserve other values */ + MLX5_SET(pplm_reg, in, fec_override_admin_10g_40g, priv->params_ethtool.fec_mask_10x_25x[0]); + MLX5_SET(pplm_reg, in, fec_override_admin_25g, priv->params_ethtool.fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_50g, priv->params_ethtool.fec_mask_10x_25x[1]); + MLX5_SET(pplm_reg, in, fec_override_admin_56g, priv->params_ethtool.fec_mask_10x_25x[2]); + MLX5_SET(pplm_reg, in, fec_override_admin_100g, priv->params_ethtool.fec_mask_10x_25x[3]); + + /* send new value to the firmware */ + err = -mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPLM, 0, 1); + if (err) + goto done; + + memcpy(priv->params_ethtool.fec_mask_50x, fec_mask_50x, + sizeof(priv->params_ethtool.fec_mask_50x)); + + mlx5_toggle_port_link(priv->mdev); +done: + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_fec_avail_50x_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.fec_avail_50x, + sizeof(priv->params_ethtool.fec_avail_50x)); + PRIV_UNLOCK(priv); + return (err); +} + +static int mlx5e_trust_state_handler(SYSCTL_HANDLER_ARGS) { struct mlx5e_priv *priv = arg1; @@ -1046,7 +1325,9 @@ mlx5e_create_diagnostics(struct mlx5e_priv *priv) void mlx5e_create_ethtool(struct mlx5e_priv *priv) { - struct sysctl_oid *node, *qos_node; + struct sysctl_oid *fec_node; + struct sysctl_oid *qos_node; + struct sysctl_oid *node; const char *pnameunit; struct mlx5e_port_buffer port_buffer; unsigned x; @@ -1125,6 +1406,54 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) mlx5e_ethtool_handler(NULL, priv, x, NULL); #endif } + } + + /* create fec node */ + fec_node = SYSCTL_ADD_NODE(&priv->sysctl_ctx, + SYSCTL_CHILDREN(node), OID_AUTO, + "fec", CTLFLAG_RW, NULL, "Forward Error Correction"); + if (fec_node == NULL) + return; + + if (mlx5e_fec_update(priv) == 0) { + SYSCTL_ADD_U32(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mode_active", CTLFLAG_RD | CTLFLAG_MPSAFE, + &priv->params_ethtool.fec_mode_active, 0, + "Current FEC mode bit, if any."); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mask_10x_25x", CTLTYPE_U8 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_mask_10x_25x_handler, "CU", + "Set FEC masks for 10G_40G, 25G_50G, 56G, 100G respectivly. " + "0:Auto " + "1:NOFEC " + "2:FIRECODE " + "4:RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "avail_10x_25x", CTLTYPE_U8 | CTLFLAG_RD | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_avail_10x_25x_handler, "CU", + "Get available FEC bits for 10G_40G, 25G_50G, 56G, 100G respectivly. " + "0:Auto " + "1:NOFEC " + "2:FIRECODE " + "4:RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "mask_50x", CTLTYPE_U16 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_mask_50x_handler, "SU", + "Set FEC masks for 50G 1x, 100G 2x, 200G 4x, 400G 8x respectivly. " + "0:Auto " + "128:RS " + "512:LL RS"); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(fec_node), OID_AUTO, + "avail_50x", CTLTYPE_U16 | CTLFLAG_RD | CTLFLAG_MPSAFE, + priv, 0, &mlx5e_fec_avail_50x_handler, "SU", + "Get available FEC bits for 50G 1x, 100G 2x, 200G 4x, 400G 8x respectivly. " + "0:Auto " + "128:RS " + "512:LL RS"); } SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:52:10 2019 (r353244) @@ -859,6 +859,7 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv) u64 rx_packets = 0; u64 rx_bytes = 0; u32 rx_out_of_buffer = 0; + int error; int i; int j; @@ -1015,12 +1016,19 @@ free_out: /* Update diagnostics, if any */ if (priv->params_ethtool.diag_pci_enable || priv->params_ethtool.diag_general_enable) { - int error = mlx5_core_get_diagnostics_full(mdev, + error = mlx5_core_get_diagnostics_full(mdev, priv->params_ethtool.diag_pci_enable ? &priv->params_pci : NULL, priv->params_ethtool.diag_general_enable ? &priv->params_general : NULL); if (error != 0) mlx5_en_err(priv->ifp, "Failed reading diagnostics: %d\n", error); + } + + /* Update FEC, if any */ + error = mlx5e_fec_update(priv); + if (error != 0 && error != EOPNOTSUPP) { + mlx5_en_err(priv->ifp, + "Updating FEC failed: %d\n", error); } } Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:51:03 2019 (r353243) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Oct 7 09:52:10 2019 (r353244) @@ -7992,31 +7992,47 @@ struct mlx5_ifc_pplr_reg_bits { }; struct mlx5_ifc_pplm_reg_bits { - u8 reserved_0[0x8]; - u8 local_port[0x8]; - u8 reserved_1[0x10]; + u8 reserved_at_0[0x8]; + u8 local_port[0x8]; + u8 reserved_at_10[0x10]; - u8 reserved_2[0x20]; + u8 reserved_at_20[0x20]; - u8 port_profile_mode[0x8]; - u8 static_port_profile[0x8]; - u8 active_port_profile[0x8]; - u8 reserved_3[0x8]; + u8 port_profile_mode[0x8]; + u8 static_port_profile[0x8]; + u8 active_port_profile[0x8]; + u8 reserved_at_58[0x8]; - u8 retransmission_active[0x8]; - u8 fec_mode_active[0x18]; + u8 retransmission_active[0x8]; + u8 fec_mode_active[0x18]; - u8 reserved_4[0x10]; - u8 v_100g_fec_override_cap[0x4]; - u8 v_50g_fec_override_cap[0x4]; - u8 v_25g_fec_override_cap[0x4]; - u8 v_10g_40g_fec_override_cap[0x4]; + u8 rs_fec_correction_bypass_cap[0x4]; + u8 reserved_at_84[0x8]; + u8 fec_override_cap_56g[0x4]; + u8 fec_override_cap_100g[0x4]; + u8 fec_override_cap_50g[0x4]; + u8 fec_override_cap_25g[0x4]; + u8 fec_override_cap_10g_40g[0x4]; - u8 reserved_5[0x10]; - u8 v_100g_fec_override_admin[0x4]; - u8 v_50g_fec_override_admin[0x4]; - u8 v_25g_fec_override_admin[0x4]; - u8 v_10g_40g_fec_override_admin[0x4]; + u8 rs_fec_correction_bypass_admin[0x4]; + u8 reserved_at_a4[0x8]; + u8 fec_override_admin_56g[0x4]; + u8 fec_override_admin_100g[0x4]; + u8 fec_override_admin_50g[0x4]; + u8 fec_override_admin_25g[0x4]; + u8 fec_override_admin_10g_40g[0x4]; + + u8 fec_override_cap_400g_8x[0x10]; + u8 fec_override_cap_200g_4x[0x10]; + u8 fec_override_cap_100g_2x[0x10]; + u8 fec_override_cap_50g_1x[0x10]; + + u8 fec_override_admin_400g_8x[0x10]; + u8 fec_override_admin_200g_4x[0x10]; + u8 fec_override_admin_100g_2x[0x10]; + u8 fec_override_admin_50g_1x[0x10]; + + u8 reserved_at_140[0xC0]; }; struct mlx5_ifc_ppll_reg_bits { @@ -8610,6 +8626,22 @@ struct mlx5_ifc_pcam_enhanced_features_bits { u8 ppcnt_statistical_group[0x1]; }; +struct mlx5_ifc_pcam_regs_5000_to_507f_bits { + u8 port_access_reg_cap_mask_127_to_96[0x20]; + u8 port_access_reg_cap_mask_95_to_64[0x20]; + + u8 port_access_reg_cap_mask_63_to_36[0x1c]; + u8 pplm[0x1]; + u8 port_access_reg_cap_mask_34_to_32[0x3]; + + u8 port_access_reg_cap_mask_31_to_13[0x13]; + u8 pbmc[0x1]; + u8 pptb[0x1]; + u8 port_access_reg_cap_mask_10_to_09[0x2]; + u8 ppcnt[0x1]; + u8 port_access_reg_cap_mask_07_to_00[0x8]; +}; + struct mlx5_ifc_pcam_reg_bits { u8 reserved_at_0[0x8]; u8 feature_group[0x8]; @@ -8619,6 +8651,7 @@ struct mlx5_ifc_pcam_reg_bits { u8 reserved_at_20[0x20]; union { + struct mlx5_ifc_pcam_regs_5000_to_507f_bits regs_5000_to_507f; u8 reserved_at_0[0x80]; } port_access_reg_cap_mask; From owner-svn-src-all@freebsd.org Mon Oct 7 09:53:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2283C128EFA; Mon, 7 Oct 2019 09:53:14 +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 46mwlZ06fZz3FTk; Mon, 7 Oct 2019 09:53:13 +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 BE681CE6C; Mon, 7 Oct 2019 09:53:13 +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 x979rDfU005551; Mon, 7 Oct 2019 09:53:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979rDmh005547; Mon, 7 Oct 2019 09:53:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070953.x979rDmh005547@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 09:53:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353245 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353245 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:53:14 -0000 Author: hselasky Date: Mon Oct 7 09:53:12 2019 New Revision: 353245 URL: https://svnweb.freebsd.org/changeset/base/353245 Log: MFC r352986: Return an error from ioctl(MLX5_FW_RESET) if reset was rejected in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:52:10 2019 (r353244) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:53:12 2019 (r353245) @@ -110,7 +110,7 @@ void mlx5e_cleanup(void); int mlx5_ctl_init(void); void mlx5_ctl_fini(void); void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); -void mlx5_fwdump(struct mlx5_core_dev *mdev); +int mlx5_fwdump(struct mlx5_core_dev *mdev); void mlx5_fwdump_clean(struct mlx5_core_dev *mdev); struct mlx5_crspace_regmap { Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:52:10 2019 (r353244) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:53:12 2019 (r353245) @@ -148,7 +148,7 @@ unlock_vsc: mlx5_vsc_unlock(mdev); } -void +int mlx5_fwdump(struct mlx5_core_dev *mdev) { const struct mlx5_crspace_regmap *r; @@ -157,12 +157,15 @@ mlx5_fwdump(struct mlx5_core_dev *mdev) mlx5_core_info(mdev, "Issuing FW dump\n"); mtx_lock(&mdev->dump_lock); - if (mdev->dump_data == NULL) + if (mdev->dump_data == NULL) { + error = EIO; goto failed; + } if (mdev->dump_valid) { /* only one dump */ mlx5_core_warn(mdev, "Only one FW dump can be captured aborting FW dump\n"); + error = EEXIST; goto failed; } @@ -187,6 +190,7 @@ unlock_vsc: mlx5_vsc_unlock(mdev); failed: mtx_unlock(&mdev->dump_lock); + return (error); } void @@ -400,7 +404,7 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d error = mlx5_dbsf_to_core(devaddr, &mdev); if (error != 0) break; - mlx5_fwdump(mdev); + error = mlx5_fwdump(mdev); break; case MLX5_FW_UPDATE: if ((fflag & FWRITE) == 0) { Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:52:10 2019 (r353244) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:53:12 2019 (r353245) @@ -300,7 +300,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, /* Execute cr-dump and SW reset */ if (lock != -EBUSY) { - mlx5_fwdump(dev); + (void)mlx5_fwdump(dev); reset_fw_if_needed(dev); delay_ms = MLX5_FW_RESET_WAIT_MS; } From owner-svn-src-all@freebsd.org Mon Oct 7 09:54:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 971CA128FAD; Mon, 7 Oct 2019 09:54:09 +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 46mwmd3QNMz3Fdn; Mon, 7 Oct 2019 09:54:09 +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 58810CE6D; Mon, 7 Oct 2019 09:54:09 +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 x979s9J4005663; Mon, 7 Oct 2019 09:54:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979s8XC005660; Mon, 7 Oct 2019 09:54:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070954.x979s8XC005660@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 09:54:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353246 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353246 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:54:09 -0000 Author: hselasky Date: Mon Oct 7 09:54:08 2019 New Revision: 353246 URL: https://svnweb.freebsd.org/changeset/base/353246 Log: MFC r352986: Return an error from ioctl(MLX5_FW_RESET) if reset was rejected in mlx5core. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:53:12 2019 (r353245) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 09:54:08 2019 (r353246) @@ -110,7 +110,7 @@ void mlx5e_cleanup(void); int mlx5_ctl_init(void); void mlx5_ctl_fini(void); void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); -void mlx5_fwdump(struct mlx5_core_dev *mdev); +int mlx5_fwdump(struct mlx5_core_dev *mdev); void mlx5_fwdump_clean(struct mlx5_core_dev *mdev); struct mlx5_crspace_regmap { Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:53:12 2019 (r353245) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 09:54:08 2019 (r353246) @@ -148,7 +148,7 @@ unlock_vsc: mlx5_vsc_unlock(mdev); } -void +int mlx5_fwdump(struct mlx5_core_dev *mdev) { const struct mlx5_crspace_regmap *r; @@ -157,12 +157,15 @@ mlx5_fwdump(struct mlx5_core_dev *mdev) mlx5_core_info(mdev, "Issuing FW dump\n"); mtx_lock(&mdev->dump_lock); - if (mdev->dump_data == NULL) + if (mdev->dump_data == NULL) { + error = EIO; goto failed; + } if (mdev->dump_valid) { /* only one dump */ mlx5_core_warn(mdev, "Only one FW dump can be captured aborting FW dump\n"); + error = EEXIST; goto failed; } @@ -187,6 +190,7 @@ unlock_vsc: mlx5_vsc_unlock(mdev); failed: mtx_unlock(&mdev->dump_lock); + return (error); } void @@ -400,7 +404,7 @@ mlx5_ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t d error = mlx5_dbsf_to_core(devaddr, &mdev); if (error != 0) break; - mlx5_fwdump(mdev); + error = mlx5_fwdump(mdev); break; case MLX5_FW_UPDATE: if ((fflag & FWRITE) == 0) { Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:53:12 2019 (r353245) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Oct 7 09:54:08 2019 (r353246) @@ -300,7 +300,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, /* Execute cr-dump and SW reset */ if (lock != -EBUSY) { - mlx5_fwdump(dev); + (void)mlx5_fwdump(dev); reset_fw_if_needed(dev); delay_ms = MLX5_FW_RESET_WAIT_MS; } From owner-svn-src-all@freebsd.org Mon Oct 7 09:55:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AA438129042; Mon, 7 Oct 2019 09:55:14 +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 46mwnt3n9Fz3FnC; Mon, 7 Oct 2019 09:55:14 +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 64C91CE6E; Mon, 7 Oct 2019 09:55:14 +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 x979tE5d005819; Mon, 7 Oct 2019 09:55:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979tDiY005817; Mon, 7 Oct 2019 09:55:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070955.x979tDiY005817@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 09:55:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353247 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353247 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:55:14 -0000 Author: hselasky Date: Mon Oct 7 09:55:13 2019 New Revision: 353247 URL: https://svnweb.freebsd.org/changeset/base/353247 Log: MFC r352987: Remove mkey_be from channel structure in mlx5en(4). Use value from priv structure instead. This saves some space in the channel structure. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:54:08 2019 (r353246) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:55:13 2019 (r353247) @@ -862,7 +862,6 @@ struct mlx5e_channel { struct mlx5e_rq rq; struct mlx5e_snd_tag tag; struct mlx5e_sq sq[MLX5E_MAX_TX_NUM_TC]; - u32 mkey_be; u8 num_tc; /* control */ Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:54:08 2019 (r353246) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:55:13 2019 (r353247) @@ -1272,7 +1272,7 @@ mlx5e_create_rq(struct mlx5e_channel *c, /* set value for constant fields */ for (j = 0; j < rq->nsegs; j++) - wqe->data[j].lkey = c->mkey_be; + wqe->data[j].lkey = cpu_to_be32(priv->mr.key); } INIT_WORK(&rq->dim.work, mlx5e_dim_work); @@ -1628,7 +1628,7 @@ mlx5e_create_sq(struct mlx5e_channel *c, if (err) goto err_sq_wq_destroy; - sq->mkey_be = c->mkey_be; + sq->mkey_be = cpu_to_be32(priv->mr.key); sq->ifp = priv->ifp; sq->priv = priv; sq->tc = tc; @@ -2158,7 +2158,6 @@ mlx5e_open_channel(struct mlx5e_priv *priv, int ix, /* setup send tag */ c->tag.m_snd_tag.ifp = priv->ifp; c->tag.type = IF_SND_TAG_TYPE_UNLIMITED; - c->mkey_be = cpu_to_be32(priv->mr.key); c->num_tc = priv->num_tc; /* init mutexes */ From owner-svn-src-all@freebsd.org Mon Oct 7 09:57:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6499112911D; Mon, 7 Oct 2019 09:57:15 +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 46mwrC1wj5z3FxB; Mon, 7 Oct 2019 09:57:15 +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 25571CE70; Mon, 7 Oct 2019 09:57:15 +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 x979vFrG005999; Mon, 7 Oct 2019 09:57:15 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979vEB9005997; Mon, 7 Oct 2019 09:57:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070957.x979vEB9005997@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 09:57:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353248 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353248 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:57:15 -0000 Author: hselasky Date: Mon Oct 7 09:57:14 2019 New Revision: 353248 URL: https://svnweb.freebsd.org/changeset/base/353248 Log: MFC r352987: Remove mkey_be from channel structure in mlx5en(4). Use value from priv structure instead. This saves some space in the channel structure. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:55:13 2019 (r353247) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:57:14 2019 (r353248) @@ -840,7 +840,6 @@ struct mlx5e_channel { struct mlx5e_rq rq; struct mlx5e_sq sq[MLX5E_MAX_TX_NUM_TC]; struct ifnet *ifp; - u32 mkey_be; u8 num_tc; /* control */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:55:13 2019 (r353247) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:57:14 2019 (r353248) @@ -1165,7 +1165,7 @@ mlx5e_create_rq(struct mlx5e_channel *c, /* set value for constant fields */ for (j = 0; j < rq->nsegs; j++) - wqe->data[j].lkey = c->mkey_be; + wqe->data[j].lkey = cpu_to_be32(priv->mr.key); } INIT_WORK(&rq->dim.work, mlx5e_dim_work); @@ -1521,7 +1521,7 @@ mlx5e_create_sq(struct mlx5e_channel *c, if (err) goto err_sq_wq_destroy; - sq->mkey_be = c->mkey_be; + sq->mkey_be = cpu_to_be32(priv->mr.key); sq->ifp = priv->ifp; sq->priv = priv; sq->tc = tc; @@ -2049,7 +2049,6 @@ mlx5e_open_channel(struct mlx5e_priv *priv, int ix, c->priv = priv; c->ix = ix; c->ifp = priv->ifp; - c->mkey_be = cpu_to_be32(priv->mr.key); c->num_tc = priv->num_tc; /* init mutexes */ From owner-svn-src-all@freebsd.org Mon Oct 7 09:57:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A92DF1291A8; Mon, 7 Oct 2019 09:57:57 +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 46mws142jzz3G59; Mon, 7 Oct 2019 09:57:57 +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 6EAA2CE71; Mon, 7 Oct 2019 09:57:57 +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 x979vv84006106; Mon, 7 Oct 2019 09:57:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979vvH5006105; Mon, 7 Oct 2019 09:57:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070957.x979vvH5006105@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 09:57:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353249 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353249 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:57:57 -0000 Author: hselasky Date: Mon Oct 7 09:57:57 2019 New Revision: 353249 URL: https://svnweb.freebsd.org/changeset/base/353249 Log: MFC r352988: Remove unused cpu field from channel structure in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:57:14 2019 (r353248) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:57:57 2019 (r353249) @@ -867,7 +867,6 @@ struct mlx5e_channel { /* control */ struct mlx5e_priv *priv; int ix; - int cpu; } __aligned(MLX5E_CACHELINE_SIZE); enum mlx5e_traffic_types { From owner-svn-src-all@freebsd.org Mon Oct 7 09:58:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 14B5E12922E; Mon, 7 Oct 2019 09:58:37 +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 46mwsm6V8sz3GCv; Mon, 7 Oct 2019 09:58:36 +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 BFAB8CE72; Mon, 7 Oct 2019 09:58:36 +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 x979waml006204; Mon, 7 Oct 2019 09:58:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x979wa4J006203; Mon, 7 Oct 2019 09:58:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910070958.x979wa4J006203@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 09:58:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353250 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353250 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 09:58:37 -0000 Author: hselasky Date: Mon Oct 7 09:58:36 2019 New Revision: 353250 URL: https://svnweb.freebsd.org/changeset/base/353250 Log: MFC r352988: Remove unused cpu field from channel structure in mlx5en(4). Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:57:57 2019 (r353249) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:58:36 2019 (r353250) @@ -845,7 +845,6 @@ struct mlx5e_channel { /* control */ struct mlx5e_priv *priv; int ix; - int cpu; } __aligned(MLX5E_CACHELINE_SIZE); enum mlx5e_traffic_types { From owner-svn-src-all@freebsd.org Mon Oct 7 10:09:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A96A0129527; Mon, 7 Oct 2019 10:09:27 +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 46mx6H41qYz3GlY; Mon, 7 Oct 2019 10:09:27 +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 691FED031; Mon, 7 Oct 2019 10:09:27 +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 x97A9RoD012081; Mon, 7 Oct 2019 10:09:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97A9RhY012079; Mon, 7 Oct 2019 10:09:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071009.x97A9RhY012079@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 10:09:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353251 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353251 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:09:27 -0000 Author: hselasky Date: Mon Oct 7 10:09:26 2019 New Revision: 353251 URL: https://svnweb.freebsd.org/changeset/base/353251 Log: MFC r352989: Seal transmit path with regards to using destroyed mutex in mlx5en(4). It may happen during link down that the running state may be observed non-zero in the transmit routine, right before the running state is cleared. This may end up using a destroyed mutex. Make all channel mutexes and callouts persistant. Preserve receive and send queue statistics during link toggle. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 09:58:36 2019 (r353250) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:09:26 2019 (r353251) @@ -138,6 +138,10 @@ #define MLX5E_100MB (100000) #define MLX5E_1GB (1000000) +#define MLX5E_ZERO(ptr, field) \ + memset(&(ptr)->field, 0, \ + sizeof(*(ptr)) - __offsetof(__typeof(*(ptr)), field)) + MALLOC_DECLARE(M_MLX5EN); struct mlx5_core_dev; @@ -740,15 +744,18 @@ struct mlx5e_rq_mbuf { }; struct mlx5e_rq { + /* persistant fields */ + struct mtx mtx; + struct mlx5e_rq_stats stats; + /* data path */ +#define mlx5e_rq_zero_start wq struct mlx5_wq_ll wq; - struct mtx mtx; bus_dma_tag_t dma_tag; u32 wqe_sz; u32 nsegs; struct mlx5e_rq_mbuf *mbuf; struct ifnet *ifp; - struct mlx5e_rq_stats stats; struct mlx5e_cq cq; struct lro_ctrl lro; volatile int enabled; @@ -782,11 +789,15 @@ struct mlx5e_snd_tag { }; struct mlx5e_sq { - /* data path */ + /* persistant fields */ struct mtx lock; - bus_dma_tag_t dma_tag; struct mtx comp_lock; + struct mlx5e_sq_stats stats; + /* data path */ +#define mlx5e_sq_zero_start dma_tag + bus_dma_tag_t dma_tag; + /* dirtied @completion */ u16 cc; @@ -805,7 +816,6 @@ struct mlx5e_sq { u32 d32[2]; u64 d64; } doorbell; - struct mlx5e_sq_stats stats; struct mlx5e_cq cq; @@ -858,13 +868,9 @@ mlx5e_sq_queue_level(struct mlx5e_sq *sq) } struct mlx5e_channel { - /* data path */ struct mlx5e_rq rq; struct mlx5e_snd_tag tag; struct mlx5e_sq sq[MLX5E_MAX_TX_NUM_TC]; - u8 num_tc; - - /* control */ struct mlx5e_priv *priv; int ix; } __aligned(MLX5E_CACHELINE_SIZE); Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 09:58:36 2019 (r353250) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:09:26 2019 (r353251) @@ -1480,8 +1480,6 @@ mlx5e_close_rq(struct mlx5e_rq *rq) callout_stop(&rq->watchdog); mtx_unlock(&rq->mtx); - callout_drain(&rq->watchdog); - mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); } @@ -1563,7 +1561,7 @@ mlx5e_refresh_sq_inline_sub(struct mlx5e_priv *priv, s { int i; - for (i = 0; i != c->num_tc; i++) { + for (i = 0; i != priv->num_tc; i++) { mtx_lock(&c->sq[i].lock); mlx5e_update_sq_inline(&c->sq[i]); mtx_unlock(&c->sq[i].lock); @@ -1750,6 +1748,12 @@ mlx5e_open_sq(struct mlx5e_channel *c, { int err; + sq->cev_factor = c->priv->params_ethtool.tx_completion_fact; + + /* ensure the TX completion event factor is not zero */ + if (sq->cev_factor == 0) + sq->cev_factor = 1; + err = mlx5e_create_sq(c, tc, param, sq); if (err) return (err); @@ -1861,9 +1865,6 @@ mlx5e_drain_sq(struct mlx5e_sq *sq) mlx5e_sq_send_nops_locked(sq, 1); mtx_unlock(&sq->lock); - /* make sure it is safe to free the callout */ - callout_drain(&sq->cev_callout); - /* wait till SQ is empty or link is down */ mtx_lock(&sq->lock); while (sq->cc != sq->pc && @@ -2048,7 +2049,7 @@ mlx5e_open_tx_cqs(struct mlx5e_channel *c, int err; int tc; - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc < c->priv->num_tc; tc++) { /* open completion queue */ err = mlx5e_open_cq(c->priv, &cparam->tx_cq, &c->sq[tc].cq, &mlx5e_tx_cq_comp, c->ix); @@ -2069,7 +2070,7 @@ mlx5e_close_tx_cqs(struct mlx5e_channel *c) { int tc; - for (tc = 0; tc < c->num_tc; tc++) + for (tc = 0; tc < c->priv->num_tc; tc++) mlx5e_close_cq(&c->sq[tc].cq); } @@ -2080,7 +2081,7 @@ mlx5e_open_sqs(struct mlx5e_channel *c, int err; int tc; - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc < c->priv->num_tc; tc++) { err = mlx5e_open_sq(c, tc, &cparam->sq, &c->sq[tc]); if (err) goto err_close_sqs; @@ -2100,20 +2101,28 @@ mlx5e_close_sqs_wait(struct mlx5e_channel *c) { int tc; - for (tc = 0; tc < c->num_tc; tc++) + for (tc = 0; tc < c->priv->num_tc; tc++) mlx5e_close_sq_wait(&c->sq[tc]); } static void -mlx5e_chan_mtx_init(struct mlx5e_channel *c) +mlx5e_chan_static_init(struct mlx5e_priv *priv, struct mlx5e_channel *c, int ix) { int tc; + /* setup priv and channel number */ + c->priv = priv; + c->ix = ix; + + /* setup send tag */ + c->tag.m_snd_tag.ifp = priv->ifp; + c->tag.type = IF_SND_TAG_TYPE_UNLIMITED; + mtx_init(&c->rq.mtx, "mlx5rx", MTX_NETWORK_LOCK, MTX_DEF); callout_init_mtx(&c->rq.watchdog, &c->rq.mtx, 0); - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc != MLX5E_MAX_TX_NUM_TC; tc++) { struct mlx5e_sq *sq = c->sq + tc; mtx_init(&sq->lock, "mlx5tx", @@ -2122,47 +2131,37 @@ mlx5e_chan_mtx_init(struct mlx5e_channel *c) MTX_NETWORK_LOCK " TX", MTX_DEF); callout_init_mtx(&sq->cev_callout, &sq->lock, 0); - - sq->cev_factor = c->priv->params_ethtool.tx_completion_fact; - - /* ensure the TX completion event factor is not zero */ - if (sq->cev_factor == 0) - sq->cev_factor = 1; } } static void -mlx5e_chan_mtx_destroy(struct mlx5e_channel *c) +mlx5e_chan_static_destroy(struct mlx5e_channel *c) { int tc; + callout_drain(&c->rq.watchdog); + mtx_destroy(&c->rq.mtx); - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc != MLX5E_MAX_TX_NUM_TC; tc++) { + callout_drain(&c->sq[tc].cev_callout); mtx_destroy(&c->sq[tc].lock); mtx_destroy(&c->sq[tc].comp_lock); } } static int -mlx5e_open_channel(struct mlx5e_priv *priv, int ix, +mlx5e_open_channel(struct mlx5e_priv *priv, struct mlx5e_channel_param *cparam, struct mlx5e_channel *c) { - int err; + int i, err; - memset(c, 0, sizeof(*c)); + /* zero non-persistant data */ + MLX5E_ZERO(&c->rq, mlx5e_rq_zero_start); + for (i = 0; i != priv->num_tc; i++) + MLX5E_ZERO(&c->sq[i], mlx5e_sq_zero_start); - c->priv = priv; - c->ix = ix; - /* setup send tag */ - c->tag.m_snd_tag.ifp = priv->ifp; - c->tag.type = IF_SND_TAG_TYPE_UNLIMITED; - c->num_tc = priv->num_tc; - - /* init mutexes */ - mlx5e_chan_mtx_init(c); - /* open transmit completion queue */ err = mlx5e_open_tx_cqs(c, cparam); if (err) @@ -2197,8 +2196,6 @@ err_close_tx_cqs: mlx5e_close_tx_cqs(c); err_free: - /* destroy mutexes */ - mlx5e_chan_mtx_destroy(c); return (err); } @@ -2214,8 +2211,6 @@ mlx5e_close_channel_wait(struct mlx5e_channel *c) mlx5e_close_rq_wait(&c->rq); mlx5e_close_sqs_wait(c); mlx5e_close_tx_cqs(c); - /* destroy mutexes */ - mlx5e_chan_mtx_destroy(c); } static int @@ -2411,14 +2406,16 @@ mlx5e_build_channel_param(struct mlx5e_priv *priv, static int mlx5e_open_channels(struct mlx5e_priv *priv) { - struct mlx5e_channel_param cparam; + struct mlx5e_channel_param *cparam; int err; int i; int j; - mlx5e_build_channel_param(priv, &cparam); + cparam = malloc(sizeof(*cparam), M_MLX5EN, M_WAITOK); + + mlx5e_build_channel_param(priv, cparam); for (i = 0; i < priv->params.num_channels; i++) { - err = mlx5e_open_channel(priv, i, &cparam, &priv->channel[i]); + err = mlx5e_open_channel(priv, cparam, &priv->channel[i]); if (err) goto err_close_channels; } @@ -2428,6 +2425,7 @@ mlx5e_open_channels(struct mlx5e_priv *priv) if (err) goto err_close_channels; } + free(cparam, M_MLX5EN); return (0); err_close_channels: @@ -2435,6 +2433,7 @@ err_close_channels: mlx5e_close_channel(&priv->channel[i]); mlx5e_close_channel_wait(&priv->channel[i]); } + free(cparam, M_MLX5EN); return (err); } @@ -2544,7 +2543,7 @@ mlx5e_refresh_channel_params_sub(struct mlx5e_priv *pr if (err) goto done; - for (i = 0; i != c->num_tc; i++) { + for (i = 0; i != priv->num_tc; i++) { err = mlx5e_refresh_sq_params(priv, &c->sq[i]); if (err) goto done; @@ -3599,17 +3598,26 @@ static const char *mlx5e_pport_stats_desc[] = { }; static void -mlx5e_priv_mtx_init(struct mlx5e_priv *priv) +mlx5e_priv_static_init(struct mlx5e_priv *priv, const uint32_t channels) { + uint32_t x; + mtx_init(&priv->async_events_mtx, "mlx5async", MTX_NETWORK_LOCK, MTX_DEF); sx_init(&priv->state_lock, "mlx5state"); callout_init_mtx(&priv->watchdog, &priv->async_events_mtx, 0); MLX5_INIT_DOORBELL_LOCK(&priv->doorbell_lock); + for (x = 0; x != channels; x++) + mlx5e_chan_static_init(priv, &priv->channel[x], x); } static void -mlx5e_priv_mtx_destroy(struct mlx5e_priv *priv) +mlx5e_priv_static_destroy(struct mlx5e_priv *priv, const uint32_t channels) { + uint32_t x; + + for (x = 0; x != channels; x++) + mlx5e_chan_static_destroy(&priv->channel[x]); + callout_drain(&priv->watchdog); mtx_destroy(&priv->async_events_mtx); sx_destroy(&priv->state_lock); } @@ -3639,7 +3647,7 @@ mlx5e_disable_tx_dma(struct mlx5e_channel *ch) { int i; - for (i = 0; i < ch->num_tc; i++) + for (i = 0; i < ch->priv->num_tc; i++) mlx5e_drain_sq(&ch->sq[i]); } @@ -3691,7 +3699,7 @@ mlx5e_enable_tx_dma(struct mlx5e_channel *ch) { int i; - for (i = 0; i < ch->num_tc; i++) + for (i = 0; i < ch->priv->num_tc; i++) mlx5e_resume_sq(&ch->sq[i]); } @@ -3706,8 +3714,6 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) callout_stop(&rq->watchdog); mtx_unlock(&rq->mtx); - callout_drain(&rq->watchdog); - err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); if (err != 0) { mlx5_en_err(rq->ifp, @@ -4126,13 +4132,15 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) priv = malloc(sizeof(*priv) + (sizeof(priv->channel[0]) * mdev->priv.eq_table.num_comp_vectors), M_MLX5EN, M_WAITOK | M_ZERO); - mlx5e_priv_mtx_init(priv); ifp = priv->ifp = if_alloc(IFT_ETHER); if (ifp == NULL) { mlx5_core_err(mdev, "if_alloc() failed\n"); goto err_free_priv; } + /* setup all static fields */ + mlx5e_priv_static_init(priv, mdev->priv.eq_table.num_comp_vectors); + ifp->if_softc = priv; if_initname(ifp, "mce", device_get_unit(mdev->pdev->dev.bsddev)); ifp->if_mtu = ETHERMTU; @@ -4359,10 +4367,10 @@ err_free_sysctl: sysctl_ctx_free(&priv->sysctl_ctx); if (priv->sysctl_debug) sysctl_ctx_free(&priv->stats.port_stats_debug.ctx); + mlx5e_priv_static_destroy(priv, mdev->priv.eq_table.num_comp_vectors); if_free(ifp); err_free_priv: - mlx5e_priv_mtx_destroy(priv); free(priv, M_MLX5EN); return (NULL); } @@ -4416,7 +4424,6 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp /* unregister device */ ifmedia_removeall(&priv->media); ether_ifdetach(ifp); - if_free(ifp); #ifdef RATELIMIT mlx5e_rl_cleanup(priv); @@ -4434,7 +4441,8 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp mlx5_unmap_free_uar(priv->mdev, &priv->cq_uar); mlx5e_disable_async_events(priv); flush_workqueue(priv->wq); - mlx5e_priv_mtx_destroy(priv); + mlx5e_priv_static_destroy(priv, mdev->priv.eq_table.num_comp_vectors); + if_free(ifp); free(priv, M_MLX5EN); } From owner-svn-src-all@freebsd.org Mon Oct 7 10:16:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C3DDB129773; Mon, 7 Oct 2019 10:16:51 +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 46mxGq4mXGz3H9k; Mon, 7 Oct 2019 10:16:51 +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 839A3D1E8; Mon, 7 Oct 2019 10:16:51 +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 x97AGpdf018397; Mon, 7 Oct 2019 10:16:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AGpfH018395; Mon, 7 Oct 2019 10:16:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071016.x97AGpfH018395@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 10:16:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353252 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353252 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:16:51 -0000 Author: hselasky Date: Mon Oct 7 10:16:50 2019 New Revision: 353252 URL: https://svnweb.freebsd.org/changeset/base/353252 Log: MFC r352989: Seal transmit path with regards to using destroyed mutex in mlx5en(4). It may happen during link down that the running state may be observed non-zero in the transmit routine, right before the running state is cleared. This may end up using a destroyed mutex. Make all channel mutexes and callouts persistant. Preserve receive and send queue statistics during link toggle. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:09:26 2019 (r353251) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:16:50 2019 (r353252) @@ -137,6 +137,10 @@ #define MLX5E_100MB (100000) #define MLX5E_1GB (1000000) +#define MLX5E_ZERO(ptr, field) \ + memset(&(ptr)->field, 0, \ + sizeof(*(ptr)) - __offsetof(__typeof(*(ptr)), field)) + MALLOC_DECLARE(M_MLX5EN); struct mlx5_core_dev; @@ -739,15 +743,18 @@ struct mlx5e_rq_mbuf { }; struct mlx5e_rq { + /* persistant fields */ + struct mtx mtx; + struct mlx5e_rq_stats stats; + /* data path */ +#define mlx5e_rq_zero_start wq struct mlx5_wq_ll wq; - struct mtx mtx; bus_dma_tag_t dma_tag; u32 wqe_sz; u32 nsegs; struct mlx5e_rq_mbuf *mbuf; struct ifnet *ifp; - struct mlx5e_rq_stats stats; struct mlx5e_cq cq; struct lro_ctrl lro; volatile int enabled; @@ -776,11 +783,15 @@ enum { }; struct mlx5e_sq { - /* data path */ + /* persistant fields */ struct mtx lock; - bus_dma_tag_t dma_tag; struct mtx comp_lock; + struct mlx5e_sq_stats stats; + /* data path */ +#define mlx5e_sq_zero_start dma_tag + bus_dma_tag_t dma_tag; + /* dirtied @completion */ u16 cc; @@ -799,7 +810,6 @@ struct mlx5e_sq { u32 d32[2]; u64 d64; } doorbell; - struct mlx5e_sq_stats stats; struct mlx5e_cq cq; @@ -836,13 +846,9 @@ mlx5e_sq_has_room_for(struct mlx5e_sq *sq, u16 n) } struct mlx5e_channel { - /* data path */ struct mlx5e_rq rq; struct mlx5e_sq sq[MLX5E_MAX_TX_NUM_TC]; struct ifnet *ifp; - u8 num_tc; - - /* control */ struct mlx5e_priv *priv; int ix; } __aligned(MLX5E_CACHELINE_SIZE); Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:09:26 2019 (r353251) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:16:50 2019 (r353252) @@ -1373,8 +1373,6 @@ mlx5e_close_rq(struct mlx5e_rq *rq) callout_stop(&rq->watchdog); mtx_unlock(&rq->mtx); - callout_drain(&rq->watchdog); - mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); } @@ -1456,7 +1454,7 @@ mlx5e_refresh_sq_inline_sub(struct mlx5e_priv *priv, s { int i; - for (i = 0; i != c->num_tc; i++) { + for (i = 0; i != priv->num_tc; i++) { mtx_lock(&c->sq[i].lock); mlx5e_update_sq_inline(&c->sq[i]); mtx_unlock(&c->sq[i].lock); @@ -1643,6 +1641,12 @@ mlx5e_open_sq(struct mlx5e_channel *c, { int err; + sq->cev_factor = c->priv->params_ethtool.tx_completion_fact; + + /* ensure the TX completion event factor is not zero */ + if (sq->cev_factor == 0) + sq->cev_factor = 1; + err = mlx5e_create_sq(c, tc, param, sq); if (err) return (err); @@ -1754,9 +1758,6 @@ mlx5e_drain_sq(struct mlx5e_sq *sq) mlx5e_sq_send_nops_locked(sq, 1); mtx_unlock(&sq->lock); - /* make sure it is safe to free the callout */ - callout_drain(&sq->cev_callout); - /* wait till SQ is empty or link is down */ mtx_lock(&sq->lock); while (sq->cc != sq->pc && @@ -1941,7 +1942,7 @@ mlx5e_open_tx_cqs(struct mlx5e_channel *c, int err; int tc; - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc < c->priv->num_tc; tc++) { /* open completion queue */ err = mlx5e_open_cq(c->priv, &cparam->tx_cq, &c->sq[tc].cq, &mlx5e_tx_cq_comp, c->ix); @@ -1962,7 +1963,7 @@ mlx5e_close_tx_cqs(struct mlx5e_channel *c) { int tc; - for (tc = 0; tc < c->num_tc; tc++) + for (tc = 0; tc < c->priv->num_tc; tc++) mlx5e_close_cq(&c->sq[tc].cq); } @@ -1973,7 +1974,7 @@ mlx5e_open_sqs(struct mlx5e_channel *c, int err; int tc; - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc < c->priv->num_tc; tc++) { err = mlx5e_open_sq(c, tc, &cparam->sq, &c->sq[tc]); if (err) goto err_close_sqs; @@ -1993,20 +1994,25 @@ mlx5e_close_sqs_wait(struct mlx5e_channel *c) { int tc; - for (tc = 0; tc < c->num_tc; tc++) + for (tc = 0; tc < c->priv->num_tc; tc++) mlx5e_close_sq_wait(&c->sq[tc]); } static void -mlx5e_chan_mtx_init(struct mlx5e_channel *c) +mlx5e_chan_static_init(struct mlx5e_priv *priv, struct mlx5e_channel *c, int ix) { int tc; + /* setup priv and channel number */ + c->priv = priv; + c->ix = ix; + c->ifp = priv->ifp; + mtx_init(&c->rq.mtx, "mlx5rx", MTX_NETWORK_LOCK, MTX_DEF); callout_init_mtx(&c->rq.watchdog, &c->rq.mtx, 0); - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc != MLX5E_MAX_TX_NUM_TC; tc++) { struct mlx5e_sq *sq = c->sq + tc; mtx_init(&sq->lock, "mlx5tx", @@ -2015,45 +2021,37 @@ mlx5e_chan_mtx_init(struct mlx5e_channel *c) MTX_NETWORK_LOCK " TX", MTX_DEF); callout_init_mtx(&sq->cev_callout, &sq->lock, 0); - - sq->cev_factor = c->priv->params_ethtool.tx_completion_fact; - - /* ensure the TX completion event factor is not zero */ - if (sq->cev_factor == 0) - sq->cev_factor = 1; } } static void -mlx5e_chan_mtx_destroy(struct mlx5e_channel *c) +mlx5e_chan_static_destroy(struct mlx5e_channel *c) { int tc; + callout_drain(&c->rq.watchdog); + mtx_destroy(&c->rq.mtx); - for (tc = 0; tc < c->num_tc; tc++) { + for (tc = 0; tc != MLX5E_MAX_TX_NUM_TC; tc++) { + callout_drain(&c->sq[tc].cev_callout); mtx_destroy(&c->sq[tc].lock); mtx_destroy(&c->sq[tc].comp_lock); } } static int -mlx5e_open_channel(struct mlx5e_priv *priv, int ix, +mlx5e_open_channel(struct mlx5e_priv *priv, struct mlx5e_channel_param *cparam, struct mlx5e_channel *c) { - int err; + int i, err; - memset(c, 0, sizeof(*c)); + /* zero non-persistant data */ + MLX5E_ZERO(&c->rq, mlx5e_rq_zero_start); + for (i = 0; i != priv->num_tc; i++) + MLX5E_ZERO(&c->sq[i], mlx5e_sq_zero_start); - c->priv = priv; - c->ix = ix; - c->ifp = priv->ifp; - c->num_tc = priv->num_tc; - - /* init mutexes */ - mlx5e_chan_mtx_init(c); - /* open transmit completion queue */ err = mlx5e_open_tx_cqs(c, cparam); if (err) @@ -2088,8 +2086,6 @@ err_close_tx_cqs: mlx5e_close_tx_cqs(c); err_free: - /* destroy mutexes */ - mlx5e_chan_mtx_destroy(c); return (err); } @@ -2105,8 +2101,6 @@ mlx5e_close_channel_wait(struct mlx5e_channel *c) mlx5e_close_rq_wait(&c->rq); mlx5e_close_sqs_wait(c); mlx5e_close_tx_cqs(c); - /* destroy mutexes */ - mlx5e_chan_mtx_destroy(c); } static int @@ -2302,14 +2296,16 @@ mlx5e_build_channel_param(struct mlx5e_priv *priv, static int mlx5e_open_channels(struct mlx5e_priv *priv) { - struct mlx5e_channel_param cparam; + struct mlx5e_channel_param *cparam; int err; int i; int j; - mlx5e_build_channel_param(priv, &cparam); + cparam = malloc(sizeof(*cparam), M_MLX5EN, M_WAITOK); + + mlx5e_build_channel_param(priv, cparam); for (i = 0; i < priv->params.num_channels; i++) { - err = mlx5e_open_channel(priv, i, &cparam, &priv->channel[i]); + err = mlx5e_open_channel(priv, cparam, &priv->channel[i]); if (err) goto err_close_channels; } @@ -2319,7 +2315,7 @@ mlx5e_open_channels(struct mlx5e_priv *priv) if (err) goto err_close_channels; } - + free(cparam, M_MLX5EN); return (0); err_close_channels: @@ -2327,6 +2323,7 @@ err_close_channels: mlx5e_close_channel(&priv->channel[i]); mlx5e_close_channel_wait(&priv->channel[i]); } + free(cparam, M_MLX5EN); return (err); } @@ -2436,7 +2433,7 @@ mlx5e_refresh_channel_params_sub(struct mlx5e_priv *pr if (err) goto done; - for (i = 0; i != c->num_tc; i++) { + for (i = 0; i != priv->num_tc; i++) { err = mlx5e_refresh_sq_params(priv, &c->sq[i]); if (err) goto done; @@ -3481,17 +3478,26 @@ static const char *mlx5e_pport_stats_desc[] = { }; static void -mlx5e_priv_mtx_init(struct mlx5e_priv *priv) +mlx5e_priv_static_init(struct mlx5e_priv *priv, const uint32_t channels) { + uint32_t x; + mtx_init(&priv->async_events_mtx, "mlx5async", MTX_NETWORK_LOCK, MTX_DEF); sx_init(&priv->state_lock, "mlx5state"); callout_init_mtx(&priv->watchdog, &priv->async_events_mtx, 0); MLX5_INIT_DOORBELL_LOCK(&priv->doorbell_lock); + for (x = 0; x != channels; x++) + mlx5e_chan_static_init(priv, &priv->channel[x], x); } static void -mlx5e_priv_mtx_destroy(struct mlx5e_priv *priv) +mlx5e_priv_static_destroy(struct mlx5e_priv *priv, const uint32_t channels) { + uint32_t x; + + for (x = 0; x != channels; x++) + mlx5e_chan_static_destroy(&priv->channel[x]); + callout_drain(&priv->watchdog); mtx_destroy(&priv->async_events_mtx); sx_destroy(&priv->state_lock); } @@ -3521,7 +3527,7 @@ mlx5e_disable_tx_dma(struct mlx5e_channel *ch) { int i; - for (i = 0; i < ch->num_tc; i++) + for (i = 0; i < ch->priv->num_tc; i++) mlx5e_drain_sq(&ch->sq[i]); } @@ -3573,7 +3579,7 @@ mlx5e_enable_tx_dma(struct mlx5e_channel *ch) { int i; - for (i = 0; i < ch->num_tc; i++) + for (i = 0; i < ch->priv->num_tc; i++) mlx5e_resume_sq(&ch->sq[i]); } @@ -3588,8 +3594,6 @@ mlx5e_disable_rx_dma(struct mlx5e_channel *ch) callout_stop(&rq->watchdog); mtx_unlock(&rq->mtx); - callout_drain(&rq->watchdog); - err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); if (err != 0) { mlx5_en_err(rq->ifp, @@ -3873,13 +3877,15 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) priv = malloc(sizeof(*priv) + (sizeof(priv->channel[0]) * mdev->priv.eq_table.num_comp_vectors), M_MLX5EN, M_WAITOK | M_ZERO); - mlx5e_priv_mtx_init(priv); ifp = priv->ifp = if_alloc(IFT_ETHER); if (ifp == NULL) { mlx5_core_err(mdev, "if_alloc() failed\n"); goto err_free_priv; } + /* setup all static fields */ + mlx5e_priv_static_init(priv, mdev->priv.eq_table.num_comp_vectors); + ifp->if_softc = priv; if_initname(ifp, "mce", device_get_unit(mdev->pdev->dev.bsddev)); ifp->if_mtu = ETHERMTU; @@ -4083,10 +4089,10 @@ err_free_sysctl: sysctl_ctx_free(&priv->sysctl_ctx); if (priv->sysctl_debug) sysctl_ctx_free(&priv->stats.port_stats_debug.ctx); + mlx5e_priv_static_destroy(priv, mdev->priv.eq_table.num_comp_vectors); if_free(ifp); err_free_priv: - mlx5e_priv_mtx_destroy(priv); free(priv, M_MLX5EN); return (NULL); } @@ -4119,7 +4125,6 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp /* unregister device */ ifmedia_removeall(&priv->media); ether_ifdetach(ifp); - if_free(ifp); /* destroy all remaining sysctl nodes */ sysctl_ctx_free(&priv->stats.vport.ctx); @@ -4134,7 +4139,8 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp mlx5_unmap_free_uar(priv->mdev, &priv->cq_uar); mlx5e_disable_async_events(priv); flush_workqueue(priv->wq); - mlx5e_priv_mtx_destroy(priv); + mlx5e_priv_static_destroy(priv, mdev->priv.eq_table.num_comp_vectors); + if_free(ifp); free(priv, M_MLX5EN); } From owner-svn-src-all@freebsd.org Mon Oct 7 10:20:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B873129862; Mon, 7 Oct 2019 10:20:24 +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 46mxLv74Lzz3HLZ; Mon, 7 Oct 2019 10:20:23 +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 D29A6D1EC; Mon, 7 Oct 2019 10:20:23 +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 x97AKNLJ018769; Mon, 7 Oct 2019 10:20:23 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AKNDa018767; Mon, 7 Oct 2019 10:20:23 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071020.x97AKNDa018767@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 10:20:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353253 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353253 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:20:24 -0000 Author: hselasky Date: Mon Oct 7 10:20:23 2019 New Revision: 353253 URL: https://svnweb.freebsd.org/changeset/base/353253 Log: MFC r352991 and 353000: Wait for FW readiness before initializing command interface in mlx5core. Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear. If we fail to meet this condition the hardware will drop our configuration, specifically the descriptors page address. This scenario can happen when the firmware is still executing an FLR flow and did not finish yet so the driver needs to wait for that to finish. Linux commits: 6c780a0267b8 b8a92577f4be. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/device.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/device.h ============================================================================== --- stable/12/sys/dev/mlx5/device.h Mon Oct 7 10:16:50 2019 (r353252) +++ stable/12/sys/dev/mlx5/device.h Mon Oct 7 10:20:23 2019 (r353253) @@ -32,8 +32,10 @@ #include #include -#define FW_INIT_TIMEOUT_MILI 2000 -#define FW_INIT_WAIT_MS 2 +#define FW_INIT_TIMEOUT_MILI 2000 +#define FW_INIT_WAIT_MS 2 +#define FW_PRE_INIT_TIMEOUT_MILI 120000 +#define FW_INIT_WARN_MESSAGE_INTERVAL 20000 #if defined(__LITTLE_ENDIAN) #define MLX5_SET_HOST_ENDIANNESS 0 Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 10:16:50 2019 (r353252) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 10:20:23 2019 (r353253) @@ -676,19 +676,33 @@ static inline int fw_initializing(struct mlx5_core_dev return ioread32be(&dev->iseg->initializing) >> 31; } -static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili) +static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili, + u32 warn_time_mili) { - u64 end = jiffies + msecs_to_jiffies(max_wait_mili); + int warn = jiffies + msecs_to_jiffies(warn_time_mili); + int end = jiffies + msecs_to_jiffies(max_wait_mili); int err = 0; - while (fw_initializing(dev)) { + MPASS(max_wait_mili > warn_time_mili); + + while (fw_initializing(dev) == 1) { if (time_after(jiffies, end)) { err = -EBUSY; break; } + if (warn_time_mili && time_after(jiffies, warn)) { + mlx5_core_warn(dev, + "Waiting for FW initialization, timeout abort in %u s\n", + (unsigned int)(jiffies_to_msecs(end - warn) / 1000)); + warn = jiffies + msecs_to_jiffies(warn_time_mili); + } msleep(FW_INIT_WAIT_MS); } + if (err != 0) + mlx5_core_dbg(dev, "Full initializing bit dword = 0x%x\n", + ioread32be(&dev->iseg->initializing)); + return err; } @@ -994,15 +1008,29 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st */ dev->state = MLX5_DEVICE_STATE_UP; + /* wait for firmware to accept initialization segments configurations + */ + err = wait_fw_init(dev, FW_PRE_INIT_TIMEOUT_MILI, + FW_INIT_WARN_MESSAGE_INTERVAL); + if (err) { + dev_err(&dev->pdev->dev, + "Firmware over %d MS in pre-initializing state, aborting\n", + FW_PRE_INIT_TIMEOUT_MILI); + goto out_err; + } + err = mlx5_cmd_init(dev); if (err) { - mlx5_core_err(dev, "Failed initializing command interface, aborting\n"); + mlx5_core_err(dev, + "Failed initializing command interface, aborting\n"); goto out_err; } - err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI); + err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI, 0); if (err) { - mlx5_core_err(dev, "Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); + mlx5_core_err(dev, + "Firmware over %d MS in initializing state, aborting\n", + FW_INIT_TIMEOUT_MILI); goto err_cmd_cleanup; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:21:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99D3C129969; Mon, 7 Oct 2019 10:21:38 +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 46mxNL349Bz3Hkr; Mon, 7 Oct 2019 10:21:38 +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 4DC57D258; Mon, 7 Oct 2019 10:21:38 +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 x97ALcVU020574; Mon, 7 Oct 2019 10:21:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ALcon020572; Mon, 7 Oct 2019 10:21:38 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071021.x97ALcon020572@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 10:21:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353254 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 353254 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:21:38 -0000 Author: hselasky Date: Mon Oct 7 10:21:37 2019 New Revision: 353254 URL: https://svnweb.freebsd.org/changeset/base/353254 Log: MFC r352991 and r353000: Wait for FW readiness before initializing command interface in mlx5core. Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear. If we fail to meet this condition the hardware will drop our configuration, specifically the descriptors page address. This scenario can happen when the firmware is still executing an FLR flow and did not finish yet so the driver needs to wait for that to finish. Linux commits: 6c780a0267b8 b8a92577f4be. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Oct 7 10:20:23 2019 (r353253) +++ stable/11/sys/dev/mlx5/device.h Mon Oct 7 10:21:37 2019 (r353254) @@ -32,8 +32,10 @@ #include #include -#define FW_INIT_TIMEOUT_MILI 2000 -#define FW_INIT_WAIT_MS 2 +#define FW_INIT_TIMEOUT_MILI 2000 +#define FW_INIT_WAIT_MS 2 +#define FW_PRE_INIT_TIMEOUT_MILI 120000 +#define FW_INIT_WARN_MESSAGE_INTERVAL 20000 #if defined(__LITTLE_ENDIAN) #define MLX5_SET_HOST_ENDIANNESS 0 Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 10:20:23 2019 (r353253) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Oct 7 10:21:37 2019 (r353254) @@ -676,19 +676,33 @@ static inline int fw_initializing(struct mlx5_core_dev return ioread32be(&dev->iseg->initializing) >> 31; } -static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili) +static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili, + u32 warn_time_mili) { - u64 end = jiffies + msecs_to_jiffies(max_wait_mili); + int warn = jiffies + msecs_to_jiffies(warn_time_mili); + int end = jiffies + msecs_to_jiffies(max_wait_mili); int err = 0; - while (fw_initializing(dev)) { + MPASS(max_wait_mili > warn_time_mili); + + while (fw_initializing(dev) == 1) { if (time_after(jiffies, end)) { err = -EBUSY; break; } + if (warn_time_mili && time_after(jiffies, warn)) { + mlx5_core_warn(dev, + "Waiting for FW initialization, timeout abort in %u s\n", + (unsigned int)(jiffies_to_msecs(end - warn) / 1000)); + warn = jiffies + msecs_to_jiffies(warn_time_mili); + } msleep(FW_INIT_WAIT_MS); } + if (err != 0) + mlx5_core_dbg(dev, "Full initializing bit dword = 0x%x\n", + ioread32be(&dev->iseg->initializing)); + return err; } @@ -976,15 +990,29 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st */ dev->state = MLX5_DEVICE_STATE_UP; + /* wait for firmware to accept initialization segments configurations + */ + err = wait_fw_init(dev, FW_PRE_INIT_TIMEOUT_MILI, + FW_INIT_WARN_MESSAGE_INTERVAL); + if (err) { + dev_err(&dev->pdev->dev, + "Firmware over %d MS in pre-initializing state, aborting\n", + FW_PRE_INIT_TIMEOUT_MILI); + goto out_err; + } + err = mlx5_cmd_init(dev); if (err) { - mlx5_core_err(dev, "Failed initializing command interface, aborting\n"); + mlx5_core_err(dev, + "Failed initializing command interface, aborting\n"); goto out_err; } - err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI); + err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI, 0); if (err) { - mlx5_core_err(dev, "Firmware over %d MS in initializing state, aborting\n", FW_INIT_TIMEOUT_MILI); + mlx5_core_err(dev, + "Firmware over %d MS in initializing state, aborting\n", + FW_INIT_TIMEOUT_MILI); goto err_cmd_cleanup; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:23:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3532129B6E; Mon, 7 Oct 2019 10:23:27 +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 46mxQR4JXSz3Hw6; Mon, 7 Oct 2019 10:23:27 +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 77377D3B7; Mon, 7 Oct 2019 10:23:27 +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 x97ANR7v024408; Mon, 7 Oct 2019 10:23:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ANR9Y024407; Mon, 7 Oct 2019 10:23:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071023.x97ANR9Y024407@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 10:23:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353255 - stable/12/usr.sbin/mlx5tool X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/usr.sbin/mlx5tool X-SVN-Commit-Revision: 353255 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:23:27 -0000 Author: hselasky Date: Mon Oct 7 10:23:27 2019 New Revision: 353255 URL: https://svnweb.freebsd.org/changeset/base/353255 Log: MFC r352992: Use size_t for byte_to_write variable when comparing to eeprom_info_out_len which is also size_t in mlx5tool(8). Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/mlx5tool/mlx5tool.c ============================================================================== --- stable/12/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 10:21:37 2019 (r353254) +++ stable/12/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 10:23:27 2019 (r353255) @@ -206,7 +206,8 @@ mlx5tool_fw_reset(int ctldev, const struct mlx5_tool_a static void mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_info) { - unsigned int byte_to_write, index_in_row, line_length, row; + int index_in_row, line_length, row; + size_t byte_to_write; byte_to_write = 0; line_length = 16; @@ -214,7 +215,7 @@ mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_i printf("\nOffset\t\tValues\n"); printf("------\t\t------"); while (byte_to_write < eeprom_info->eeprom_info_out_len) { - printf("\n0x%04X\t\t", byte_to_write); + printf("\n0x%04zX\t\t", byte_to_write); for (index_in_row = 0; index_in_row < line_length; index_in_row++) { printf("%02X ", From owner-svn-src-all@freebsd.org Mon Oct 7 10:24:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 51457129BE1; Mon, 7 Oct 2019 10:24:20 +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 46mxRS1V91z3J3K; Mon, 7 Oct 2019 10:24:20 +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 16B26D3B8; Mon, 7 Oct 2019 10:24:20 +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 x97AOJtT024523; Mon, 7 Oct 2019 10:24:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AOJVT024522; Mon, 7 Oct 2019 10:24:19 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071024.x97AOJVT024522@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 10:24:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353256 - stable/11/usr.sbin/mlx5tool X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/usr.sbin/mlx5tool X-SVN-Commit-Revision: 353256 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:24:20 -0000 Author: hselasky Date: Mon Oct 7 10:24:19 2019 New Revision: 353256 URL: https://svnweb.freebsd.org/changeset/base/353256 Log: MFC r352992: Use size_t for byte_to_write variable when comparing to eeprom_info_out_len which is also size_t in mlx5tool(8). Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.c ============================================================================== --- stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 10:23:27 2019 (r353255) +++ stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Oct 7 10:24:19 2019 (r353256) @@ -206,7 +206,8 @@ mlx5tool_fw_reset(int ctldev, const struct mlx5_tool_a static void mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_info) { - unsigned int byte_to_write, index_in_row, line_length, row; + int index_in_row, line_length, row; + size_t byte_to_write; byte_to_write = 0; line_length = 16; @@ -214,7 +215,7 @@ mlx5tool_eeprom_print(struct mlx5_eeprom_get *eeprom_i printf("\nOffset\t\tValues\n"); printf("------\t\t------"); while (byte_to_write < eeprom_info->eeprom_info_out_len) { - printf("\n0x%04X\t\t", byte_to_write); + printf("\n0x%04zX\t\t", byte_to_write); for (index_in_row = 0; index_in_row < line_length; index_in_row++) { printf("%02X ", From owner-svn-src-all@freebsd.org Mon Oct 7 10:25:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E90EB129CBA; Mon, 7 Oct 2019 10:25:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mxSN5w7Zz3J9v; Mon, 7 Oct 2019 10:25:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AE2C2D3BE; Mon, 7 Oct 2019 10:25:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x97AP8kb024651; Mon, 7 Oct 2019 10:25:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AP8Ht024650; Mon, 7 Oct 2019 10:25:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071025.x97AP8Ht024650@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 10:25:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353257 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353257 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:25:09 -0000 Author: hselasky Date: Mon Oct 7 10:25:08 2019 New Revision: 353257 URL: https://svnweb.freebsd.org/changeset/base/353257 Log: MFC r352993: Randomize the delay when waiting for VSC flag in mlx5core. The PRM suggests random 0 - 10ms to prevent multiple waiters on the same interval in order to avoid starvation. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 10:24:19 2019 (r353256) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 10:25:08 2019 (r353257) @@ -52,7 +52,7 @@ int mlx5_vsc_lock(struct mlx5_core_dev *mdev) * The PRM suggests random 0 - 10ms to prevent multiple * waiters on the same interval in order to avoid starvation */ - DELAY((random() % 11) * 1000); + DELAY((random() % 9000) + 1000); continue; } @@ -99,7 +99,7 @@ mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 break; retries++; - DELAY(10); + DELAY((random() % 90) + 10); } return 0; From owner-svn-src-all@freebsd.org Mon Oct 7 10:25:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A19F129D60; Mon, 7 Oct 2019 10:25:47 +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 46mxT66RVsz3JJC; Mon, 7 Oct 2019 10:25:46 +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 C05E6D3C0; Mon, 7 Oct 2019 10:25:46 +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 x97APkJe024767; Mon, 7 Oct 2019 10:25:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97APkAc024766; Mon, 7 Oct 2019 10:25:46 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071025.x97APkAc024766@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 10:25:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353258 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353258 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:25:47 -0000 Author: hselasky Date: Mon Oct 7 10:25:46 2019 New Revision: 353258 URL: https://svnweb.freebsd.org/changeset/base/353258 Log: MFC r352993: Randomize the delay when waiting for VSC flag in mlx5core. The PRM suggests random 0 - 10ms to prevent multiple waiters on the same interval in order to avoid starvation. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 10:25:08 2019 (r353257) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Oct 7 10:25:46 2019 (r353258) @@ -52,7 +52,7 @@ int mlx5_vsc_lock(struct mlx5_core_dev *mdev) * The PRM suggests random 0 - 10ms to prevent multiple * waiters on the same interval in order to avoid starvation */ - DELAY((random() % 11) * 1000); + DELAY((random() % 9000) + 1000); continue; } @@ -99,7 +99,7 @@ mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 break; retries++; - DELAY(10); + DELAY((random() % 90) + 10); } return 0; From owner-svn-src-all@freebsd.org Mon Oct 7 10:26:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 67347129DF6; Mon, 7 Oct 2019 10:26:24 +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 46mxTr26ndz3JQs; Mon, 7 Oct 2019 10:26: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 2BE6DD3C1; Mon, 7 Oct 2019 10:26: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 x97AQO6B024879; Mon, 7 Oct 2019 10:26:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AQOJe024878; Mon, 7 Oct 2019 10:26:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071026.x97AQOJe024878@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 10:26:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353259 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353259 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:26:24 -0000 Author: hselasky Date: Mon Oct 7 10:26:23 2019 New Revision: 353259 URL: https://svnweb.freebsd.org/changeset/base/353259 Log: MFC r352994: Improve mlx5_fwdump_prep logging in mlx5core. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 10:25:46 2019 (r353258) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 10:26:23 2019 (r353259) @@ -72,7 +72,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) if (error != 0) { /* Inability to create a firmware dump is not fatal. */ mlx5_core_warn(mdev, - "mlx5_fwdump_prep failed %d\n", error); + "Failed to find vendor-specific capability, error %d\n", + error); return; } error = mlx5_vsc_lock(mdev); @@ -86,7 +87,7 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) dev = mdev->pdev->dev.bsddev; vsc_addr = mdev->vsc_addr; if (vsc_addr == 0) { - mlx5_core_warn(mdev, "Cannot read vsc, no address\n"); + mlx5_core_warn(mdev, "Cannot read VSC, no address\n"); goto unlock_vsc; } @@ -97,7 +98,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_wait_on_flag(mdev, 1); if (error != 0) { mlx5_core_warn(mdev, - "Failed waiting for read complete flag, error %d\n", error); + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); goto unlock_vsc; } pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); @@ -120,7 +122,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_wait_on_flag(mdev, 1); if (error != 0) { mlx5_core_warn(mdev, - "Failed waiting for read complete flag, error %d\n", error); + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); free(mdev->dump_rege, M_MLX5_DUMP); mdev->dump_rege = NULL; goto unlock_vsc; From owner-svn-src-all@freebsd.org Mon Oct 7 10:26:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4EF27129E6E; Mon, 7 Oct 2019 10:26:58 +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 46mxVV1N7kz3JYZ; Mon, 7 Oct 2019 10:26:58 +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 12B55D3C2; Mon, 7 Oct 2019 10:26:58 +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 x97AQvne024972; Mon, 7 Oct 2019 10:26:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AQv86024971; Mon, 7 Oct 2019 10:26:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071026.x97AQv86024971@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 10:26:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353260 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353260 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:26:58 -0000 Author: hselasky Date: Mon Oct 7 10:26:57 2019 New Revision: 353260 URL: https://svnweb.freebsd.org/changeset/base/353260 Log: MFC r352994: Improve mlx5_fwdump_prep logging in mlx5core. Submitted by: slavash@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 10:26:23 2019 (r353259) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 10:26:57 2019 (r353260) @@ -72,7 +72,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) if (error != 0) { /* Inability to create a firmware dump is not fatal. */ mlx5_core_warn(mdev, - "mlx5_fwdump_prep failed %d\n", error); + "Failed to find vendor-specific capability, error %d\n", + error); return; } error = mlx5_vsc_lock(mdev); @@ -86,7 +87,7 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) dev = mdev->pdev->dev.bsddev; vsc_addr = mdev->vsc_addr; if (vsc_addr == 0) { - mlx5_core_warn(mdev, "Cannot read vsc, no address\n"); + mlx5_core_warn(mdev, "Cannot read VSC, no address\n"); goto unlock_vsc; } @@ -97,7 +98,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_wait_on_flag(mdev, 1); if (error != 0) { mlx5_core_warn(mdev, - "Failed waiting for read complete flag, error %d\n", error); + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); goto unlock_vsc; } pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); @@ -120,7 +122,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) error = mlx5_vsc_wait_on_flag(mdev, 1); if (error != 0) { mlx5_core_warn(mdev, - "Failed waiting for read complete flag, error %d\n", error); + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); free(mdev->dump_rege, M_MLX5_DUMP); mdev->dump_rege = NULL; goto unlock_vsc; From owner-svn-src-all@freebsd.org Mon Oct 7 10:27:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 41EFC129EFF; Mon, 7 Oct 2019 10:27:51 +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 46mxWW12n2z3JhX; Mon, 7 Oct 2019 10:27:51 +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 07F0AD3C3; Mon, 7 Oct 2019 10:27:51 +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 x97ARoc9025103; Mon, 7 Oct 2019 10:27:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ARoZE025098; Mon, 7 Oct 2019 10:27:50 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071027.x97ARoZE025098@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 10:27:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353261 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353261 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:27:51 -0000 Author: hselasky Date: Mon Oct 7 10:27:50 2019 New Revision: 353261 URL: https://svnweb.freebsd.org/changeset/base/353261 Log: MFC r352995: Only update lossy buffers config when manual PFC configuration was done in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:26:57 2019 (r353260) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:27:50 2019 (r353261) @@ -1045,6 +1045,7 @@ struct mlx5e_priv { u_int clbr_gen; struct mlx5e_dcbx dcbx; + bool sw_is_port_buf_owner; struct mlx5e_channel channel[]; }; Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:26:57 2019 (r353260) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:27:50 2019 (r353261) @@ -3881,7 +3881,7 @@ mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_A /* check if update is required */ if (rx_pfc != priv->params.rx_priority_flow_control) { err = -mlx5e_set_port_pfc(priv); - if (err == 0) + if (err == 0 && priv->sw_is_port_buf_owner) err = mlx5e_update_buf_lossy(priv); } done: Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:26:57 2019 (r353260) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:27:50 2019 (r353261) @@ -263,6 +263,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (err) return err; + priv->sw_is_port_buf_owner = true; err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, &port_buffer, &update_buffer); if (err) @@ -316,13 +317,16 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv /* Apply the settings */ if (update_buffer) { + priv->sw_is_port_buf_owner = true; err = port_set_buffer(priv, &port_buffer); if (err) return err; } - if (update_prio2buffer) + if (update_prio2buffer) { + priv->sw_is_port_buf_owner = true; err = mlx5e_port_set_priority2buffer(priv->mdev, prio2buffer); + } return err; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:28:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 551B3129F95; Mon, 7 Oct 2019 10:28:52 +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 46mxXh1Ypyz3JqB; Mon, 7 Oct 2019 10:28:52 +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 18CDED3C4; Mon, 7 Oct 2019 10:28:52 +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 x97ASpqa025265; Mon, 7 Oct 2019 10:28:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ASpFb025262; Mon, 7 Oct 2019 10:28:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071028.x97ASpFb025262@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 10:28:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353262 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353262 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:28:52 -0000 Author: hselasky Date: Mon Oct 7 10:28:51 2019 New Revision: 353262 URL: https://svnweb.freebsd.org/changeset/base/353262 Log: MFC r352995: Only update lossy buffers config when manual PFC configuration was done in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:27:50 2019 (r353261) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Oct 7 10:28:51 2019 (r353262) @@ -999,6 +999,7 @@ struct mlx5e_priv { struct callout watchdog; struct mlx5e_dcbx dcbx; + bool sw_is_port_buf_owner; struct mlx5e_channel channel[]; }; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:27:50 2019 (r353261) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:28:51 2019 (r353262) @@ -3761,7 +3761,7 @@ mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_A /* check if update is required */ if (rx_pfc != priv->params.rx_priority_flow_control) { err = -mlx5e_set_port_pfc(priv); - if (err == 0) + if (err == 0 && priv->sw_is_port_buf_owner) err = mlx5e_update_buf_lossy(priv); } done: Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:27:50 2019 (r353261) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:28:51 2019 (r353262) @@ -263,6 +263,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (err) return err; + priv->sw_is_port_buf_owner = true; err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, &port_buffer, &update_buffer); if (err) @@ -316,13 +317,16 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv /* Apply the settings */ if (update_buffer) { + priv->sw_is_port_buf_owner = true; err = port_set_buffer(priv, &port_buffer); if (err) return err; } - if (update_prio2buffer) + if (update_prio2buffer) { + priv->sw_is_port_buf_owner = true; err = mlx5e_port_set_priority2buffer(priv->mdev, prio2buffer); + } return err; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:29:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 64B1712A00D; Mon, 7 Oct 2019 10:29:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46mxYR20kxz3JxX; Mon, 7 Oct 2019 10:29:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 29031D3C5; Mon, 7 Oct 2019 10:29:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x97ATVCW025365; Mon, 7 Oct 2019 10:29:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97ATVUQ025364; Mon, 7 Oct 2019 10:29:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071029.x97ATVUQ025364@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 10:29:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353263 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353263 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:29:31 -0000 Author: hselasky Date: Mon Oct 7 10:29:30 2019 New Revision: 353263 URL: https://svnweb.freebsd.org/changeset/base/353263 Log: MFC r352996: Add print to show user a reason for rejecting buffer size change in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:28:51 2019 (r353262) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:29:30 2019 (r353263) @@ -139,8 +139,8 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, uns return xoff; } -static int update_xoff_threshold(struct mlx5e_port_buffer *port_buffer, - u32 xoff) +static int update_xoff_threshold(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer, u32 xoff) { int i; @@ -152,8 +152,14 @@ static int update_xoff_threshold(struct mlx5e_port_buf } if (port_buffer->buffer[i].size < - (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) + (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) { + mlx5_en_info(priv->ifp, + "non-lossy buffer %d size %d less than xoff threshold %d\n", + i, port_buffer->buffer[i].size, + xoff + MLX5E_MAX_PORT_MTU + + (1 << MLX5E_BUFFER_CELL_SHIFT)); return -ENOMEM; + } port_buffer->buffer[i].xoff = port_buffer->buffer[i].size - xoff; port_buffer->buffer[i].xon = @@ -182,7 +188,7 @@ static int update_xoff_threshold(struct mlx5e_port_buf * Return 0 if no error. * Set change to true if buffer configuration is modified. */ -static int update_buffer_lossy(unsigned int mtu, +static int update_buffer_lossy(struct mlx5e_priv *priv, unsigned int mtu, u8 pfc_en, u8 *buffer, u32 xoff, struct mlx5e_port_buffer *port_buffer, bool *change) @@ -219,7 +225,7 @@ static int update_buffer_lossy(unsigned int mtu, } if (changed) { - err = update_xoff_threshold(port_buffer, xoff); + err = update_xoff_threshold(priv, port_buffer, xoff); if (err) return err; @@ -253,7 +259,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (change & MLX5E_PORT_BUFFER_CABLE_LEN) { update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } @@ -264,7 +270,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv return err; priv->sw_is_port_buf_owner = true; - err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, + err = update_buffer_lossy(priv, mtu, pfc->pfc_en, buffer, xoff, &port_buffer, &update_buffer); if (err) return err; @@ -276,7 +282,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (err) return err; - err = update_buffer_lossy(mtu, curr_pfc_en, prio2buffer, xoff, + err = update_buffer_lossy(priv, mtu, curr_pfc_en, prio2buffer, xoff, &port_buffer, &update_buffer); if (err) return err; @@ -301,7 +307,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv return -EINVAL; update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } @@ -309,7 +315,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv /* Need to update buffer configuration if xoff value is changed */ if (!update_buffer && xoff != priv->dcbx.xoff) { update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:30:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD99B12A096; Mon, 7 Oct 2019 10:30:10 +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 46mxZB4bQdz3K4s; Mon, 7 Oct 2019 10:30:10 +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 80E85D3C9; Mon, 7 Oct 2019 10:30:10 +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 x97AUACx025524; Mon, 7 Oct 2019 10:30:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AUAai025523; Mon, 7 Oct 2019 10:30:10 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071030.x97AUAai025523@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 10:30:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353264 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353264 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:30:10 -0000 Author: hselasky Date: Mon Oct 7 10:30:09 2019 New Revision: 353264 URL: https://svnweb.freebsd.org/changeset/base/353264 Log: MFC r352996: Add print to show user a reason for rejecting buffer size change in mlx5en(4). Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:29:30 2019 (r353263) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c Mon Oct 7 10:30:09 2019 (r353264) @@ -139,8 +139,8 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, uns return xoff; } -static int update_xoff_threshold(struct mlx5e_port_buffer *port_buffer, - u32 xoff) +static int update_xoff_threshold(struct mlx5e_priv *priv, + struct mlx5e_port_buffer *port_buffer, u32 xoff) { int i; @@ -152,8 +152,14 @@ static int update_xoff_threshold(struct mlx5e_port_buf } if (port_buffer->buffer[i].size < - (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) + (xoff + MLX5E_MAX_PORT_MTU + (1 << MLX5E_BUFFER_CELL_SHIFT))) { + mlx5_en_info(priv->ifp, + "non-lossy buffer %d size %d less than xoff threshold %d\n", + i, port_buffer->buffer[i].size, + xoff + MLX5E_MAX_PORT_MTU + + (1 << MLX5E_BUFFER_CELL_SHIFT)); return -ENOMEM; + } port_buffer->buffer[i].xoff = port_buffer->buffer[i].size - xoff; port_buffer->buffer[i].xon = @@ -182,7 +188,7 @@ static int update_xoff_threshold(struct mlx5e_port_buf * Return 0 if no error. * Set change to true if buffer configuration is modified. */ -static int update_buffer_lossy(unsigned int mtu, +static int update_buffer_lossy(struct mlx5e_priv *priv, unsigned int mtu, u8 pfc_en, u8 *buffer, u32 xoff, struct mlx5e_port_buffer *port_buffer, bool *change) @@ -219,7 +225,7 @@ static int update_buffer_lossy(unsigned int mtu, } if (changed) { - err = update_xoff_threshold(port_buffer, xoff); + err = update_xoff_threshold(priv, port_buffer, xoff); if (err) return err; @@ -253,7 +259,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (change & MLX5E_PORT_BUFFER_CABLE_LEN) { update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } @@ -264,7 +270,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv return err; priv->sw_is_port_buf_owner = true; - err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff, + err = update_buffer_lossy(priv, mtu, pfc->pfc_en, buffer, xoff, &port_buffer, &update_buffer); if (err) return err; @@ -276,7 +282,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv if (err) return err; - err = update_buffer_lossy(mtu, curr_pfc_en, prio2buffer, xoff, + err = update_buffer_lossy(priv, mtu, curr_pfc_en, prio2buffer, xoff, &port_buffer, &update_buffer); if (err) return err; @@ -301,7 +307,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv return -EINVAL; update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } @@ -309,7 +315,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv /* Need to update buffer configuration if xoff value is changed */ if (!update_buffer && xoff != priv->dcbx.xoff) { update_buffer = true; - err = update_xoff_threshold(&port_buffer, xoff); + err = update_xoff_threshold(priv, &port_buffer, xoff); if (err) return err; } From owner-svn-src-all@freebsd.org Mon Oct 7 10:30:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C7F3E12A12F; Mon, 7 Oct 2019 10:30:49 +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 46mxZx4xX7z3KDc; Mon, 7 Oct 2019 10:30:49 +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 8CFFFD4EA; Mon, 7 Oct 2019 10:30:49 +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 x97AUnZj025622; Mon, 7 Oct 2019 10:30:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AUnIM025621; Mon, 7 Oct 2019 10:30:49 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071030.x97AUnIM025621@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 10:30:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353265 - stable/12/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353265 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:30:49 -0000 Author: hselasky Date: Mon Oct 7 10:30:49 2019 New Revision: 353265 URL: https://svnweb.freebsd.org/changeset/base/353265 Log: MFC r352997: Print numeric error_type and module_status in mlx5core in case the strings are not available. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 10:30:09 2019 (r353264) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 10:30:49 2019 (r353265) @@ -698,16 +698,17 @@ static void mlx5_port_module_event(struct mlx5_core_de case MLX5_MODULE_STATUS_ERROR: mlx5_core_err(dev, - "Module %u, status: error, %s\n", + "Module %u, status: error, %s (%d)\n", module_num, - mlx5_port_module_event_error_type_to_string(error_type)); + mlx5_port_module_event_error_type_to_string(error_type), + error_type); if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) dev->priv.pme_stats.error_counters[error_type]++; break; default: mlx5_core_info(dev, - "Module %u, unknown status\n", module_num); + "Module %u, unknown status %d\n", module_num, module_status); } /* store module status */ if (module_num < MLX5_MAX_PORTS) From owner-svn-src-all@freebsd.org Mon Oct 7 10:31:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9512112A1AC; Mon, 7 Oct 2019 10:31:28 +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 46mxbh36s4z3KNV; Mon, 7 Oct 2019 10:31:28 +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 4E366D520; Mon, 7 Oct 2019 10:31:28 +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 x97AVSPF027804; Mon, 7 Oct 2019 10:31:28 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AVSYm027803; Mon, 7 Oct 2019 10:31:28 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071031.x97AVSYm027803@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 10:31:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353266 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 353266 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:31:28 -0000 Author: hselasky Date: Mon Oct 7 10:31:27 2019 New Revision: 353266 URL: https://svnweb.freebsd.org/changeset/base/353266 Log: MFC r352997: Print numeric error_type and module_status in mlx5core in case the strings are not available. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 10:30:49 2019 (r353265) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 10:31:27 2019 (r353266) @@ -698,16 +698,17 @@ static void mlx5_port_module_event(struct mlx5_core_de case MLX5_MODULE_STATUS_ERROR: mlx5_core_err(dev, - "Module %u, status: error, %s\n", + "Module %u, status: error, %s (%d)\n", module_num, - mlx5_port_module_event_error_type_to_string(error_type)); + mlx5_port_module_event_error_type_to_string(error_type), + error_type); if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) dev->priv.pme_stats.error_counters[error_type]++; break; default: mlx5_core_info(dev, - "Module %u, unknown status\n", module_num); + "Module %u, unknown status %d\n", module_num, module_status); } /* store module status */ if (module_num < MLX5_MAX_PORTS) From owner-svn-src-all@freebsd.org Mon Oct 7 10:32:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0C5A12A3E8; Mon, 7 Oct 2019 10:32:24 +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 46mxcm5csZz3KYk; Mon, 7 Oct 2019 10:32: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 A5B5AD574; Mon, 7 Oct 2019 10:32: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 x97AWO1l030961; Mon, 7 Oct 2019 10:32:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AWOT1030958; Mon, 7 Oct 2019 10:32:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071032.x97AWOT1030958@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 10:32:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353267 - in stable/12/sys/dev/mlx5: mlx5_core mlx5_en mlx5_ib X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: mlx5_core mlx5_en mlx5_ib X-SVN-Commit-Revision: 353267 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:32:24 -0000 Author: hselasky Date: Mon Oct 7 10:32:23 2019 New Revision: 353267 URL: https://svnweb.freebsd.org/changeset/base/353267 Log: MFC r352998: Bump driver version for mlx5core, mlx5en(4) and mlx5ib(4). Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 10:31:27 2019 (r353266) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 10:32:23 2019 (r353267) @@ -36,9 +36,9 @@ #define DRIVER_NAME "mlx5_core" #ifndef DRIVER_VERSION -#define DRIVER_VERSION "3.5.1" +#define DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" extern int mlx5_core_debug_mask; Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:31:27 2019 (r353266) +++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:32:23 2019 (r353267) @@ -31,9 +31,9 @@ #include #ifndef ETH_DRIVER_VERSION -#define ETH_DRIVER_VERSION "3.5.1" +#define ETH_DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" static const char mlx5e_version[] = "mlx5en: Mellanox Ethernet driver " ETH_DRIVER_VERSION " (" DRIVER_RELDATE ")\n"; Modified: stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 10:31:27 2019 (r353266) +++ stable/12/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 10:32:23 2019 (r353267) @@ -52,9 +52,9 @@ #define DRIVER_NAME "mlx5ib" #ifndef DRIVER_VERSION -#define DRIVER_VERSION "3.5.1" +#define DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" MODULE_DESCRIPTION("Mellanox Connect-IB HCA IB driver"); MODULE_LICENSE("Dual BSD/GPL"); From owner-svn-src-all@freebsd.org Mon Oct 7 10:33:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6BC7F12A482; Mon, 7 Oct 2019 10:33:33 +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 46mxf52G80z3KpF; Mon, 7 Oct 2019 10:33:33 +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 16C78D57F; Mon, 7 Oct 2019 10:33:33 +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 x97AXW0E031128; Mon, 7 Oct 2019 10:33:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97AXWm5031126; Mon, 7 Oct 2019 10:33:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071033.x97AXWm5031126@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 10:33:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353268 - in stable/11/sys/dev/mlx5: mlx5_core mlx5_en mlx5_ib X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: mlx5_core mlx5_en mlx5_ib X-SVN-Commit-Revision: 353268 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 10:33:33 -0000 Author: hselasky Date: Mon Oct 7 10:33:32 2019 New Revision: 353268 URL: https://svnweb.freebsd.org/changeset/base/353268 Log: MFC r352998: Bump driver version for mlx5core, mlx5en(4) and mlx5ib(4). Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 10:32:23 2019 (r353267) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 10:33:32 2019 (r353268) @@ -36,9 +36,9 @@ #define DRIVER_NAME "mlx5_core" #ifndef DRIVER_VERSION -#define DRIVER_VERSION "3.5.1" +#define DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" extern int mlx5_core_debug_mask; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:32:23 2019 (r353267) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Oct 7 10:33:32 2019 (r353268) @@ -31,9 +31,9 @@ #include #ifndef ETH_DRIVER_VERSION -#define ETH_DRIVER_VERSION "3.5.1" +#define ETH_DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" static const char mlx5e_version[] = "mlx5en: Mellanox Ethernet driver " ETH_DRIVER_VERSION " (" DRIVER_RELDATE ")\n"; Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 10:32:23 2019 (r353267) +++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Oct 7 10:33:32 2019 (r353268) @@ -52,9 +52,9 @@ #define DRIVER_NAME "mlx5ib" #ifndef DRIVER_VERSION -#define DRIVER_VERSION "3.5.1" +#define DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" MODULE_DESCRIPTION("Mellanox Connect-IB HCA IB driver"); MODULE_LICENSE("Dual BSD/GPL"); From owner-svn-src-all@freebsd.org Mon Oct 7 10:39:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 10:48:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 12:51:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E853012E912; Mon, 7 Oct 2019 12:51:37 +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 46n0jP5sgqz3yLj; Mon, 7 Oct 2019 12:51:37 +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 92AE3ED19; Mon, 7 Oct 2019 12:51:37 +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 x97CpbQd015334; Mon, 7 Oct 2019 12:51:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97CpbfO014586; Mon, 7 Oct 2019 12:51:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071251.x97CpbfO014586@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 12:51:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353269 - releng/12.1/sys/contrib/rdma/krping X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: releng/12.1/sys/contrib/rdma/krping X-SVN-Commit-Revision: 353269 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 12:51:38 -0000 Author: hselasky Date: Mon Oct 7 12:51:36 2019 New Revision: 353269 URL: https://svnweb.freebsd.org/changeset/base/353269 Log: MFS r353180: Notify all sleeping threads of device removal in krping. Implement d_purge for krping_cdevsw. Submitted by: slavash@ Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/contrib/rdma/krping/krping.c releng/12.1/sys/contrib/rdma/krping/krping.h releng/12.1/sys/contrib/rdma/krping/krping_dev.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/contrib/rdma/krping/krping.c ============================================================================== --- releng/12.1/sys/contrib/rdma/krping/krping.c Mon Oct 7 10:33:32 2019 (r353268) +++ releng/12.1/sys/contrib/rdma/krping/krping.c Mon Oct 7 12:51:36 2019 (r353269) @@ -2189,3 +2189,17 @@ krping_walk_cb_list(void (*f)(struct krping_stats *, v (*f)(cb->pd ? &cb->stats : NULL, arg); mutex_unlock(&krping_mutex); } + +void +krping_cancel_all(void) +{ + struct krping_cb *cb; + + mutex_lock(&krping_mutex); + list_for_each_entry(cb, &krping_cbs, list) { + cb->state = ERROR; + wake_up_interruptible(&cb->sem); + } + mutex_unlock(&krping_mutex); +} + Modified: releng/12.1/sys/contrib/rdma/krping/krping.h ============================================================================== --- releng/12.1/sys/contrib/rdma/krping/krping.h Mon Oct 7 10:33:32 2019 (r353268) +++ releng/12.1/sys/contrib/rdma/krping/krping.h Mon Oct 7 12:51:36 2019 (r353269) @@ -17,3 +17,4 @@ struct krping_stats { int krping_doit(char *); void krping_walk_cb_list(void (*)(struct krping_stats *, void *), void *); int krping_sigpending(void); +void krping_cancel_all(void); Modified: releng/12.1/sys/contrib/rdma/krping/krping_dev.c ============================================================================== --- releng/12.1/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 10:33:32 2019 (r353268) +++ releng/12.1/sys/contrib/rdma/krping/krping_dev.c Mon Oct 7 12:51:36 2019 (r353269) @@ -40,6 +40,7 @@ static d_open_t krping_open; static d_close_t krping_close; static d_read_t krping_read; static d_write_t krping_write; +static d_purge_t krping_purge; /* Character device entry points */ static struct cdevsw krping_cdevsw = { @@ -48,6 +49,7 @@ static struct cdevsw krping_cdevsw = { .d_close = krping_close, .d_read = krping_read, .d_write = krping_write, + .d_purge = krping_purge, .d_name = "krping", }; @@ -208,6 +210,13 @@ krping_write(struct cdev *dev, struct uio *uio, int io done: free(krpingmsg, M_DEVBUF); return(err); +} + +static void +krping_purge(struct cdev *dev __unused) +{ + + krping_cancel_all(); } int From owner-svn-src-all@freebsd.org Mon Oct 7 12:53:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 12:54:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9FADC12EA21; Mon, 7 Oct 2019 12:54:29 +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 46n0mj3k0bz3ygN; Mon, 7 Oct 2019 12:54:29 +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 632DAEE82; Mon, 7 Oct 2019 12:54: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 x97CsTI4016063; Mon, 7 Oct 2019 12:54:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97CsSll016059; Mon, 7 Oct 2019 12:54:28 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071254.x97CsSll016059@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 12:54:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353271 - releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Commit-Revision: 353271 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 12:54:29 -0000 Author: hselasky Date: Mon Oct 7 12:54:28 2019 New Revision: 353271 URL: https://svnweb.freebsd.org/changeset/base/353271 Log: MFS r353182: Make sure the transmit loop doesn't get starved in ipoib. When the software send queue gets filled up, callbacks to if_transmit will stop. Make sure the transmit callback routine checks the send queue and outputs any remaining mbufs. Else the remaining mbufs may simply sit in the output queue blocking the transmit path. Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h ============================================================================== --- releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 12:53:27 2019 (r353270) +++ releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h Mon Oct 7 12:54:28 2019 (r353271) @@ -536,7 +536,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv); int ipoib_dma_map_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req, int max); void ipoib_dma_unmap_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req); -int ipoib_poll_tx(struct ipoib_dev_priv *priv); +int ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start); void ipoib_dma_unmap_rx(struct ipoib_dev_priv *priv, struct ipoib_rx_buf *rx_req); void ipoib_dma_mb(struct ipoib_dev_priv *priv, struct mbuf *mb, unsigned int length); @@ -763,5 +763,7 @@ extern int ipoib_debug_level; #endif /* CONFIG_INFINIBAND_IPOIB_DEBUG_DATA */ #define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff) + +void ipoib_start_locked(struct ifnet *, struct ipoib_dev_priv *); #endif /* _IPOIB_H */ Modified: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c ============================================================================== --- releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 12:53:27 2019 (r353270) +++ releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Mon Oct 7 12:54:28 2019 (r353271) @@ -618,8 +618,10 @@ void ipoib_cm_send(struct ipoib_dev_priv *priv, struct struct ipoib_cm_tx_buf *tx_req; struct ifnet *dev = priv->dev; - if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)); /* nothing */ + if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) { + while (ipoib_poll_tx(priv, false)) + ; /* nothing */ + } m_adj(mb, sizeof(struct ipoib_pseudoheader)); if (unlikely(mb->m_pkthdr.len > tx->mtu)) { Modified: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c ============================================================================== --- releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 12:53:27 2019 (r353270) +++ releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Mon Oct 7 12:54:28 2019 (r353271) @@ -366,7 +366,7 @@ static void ipoib_ib_handle_tx_wc(struct ipoib_dev_pri } int -ipoib_poll_tx(struct ipoib_dev_priv *priv) +ipoib_poll_tx(struct ipoib_dev_priv *priv, bool do_start) { int n, i; @@ -379,6 +379,9 @@ ipoib_poll_tx(struct ipoib_dev_priv *priv) ipoib_ib_handle_tx_wc(priv, wc); } + if (do_start && n != 0) + ipoib_start_locked(priv->dev, priv); + return n == MAX_SEND_CQE; } @@ -425,7 +428,7 @@ static void drain_tx_cq(struct ipoib_dev_priv *priv) struct ifnet *dev = priv->dev; spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ if (dev->if_drv_flags & IFF_DRV_OACTIVE) @@ -482,7 +485,7 @@ ipoib_send(struct ipoib_dev_priv *priv, struct mbuf *m void *phead; if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, false)) ; /* nothing */ m_adj(mb, sizeof (struct ipoib_pseudoheader)); @@ -762,7 +765,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv) spin_unlock(&priv->drain_lock); spin_lock(&priv->lock); - while (ipoib_poll_tx(priv)) + while (ipoib_poll_tx(priv, true)) ; /* nothing */ spin_unlock(&priv->lock); Modified: releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c ============================================================================== --- releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 12:53:27 2019 (r353270) +++ releng/12.1/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Oct 7 12:54:28 2019 (r353271) @@ -772,17 +772,13 @@ ipoib_send_one(struct ipoib_dev_priv *priv, struct mbu return 0; } - -static void -_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +void +ipoib_start_locked(struct ifnet *dev, struct ipoib_dev_priv *priv) { struct mbuf *mb; - if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != - IFF_DRV_RUNNING) - return; + assert_spin_locked(&priv->lock); - spin_lock(&priv->lock); while (!IFQ_DRV_IS_EMPTY(&dev->if_snd) && (dev->if_drv_flags & IFF_DRV_OACTIVE) == 0) { IFQ_DRV_DEQUEUE(&dev->if_snd, mb); @@ -791,6 +787,18 @@ _ipoib_start(struct ifnet *dev, struct ipoib_dev_priv IPOIB_MTAP(dev, mb); ipoib_send_one(priv, mb); } +} + +static void +_ipoib_start(struct ifnet *dev, struct ipoib_dev_priv *priv) +{ + + if ((dev->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; + + spin_lock(&priv->lock); + ipoib_start_locked(dev, priv); spin_unlock(&priv->lock); } From owner-svn-src-all@freebsd.org Mon Oct 7 13:13:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 33C7B12F14F; Mon, 7 Oct 2019 13:13:09 +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 46n1BF1Gvfz40tD; Mon, 7 Oct 2019 13:13:09 +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 0FCDFF22F; Mon, 7 Oct 2019 13:13:09 +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 x97DD92T028094; Mon, 7 Oct 2019 13:13:09 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97DD671028054; Mon, 7 Oct 2019 13:13:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071313.x97DD671028054@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:13:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353272 - in releng/12.1: share/man/man4 sys/conf sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en sys/dev/mlx5/mlx5_ib sys/modules/mlx5 sys/modules/mlx5en usr.sbin/mlx5tool X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in releng/12.1: share/man/man4 sys/conf sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/dev/mlx5/mlx5_en sys/dev/mlx5/mlx5_ib sys/modules/mlx5 sys/modules/mlx5en usr.sbin/mlx5tool X-SVN-Commit-Revision: 353272 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 13:13:09 -0000 Author: hselasky Date: Mon Oct 7 13:13:06 2019 New Revision: 353272 URL: https://svnweb.freebsd.org/changeset/base/353272 Log: MFS r353184, r353186, r353188, r353190, r353192, r353194, r353196, r353198, r353200, r353203, r353205, r353207, r353209, r353211, r353213, r353215, r353217, r353219, r353221, r353223, r353225, r353227, r353229, r353231, r353233, r353235, r353237, r353239, r353241, r353243, r353245, r353247, r353249, r353251, r353253, r353255, r353257, r353259, r353261, r353263, r353265 and r353267: Update mlx5core, mlx5en(4) and mlx5ib(4). Sponsored by: Mellanox Technologies Approved by: re (gjb) MFC r352956: Fix reported max SGE calculation in mlx5ib. Add the 512 bytes limit of RDMA READ and the size of remote address to the max SGE calculation. Linux commit: 288c01b746aa MFC r352957: Update warning and error print formats in mlx5ib. MFC r352958: Make sure the number of IRQ vectors doesn't exceed 256 in mlx5core. The "intr" field in "struct mlx5_ifc_eqc_bits" is only 8 bits wide. MFC r352959: Check return value of mlx5_vector2eqn() function in mlx5en. MFC r352960: Fix for missing cleanup code in error case in mlx5en. MFC r352961: Implement macro for asserting priv lock in mlx5en. MFC r352962: Add support for Multi-Physical Function Switch, MPFS, in mlx5en. MPFS is a logical switch in the Mellanox device which forward packets based on a hardware driven L2 address table, to one or more physical- or virtual- functions. The physical- or virtual- function is required to tell the MPFS by using the MPFS firmware commands, which unicast MAC addresses it is requesting from the physical port's traffic. Broadcast and multicast traffic however, is copied to all listening physical- and virtual- functions and does not need a rule in the MPFS switching table. Linux commit: eeb66cdb682678bfd1f02a4547e3649b38ffea7e MFC r352963: Cleanup naming of IRQ vectors in mlx5en. Remove unused IRQ naming functions and arrays. MFC r352964: Export channel IRQ number as part of the "hw_ctx_debug" sysctl(8) in mlx5en(4). MFC r352965: Correct and update some counter names in mlx5en(4). MFC r352966: Add port module event software counters in mlx5core. While at it, fixup PME based on latest PRM defines. MFC r352967: Make the mlx5_vsc_wait_on_flag(9) function global. MFC r352968: Move mlx5_ifc_vsc_space_bits and mlx5_ifc_vsc_addr_bits to mlx5_ifc.h. MFC r352969: Use the MLX5_VSC_DOMAIN_SEMAPHORES constant instead of hand-rolled symbol in mlx5core. MFC r352970: Define MLX5_VSC_DOMAIN_SCAN_CRSPACE. MFC r352971: Read rege map from crdump scan space in mlx5core. MFC r352972: Remove no longer needed fwdump register tables from mlx5core. MFC r352973: Add missing blank line at the end of the print in mlx5core. MFC r352974: Add proper print in case of 0x0 health syndrome in mlx5core. In case of health counter fails to increment it indicates a bad device health. In case when the syndrome indicated by firmware is 0x0, this indicates that firmware is unable to respond to initialization segment reads. Add proper print in this case. MFC r352975: Unify prints in mlx5core. All prints in mlx5core should use on of the macros: mlx5_core_err/dbg/warn MFC r352976: Unify prints in mlx5en(4). All prints in mlx5en(4) should use on of the macros: mlx5_en_err/dbg/warn MFC r352977: Sort the ports registers definitions numerically in mlx5core. MFC r352978: Add definition for the Port Buffer Status Register in mlx5core. MFC r352979: Update definitons for PPTB and PBMC registers layouts in mlx5core. MFC r352980: Add mlx5e_dbg() compatibility macro. MFC r352981: Import Linux code to query/set buffer state in mlx5en(4). MFC r352982: Add support for buffer parameter manipulations in mlx5en(4). The following sysctls are added: dev.mce.N.conf.qos.cable_length dev.mce.N.conf.qos.buffers_size dev.mce.N.conf.qos.buffers_prio MFC r352983 and r353001: Move EEPROM information query from a sysctl in mlx5en(4) to an ioctl in mlx5core. The EEPROM information is not only a property of the mlx5en(4) driver. MFC r352984: Add the ability to query the EEPROM information in mlx5tool(8). MFC r352985: Add sysctl(8) to get and set forward error correction, FEC, configuration in mlx5en(4). MFC r352986: Return an error from ioctl(MLX5_FW_RESET) if reset was rejected in mlx5core. MFC r352987: Remove mkey_be from channel structure in mlx5en(4). Use value from priv structure instead. This saves some space in the channel structure. MFC r352988: Remove unused cpu field from channel structure in mlx5en(4). MFC r352989: Seal transmit path with regards to using destroyed mutex in mlx5en(4). It may happen during link down that the running state may be observed non-zero in the transmit routine, right before the running state is cleared. This may end up using a destroyed mutex. Make all channel mutexes and callouts persistant. Preserve receive and send queue statistics during link toggle. MFC r352991 and 353000: Wait for FW readiness before initializing command interface in mlx5core. Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear. If we fail to meet this condition the hardware will drop our configuration, specifically the descriptors page address. This scenario can happen when the firmware is still executing an FLR flow and did not finish yet so the driver needs to wait for that to finish. Linux commits: 6c780a0267b8 b8a92577f4be. MFC r352992: Use size_t for byte_to_write variable when comparing to eeprom_info_out_len which is also size_t in mlx5tool(8). MFC r352993: Randomize the delay when waiting for VSC flag in mlx5core. The PRM suggests random 0 - 10ms to prevent multiple waiters on the same interval in order to avoid starvation. MFC r352994: Improve mlx5_fwdump_prep logging in mlx5core. MFC r352995: Only update lossy buffers config when manual PFC configuration was done in mlx5en(4). MFC r352996: Add print to show user a reason for rejecting buffer size change in mlx5en(4). MFC r352997: Print numeric error_type and module_status in mlx5core in case the strings are not available. MFC r352998: Bump driver version for mlx5core, mlx5en(4) and mlx5ib(4). Added: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c - copied, changed from r353196, stable/12/sys/dev/mlx5/mlx5_core/mlx5_mpfs.c releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c - copied, changed from r353235, stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c releng/12.1/sys/dev/mlx5/mlx5_en/port_buffer.h - copied unchanged from r353235, stable/12/sys/dev/mlx5/mlx5_en/port_buffer.h releng/12.1/sys/dev/mlx5/mpfs.h - copied unchanged from r353196, stable/12/sys/dev/mlx5/mpfs.h Deleted: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c Modified: releng/12.1/share/man/man4/mlx5io.4 releng/12.1/sys/conf/files releng/12.1/sys/dev/mlx5/device.h releng/12.1/sys/dev/mlx5/diagnostics.h releng/12.1/sys/dev/mlx5/driver.h releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_cmd.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_core.h releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_eq.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fw.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_health.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_main.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_port.c releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_vsc.c releng/12.1/sys/dev/mlx5/mlx5_en/en.h releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_main.c releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c releng/12.1/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c releng/12.1/sys/dev/mlx5/mlx5_ib/mlx5_ib.h releng/12.1/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c releng/12.1/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c releng/12.1/sys/dev/mlx5/mlx5_ifc.h releng/12.1/sys/dev/mlx5/mlx5io.h releng/12.1/sys/dev/mlx5/port.h releng/12.1/sys/modules/mlx5/Makefile releng/12.1/sys/modules/mlx5en/Makefile releng/12.1/usr.sbin/mlx5tool/mlx5tool.8 releng/12.1/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/share/man/man4/mlx5io.4 ============================================================================== --- releng/12.1/share/man/man4/mlx5io.4 Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/share/man/man4/mlx5io.4 Mon Oct 7 13:13:06 2019 (r353272) @@ -25,18 +25,18 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd October 2, 2019 .Dt mlx5io 4 .Os .Sh NAME .Nm mlx5io -.Nd IOCTL interface to manage Connect-X 4/5 Mellanox network adapters +.Nd IOCTL interface to manage Connect-X 4/5/6 Mellanox network adapters .Sh SYNOPSIS .In dev/mlx5/mlx5io.h .Sh DESCRIPTION The .Nm -interface is provided for management of the Connect-X 4 and 5 network adapters +interface is provided for management of the Connect-X4, 5 and 6 network adapters in the aspects not covered by the generic network configuration, mostly related to the PCIe attachment and internal card working. Interface consists of the commands, which are passed by means of @@ -147,6 +147,29 @@ Requests PCIe link-level reset on the device. The address of the device is specified by the .Vt struct mlx5_tool_addr structure, which should be passed as an argument. +.It Dv MLX5_EEPROM_GET +Fetch EEPROM information. +The argument to the command should point to the input/output +.Vt struct mlx5_eeprom_get +structure where, the +.Dv devaddr +field specifies the address of the device. +.Bd -literal +struct mlx5_eeprom_get { + struct mlx5_tool_addr devaddr; + size_t eeprom_info_page_valid; + uint32_t *eeprom_info_buf; + size_t eeprom_info_out_len; +}; +.Ed +.Pp +On successfull return, the +.Dv eeprom_info_out_len +field reports the length of the EEPROM information. +.Dv eeprom_info_buf +field contains the actual EEPROM information. +.Dv eeprom_info_page_valid +field reports the third page validity. .El .Sh FILES The Modified: releng/12.1/sys/conf/files ============================================================================== --- releng/12.1/sys/conf/files Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/conf/files Mon Oct 7 13:13:06 2019 (r353272) @@ -4800,8 +4800,6 @@ dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fwdump.c optional mlx5 pci \ compile-with "${OFED_C}" -dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c optional mlx5 pci \ - compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ @@ -4810,6 +4808,8 @@ dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_mpfs.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ @@ -4852,6 +4852,8 @@ dev/mlx5/mlx5_en/mlx5_en_rx.c optional mlx5en pci in dev/mlx5/mlx5_en/mlx5_en_rl.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ + compile-with "${OFED_C}" +dev/mlx5/mlx5_en/mlx5_en_port_buffer.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" # crypto support Modified: releng/12.1/sys/dev/mlx5/device.h ============================================================================== --- releng/12.1/sys/dev/mlx5/device.h Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/device.h Mon Oct 7 13:13:06 2019 (r353272) @@ -32,8 +32,10 @@ #include #include -#define FW_INIT_TIMEOUT_MILI 2000 -#define FW_INIT_WAIT_MS 2 +#define FW_INIT_TIMEOUT_MILI 2000 +#define FW_INIT_WAIT_MS 2 +#define FW_PRE_INIT_TIMEOUT_MILI 120000 +#define FW_INIT_WARN_MESSAGE_INTERVAL 20000 #if defined(__LITTLE_ENDIAN) #define MLX5_SET_HOST_ENDIANNESS 0 @@ -537,7 +539,7 @@ enum { MLX5_MODULE_STATUS_PLUGGED_ENABLED = 0x1, MLX5_MODULE_STATUS_UNPLUGGED = 0x2, MLX5_MODULE_STATUS_ERROR = 0x3, - MLX5_MODULE_STATUS_PLUGGED_DISABLED = 0x4, + MLX5_MODULE_STATUS_NUM , }; enum { @@ -549,7 +551,7 @@ enum { MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE = 0x5, MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6, MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED = 0x7, - MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED = 0xc, + MLX5_MODULE_EVENT_ERROR_NUM , }; struct mlx5_eqe_port_module_event { @@ -1052,6 +1054,9 @@ enum mlx5_mcam_feature_groups { #define MLX5_CAP_PCAM_FEATURE(mdev, fld) \ MLX5_GET(pcam_reg, (mdev)->caps.pcam, feature_cap_mask.enhanced_features.fld) + +#define MLX5_CAP_PCAM_REG(mdev, reg) \ + MLX5_GET(pcam_reg, (mdev)->caps.pcam, port_access_reg_cap_mask.regs_5000_to_507f.reg) #define MLX5_CAP_MCAM_FEATURE(mdev, fld) \ MLX5_GET(mcam_reg, (mdev)->caps.mcam, mng_feature_cap_mask.enhanced_features.fld) Modified: releng/12.1/sys/dev/mlx5/diagnostics.h ============================================================================== --- releng/12.1/sys/dev/mlx5/diagnostics.h Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/diagnostics.h Mon Oct 7 13:13:06 2019 (r353272) @@ -32,6 +32,8 @@ #define MLX5_CORE_DIAGNOSTICS_STRUCT(n, s, t) s, #define MLX5_CORE_DIAGNOSTICS_ENTRY(n, s, t) { #s, (t) }, +static MALLOC_DEFINE(M_MLX5_EEPROM, "MLX5EEPROM", "MLX5 EEPROM information"); + struct mlx5_core_diagnostics_entry { const char *desc; u16 counter_id; @@ -127,6 +129,18 @@ union mlx5_core_general_diagnostics { extern const struct mlx5_core_diagnostics_entry mlx5_core_general_diagnostics_table[MLX5_CORE_GENERAL_DIAGNOSTICS_NUM]; +struct mlx5_eeprom { + int lock_bit; + int i2c_addr; + int page_num; + int device_addr; + int module_num; + int len; + int type; + int page_valid; + u32 *data; +}; + /* function prototypes */ int mlx5_core_set_diagnostics_full(struct mlx5_core_dev *mdev, u8 enable_pci, u8 enable_general); @@ -134,5 +148,8 @@ int mlx5_core_get_diagnostics_full(struct mlx5_core_de union mlx5_core_pci_diagnostics *ppci, union mlx5_core_general_diagnostics *pgen); int mlx5_core_supports_diagnostics(struct mlx5_core_dev *mdev, u16 counter_id); +int mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom); +int mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee); #endif /* MLX5_CORE_DIAGNOSTICS_H */ Modified: releng/12.1/sys/dev/mlx5/driver.h ============================================================================== --- releng/12.1/sys/dev/mlx5/driver.h Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/driver.h Mon Oct 7 13:13:06 2019 (r353272) @@ -84,10 +84,6 @@ enum { }; enum { - MLX5_MAX_IRQ_NAME = 32 -}; - -enum { MLX5_ATOMIC_MODE_OFF = 16, MLX5_ATOMIC_MODE_NONE = 0 << MLX5_ATOMIC_MODE_OFF, MLX5_ATOMIC_MODE_IB_COMP = 1 << MLX5_ATOMIC_MODE_OFF, @@ -130,24 +126,26 @@ enum { MLX5_REG_QCAM = 0x4019, MLX5_REG_DCBX_PARAM = 0x4020, MLX5_REG_DCBX_APP = 0x4021, - MLX5_REG_PCAP = 0x5001, MLX5_REG_FPGA_CAP = 0x4022, MLX5_REG_FPGA_CTRL = 0x4023, MLX5_REG_FPGA_ACCESS_REG = 0x4024, MLX5_REG_FPGA_SHELL_CNTR = 0x4025, + MLX5_REG_PCAP = 0x5001, + MLX5_REG_PMLP = 0x5002, MLX5_REG_PMTU = 0x5003, MLX5_REG_PTYS = 0x5004, MLX5_REG_PAOS = 0x5006, MLX5_REG_PFCC = 0x5007, MLX5_REG_PPCNT = 0x5008, - MLX5_REG_PMAOS = 0x5012, MLX5_REG_PUDE = 0x5009, MLX5_REG_PPTB = 0x500B, MLX5_REG_PBMC = 0x500C, + MLX5_REG_PELC = 0x500E, + MLX5_REG_PVLC = 0x500F, MLX5_REG_PMPE = 0x5010, - MLX5_REG_PELC = 0x500e, - MLX5_REG_PVLC = 0x500f, - MLX5_REG_PMLP = 0x5002, + MLX5_REG_PMAOS = 0x5012, + MLX5_REG_PPLM = 0x5023, + MLX5_REG_PBSR = 0x5038, MLX5_REG_PCAM = 0x507f, MLX5_REG_NODE_DESC = 0x6001, MLX5_REG_HOST_ENDIANNESS = 0x7004, @@ -556,10 +554,6 @@ struct mlx5_mr_table { struct radix_tree_root tree; }; -struct mlx5_irq_info { - char name[MLX5_MAX_IRQ_NAME]; -}; - #ifdef RATELIMIT struct mlx5_rl_entry { u32 rate; @@ -577,11 +571,15 @@ struct mlx5_rl_table { }; #endif +struct mlx5_pme_stats { + u64 status_counters[MLX5_MODULE_STATUS_NUM]; + u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM]; +}; + struct mlx5_priv { char name[MLX5_MAX_NAME_LEN]; struct mlx5_eq_table eq_table; struct msix_entry *msix_arr; - struct mlx5_irq_info *irq_info; struct mlx5_uuar_info uuari; MLX5_DECLARE_DOORBELL_LOCK(cq_uar_lock); int disable_irqs; @@ -633,6 +631,7 @@ struct mlx5_priv { #ifdef RATELIMIT struct mlx5_rl_table rl_table; #endif + struct mlx5_pme_stats pme_stats; }; enum mlx5_device_state { @@ -701,7 +700,7 @@ struct mlx5_core_dev { struct mlx5_flow_root_namespace *sniffer_rx_root_ns; struct mlx5_flow_root_namespace *sniffer_tx_root_ns; u32 num_q_counter_allocated[MLX5_INTERFACE_NUMBER]; - const struct mlx5_crspace_regmap *dump_rege; + struct mlx5_crspace_regmap *dump_rege; uint32_t *dump_data; unsigned dump_size; bool dump_valid; @@ -717,6 +716,12 @@ struct mlx5_core_dev { struct mlx5_rsvd_gids reserved_gids; atomic_t roce_en; } roce; + + struct { + spinlock_t spinlock; +#define MLX5_MPFS_TABLE_MAX 32 + long bitmap[BITS_TO_LONGS(MLX5_MPFS_TABLE_MAX)]; + } mpfs; #ifdef CONFIG_MLX5_FPGA struct mlx5_fpga_device *fpga; #endif @@ -1023,7 +1028,7 @@ struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_co void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vector, enum mlx5_cmd_mode mode); void mlx5_cq_event(struct mlx5_core_dev *dev, u32 cqn, int event_type); int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar); + int nent, u64 mask, struct mlx5_uar *uar); int mlx5_destroy_unmap_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq); int mlx5_start_eqs(struct mlx5_core_dev *dev); int mlx5_stop_eqs(struct mlx5_core_dev *dev); @@ -1093,6 +1098,7 @@ int mlx5_vsc_find_cap(struct mlx5_core_dev *mdev); int mlx5_vsc_lock(struct mlx5_core_dev *mdev); void mlx5_vsc_unlock(struct mlx5_core_dev *mdev); int mlx5_vsc_set_space(struct mlx5_core_dev *mdev, u16 space); +int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected); int mlx5_vsc_write(struct mlx5_core_dev *mdev, u32 addr, const u32 *data); int mlx5_vsc_read(struct mlx5_core_dev *mdev, u32 addr, u32 *data); int mlx5_vsc_lock_addr_space(struct mlx5_core_dev *mdev, u32 addr); Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Oct 7 13:13:06 2019 (r353272) @@ -1489,7 +1489,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) memset(cmd, 0, sizeof(*cmd)); cmd_if_rev = cmdif_rev_get(dev); if (cmd_if_rev != CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Driver cmdif rev(%d) differs from firmware's(%d)\n", CMD_IF_REV, cmd_if_rev); + mlx5_core_err(dev, + "Driver cmdif rev(%d) differs from firmware's(%d)\n", + CMD_IF_REV, cmd_if_rev); return -EINVAL; } @@ -1501,13 +1503,16 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->log_sz = cmd_l >> 4 & 0xf; cmd->log_stride = cmd_l & 0xf; if (1 << cmd->log_sz > MLX5_MAX_COMMANDS) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""firmware reports too many outstanding commands %d\n", 1 << cmd->log_sz); + mlx5_core_err(dev, + "firmware reports too many outstanding commands %d\n", + 1 << cmd->log_sz); err = -EINVAL; goto err_free_page; } if (cmd->log_sz + cmd->log_stride > MLX5_ADAPTER_PAGE_SHIFT) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""command queue size overflow\n"); + mlx5_core_err(dev, + "command queue size overflow\n"); err = -EINVAL; goto err_free_page; } @@ -1518,7 +1523,9 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd->cmdif_rev = ioread32be(&dev->iseg->cmdif_rev_fw_sub) >> 16; if (cmd->cmdif_rev > CMD_IF_REV) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""driver does not support command interface version. driver %d, firmware %d\n", CMD_IF_REV, cmd->cmdif_rev); + mlx5_core_err(dev, + "driver does not support command interface version. driver %d, firmware %d\n", + CMD_IF_REV, cmd->cmdif_rev); err = -ENOTSUPP; goto err_free_page; } @@ -1534,7 +1541,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) cmd_h = (u32)((u64)(cmd->dma) >> 32); cmd_l = (u32)(cmd->dma); if (cmd_l & 0xfff) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""invalid command queue address\n"); + mlx5_core_err(dev, "invalid command queue address\n"); err = -ENOMEM; goto err_free_page; } @@ -1551,7 +1558,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) err = create_msg_cache(dev); if (err) { - device_printf((&dev->pdev->dev)->bsddev, "ERR: ""failed to create command cache\n"); + mlx5_core_err(dev, "failed to create command cache\n"); goto err_free_page; } return 0; Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Oct 7 13:13:06 2019 (r353272) @@ -36,9 +36,9 @@ #define DRIVER_NAME "mlx5_core" #ifndef DRIVER_VERSION -#define DRIVER_VERSION "3.5.1" +#define DRIVER_VERSION "3.5.2" #endif -#define DRIVER_RELDATE "April 2019" +#define DRIVER_RELDATE "September 2019" extern int mlx5_core_debug_mask; @@ -53,16 +53,21 @@ do { \ mlx5_core_dbg(dev, format, ##__VA_ARGS__); \ } while (0) -#define mlx5_core_err(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "ERR: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_err(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "ERR: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) -#define mlx5_core_warn(_dev, format, ...) \ - device_printf((&(_dev)->pdev->dev)->bsddev, "WARN: ""%s:%d:(pid %d): " format, \ +#define mlx5_core_warn(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "WARN: ""%s:%d:(pid %d): " format, \ __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) +#define mlx5_core_info(_dev, format, ...) \ + device_printf((_dev)->pdev->dev.bsddev, "INFO: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) + enum { MLX5_CMD_DATA, /* print command payload only */ MLX5_CMD_TIME, /* print command execution time */ @@ -102,12 +107,10 @@ int mlx5_firmware_flash(struct mlx5_core_dev *dev, con void mlx5e_init(void); void mlx5e_cleanup(void); -int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name); - int mlx5_ctl_init(void); void mlx5_ctl_fini(void); void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); -void mlx5_fwdump(struct mlx5_core_dev *mdev); +int mlx5_fwdump(struct mlx5_core_dev *mdev); void mlx5_fwdump_clean(struct mlx5_core_dev *mdev); struct mlx5_crspace_regmap { Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c Mon Oct 7 13:13:06 2019 (r353272) @@ -26,7 +26,10 @@ */ #include +#include #include +#include +#include const struct mlx5_core_diagnostics_entry mlx5_core_pci_diagnostics_table[ @@ -284,3 +287,156 @@ int mlx5_core_supports_diagnostics(struct mlx5_core_de } return 0; /* not supported counter */ } + +/* + * Read the first three bytes of the eeprom in order to get the needed info + * for the whole reading. + * Byte 0 - Identifier byte + * Byte 1 - Revision byte + * Byte 2 - Status byte + */ +int +mlx5_get_eeprom_info(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + u32 data = 0; + int size_read = 0; + int ret; + + ret = mlx5_query_module_num(dev, &eeprom->module_num); + if (ret) { + mlx5_core_err(dev, "Failed query module error=%d\n", ret); + return (-ret); + } + + /* Read the first three bytes to get Identifier, Revision and Status */ + ret = mlx5_query_eeprom(dev, eeprom->i2c_addr, eeprom->page_num, + eeprom->device_addr, MLX5_EEPROM_INFO_BYTES, eeprom->module_num, &data, + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed query EEPROM module error=0x%x\n", ret); + return (-ret); + } + + switch (data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) { + case SFF_8024_ID_QSFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + break; + case SFF_8024_ID_QSFPPLUS: + case SFF_8024_ID_QSFP28: + if ((data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK) == SFF_8024_ID_QSFP28 || + ((data & MLX5_EEPROM_REVISION_ID_BYTE_MASK) >> 8) >= 0x3) { + eeprom->type = MLX5_ETH_MODULE_SFF_8636; + eeprom->len = MLX5_ETH_MODULE_SFF_8636_LEN; + } else { + eeprom->type = MLX5_ETH_MODULE_SFF_8436; + eeprom->len = MLX5_ETH_MODULE_SFF_8436_LEN; + } + if ((data & MLX5_EEPROM_PAGE_3_VALID_BIT_MASK) == 0) + eeprom->page_valid = 1; + break; + case SFF_8024_ID_SFP: + eeprom->type = MLX5_ETH_MODULE_SFF_8472; + eeprom->len = MLX5_ETH_MODULE_SFF_8472_LEN; + break; + default: + mlx5_core_err(dev, "Not recognized cable type = 0x%x(%s)\n", + data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK, + sff_8024_id[data & MLX5_EEPROM_IDENTIFIER_BYTE_MASK]); + return (EINVAL); + } + return (0); +} + +/* Read both low and high pages of the eeprom */ +int +mlx5_get_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *ee) +{ + int size_read = 0; + int ret; + + if (ee->len == 0) + return (EINVAL); + + /* Read low page of the eeprom */ + while (ee->device_addr < ee->len) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, ee->device_addr, + ee->len - ee->device_addr, ee->module_num, + ee->data + (ee->device_addr / 4), &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", ret); + return (-ret); + } + ee->device_addr += size_read; + } + + /* Read high page of the eeprom */ + if (ee->page_valid == 1) { + ee->device_addr = MLX5_EEPROM_HIGH_PAGE_OFFSET; + ee->page_num = MLX5_EEPROM_HIGH_PAGE; + size_read = 0; + while (ee->device_addr < MLX5_EEPROM_PAGE_LENGTH) { + ret = mlx5_query_eeprom(dev, ee->i2c_addr, ee->page_num, + ee->device_addr, MLX5_EEPROM_PAGE_LENGTH - ee->device_addr, + ee->module_num, ee->data + (ee->len / 4) + + ((ee->device_addr - MLX5_EEPROM_HIGH_PAGE_OFFSET) / 4), + &size_read); + if (ret) { + mlx5_core_err(dev, + "Failed reading EEPROM, error = 0x%02x\n", + ret); + return (-ret); + } + ee->device_addr += size_read; + } + } + return (0); +} + +/* + * Read cable EEPROM module information by first inspecting the first + * three bytes to get the initial information for a whole reading. + * Information will be printed to dmesg. + */ +int +mlx5_read_eeprom(struct mlx5_core_dev *dev, struct mlx5_eeprom *eeprom) +{ + int error; + + eeprom->i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom->device_addr = 0; + eeprom->page_num = MLX5_EEPROM_LOW_PAGE; + eeprom->page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, eeprom); + if (error) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom->data = malloc(eeprom->len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + + /* Read the whole eeprom information */ + error = mlx5_get_eeprom(dev, eeprom); + if (error) { + mlx5_core_err(dev, "Failed reading EEPROM\n"); + error = 0; + /* + * Continue printing partial information in case of + * an error + */ + } + free(eeprom->data, M_MLX5_EEPROM); + + return (error); +} + + Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Oct 7 13:13:06 2019 (r353272) @@ -219,7 +219,7 @@ mlx5_temp_warning_event(struct mlx5_core_dev *dev, str { mlx5_core_warn(dev, - "High temperature on sensors with bit set %#jx %#jx", + "High temperature on sensors with bit set %#jx %#jx\n", (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_msb), (uintmax_t)be64_to_cpu(eqe->data.temp_warning.sensor_warning_lsb)); } @@ -415,7 +415,7 @@ static void init_eq_buf(struct mlx5_eq *eq) } int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, - int nent, u64 mask, const char *name, struct mlx5_uar *uar) + int nent, u64 mask, struct mlx5_uar *uar) { u32 out[MLX5_ST_SZ_DW(create_eq_out)] = {0}; struct mlx5_priv *priv = &dev->priv; @@ -463,10 +463,8 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, stru eq->irqn = vecidx; eq->dev = dev; eq->doorbell = uar->map + MLX5_EQ_DOORBEL_OFFSET; - snprintf(priv->irq_info[vecidx].name, MLX5_MAX_IRQ_NAME, "%s@pci:%s", - name, pci_name(dev->pdev)); err = request_irq(priv->msix_arr[vecidx].vector, mlx5_msix_handler, 0, - priv->irq_info[vecidx].name, eq); + "mlx5_core", eq); if (err) goto err_eq; #ifdef RSS @@ -568,7 +566,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->cmd_eq, MLX5_EQ_VEC_CMD, MLX5_NUM_CMD_EQE, 1ull << MLX5_EVENT_TYPE_CMD, - "mlx5_cmd_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create cmd EQ %d\n", err); return err; @@ -578,7 +576,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->async_eq, MLX5_EQ_VEC_ASYNC, MLX5_NUM_ASYNC_EQE, async_event_mask, - "mlx5_async_eq", &dev->priv.uuari.uars[0]); + &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create async EQ %d\n", err); goto err1; @@ -587,7 +585,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev) err = mlx5_create_map_eq(dev, &table->pages_eq, MLX5_EQ_VEC_PAGES, /* TODO: sriov max_vf + */ 1, - 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, "mlx5_pages_eq", + 1 << MLX5_EVENT_TYPE_PAGE_REQUEST, &dev->priv.uuari.uars[0]); if (err) { mlx5_core_warn(dev, "failed to create pages EQ %d\n", err); @@ -641,9 +639,9 @@ static const char *mlx5_port_module_event_error_type_t { switch (error_type) { case MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED: - return "Power Budget Exceeded"; + return "Power budget exceeded"; case MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX_CABLE_MODULE: - return "Long Range for non MLNX cable/module"; + return "Long Range for non MLNX cable"; case MLX5_MODULE_EVENT_ERROR_BUS_STUCK: return "Bus stuck(I2C or data shorted)"; case MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT: @@ -651,18 +649,11 @@ static const char *mlx5_port_module_event_error_type_t case MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST: return "Enforce part number list"; case MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE: - return "Unsupported Cable"; + return "Unknown identifier"; case MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE: return "High Temperature"; case MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED: - return "Cable is shorted"; - case MLX5_MODULE_EVENT_ERROR_PCIE_SYSTEM_POWER_SLOT_EXCEEDED: - return "One or more network ports have been powered " - "down due to insufficient/unadvertised power on " - "the PCIe slot. Please refer to the card's user " - "manual for power specifications or contact " - "Mellanox support."; - + return "Bad or shorted cable/module"; default: return "Unknown error type"; } @@ -682,35 +673,42 @@ static void mlx5_port_module_event(struct mlx5_core_de unsigned int module_status; unsigned int error_type; struct mlx5_eqe_port_module_event *module_event_eqe; - struct pci_dev *pdev = dev->pdev; module_event_eqe = &eqe->data.port_module_event; module_num = (unsigned int)module_event_eqe->module; module_status = (unsigned int)module_event_eqe->module_status & - PORT_MODULE_EVENT_MODULE_STATUS_MASK; + PORT_MODULE_EVENT_MODULE_STATUS_MASK; error_type = (unsigned int)module_event_eqe->error_type & - PORT_MODULE_EVENT_ERROR_TYPE_MASK; + PORT_MODULE_EVENT_ERROR_TYPE_MASK; + if (module_status < MLX5_MODULE_STATUS_NUM) + dev->priv.pme_stats.status_counters[module_status]++; switch (module_status) { case MLX5_MODULE_STATUS_PLUGGED_ENABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged and enabled\n", module_num); + mlx5_core_info(dev, + "Module %u, status: plugged and enabled\n", + module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: unplugged\n", module_num); + mlx5_core_info(dev, + "Module %u, status: unplugged\n", module_num); break; case MLX5_MODULE_STATUS_ERROR: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); + mlx5_core_err(dev, + "Module %u, status: error, %s (%d)\n", + module_num, + mlx5_port_module_event_error_type_to_string(error_type), + error_type); + if (error_type < MLX5_MODULE_EVENT_ERROR_NUM) + dev->priv.pme_stats.error_counters[error_type]++; break; - case MLX5_MODULE_STATUS_PLUGGED_DISABLED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged but disabled\n", module_num); - break; - default: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, unknown status\n", module_num); + mlx5_core_info(dev, + "Module %u, unknown status %d\n", module_num, module_status); } /* store module status */ if (module_num < MLX5_MAX_PORTS) Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c Mon Oct 7 13:13:06 2019 (r353272) @@ -139,7 +139,6 @@ static struct mlx5_flow_root_namespace *find_root(stru node = parent; if (node->type != FS_TYPE_NAMESPACE) { - printf("mlx5_core: WARN: ""mlx5: flow steering node %s is not in tree or garbaged\n", node->name); return NULL; } @@ -477,7 +476,7 @@ static int connect_prev_fts(struct fs_prio *locked_pri err = fs_set_star_rule(dev, iter, next_ft); if (err) { mlx5_core_warn(dev, - "mlx5: flow steering can't connect prev and next\n"); + "mlx5: flow steering can't connect prev and next\n"); goto unlock; } else { /* Assume ft's prio is locked */ @@ -605,7 +604,9 @@ static void destroy_star_rule(struct mlx5_flow_table * root = find_root(&prio->base); if (!root) - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); /* In order to ensure atomic deletion, first update * prev ft to point on the next ft. @@ -765,11 +766,13 @@ static struct mlx5_flow_table *_create_ft_common(struc int log_table_sz; int ft_size; char gen_name[20]; - struct mlx5_flow_root_namespace *root = - find_root(&ns->base); + struct mlx5_flow_root_namespace *root = find_root(&ns->base); + struct mlx5_core_dev *dev = fs_get_dev(&ns->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of namespace %s", ns->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of namespace %s", + ns->base.name); return ERR_PTR(-ENODEV); } @@ -987,12 +990,16 @@ int mlx5_destroy_flow_table(struct mlx5_flow_table *ft struct fs_prio *prio; struct mlx5_flow_root_namespace *root; bool is_shared_prio; + struct mlx5_core_dev *dev; fs_get_parent(prio, ft); root = find_root(&prio->base); + dev = fs_get_dev(&prio->base); if (!root) { - printf("mlx5_core: ERR: ""mlx5: flow steering failed to find root of priority %s", prio->base.name); + mlx5_core_err(dev, + "flow steering failed to find root of priority %s", + prio->base.name); return -ENODEV; } Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fw.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fw.c Mon Oct 7 13:13:06 2019 (r353272) @@ -324,7 +324,7 @@ int mlx5_cmd_fast_teardown_hca(struct mlx5_core_dev *d } while (!time_after(jiffies, end)); if (mlx5_get_nic_state(dev) != MLX5_NIC_IFC_DISABLED) { - dev_err(&dev->pdev->dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", mlx5_get_nic_state(dev), delay_ms); return -EIO; } Modified: releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 12:54:28 2019 (r353271) +++ releng/12.1/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Oct 7 13:13:06 2019 (r353272) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2018, Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2018, 2019 Mellanox Technologies, Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,13 +32,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include +#include -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4117[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4115[]; -extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_connectx5[]; - static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); static unsigned @@ -64,52 +62,113 @@ mlx5_fwdump_destroy_dd(struct mlx5_core_dev *mdev) void mlx5_fwdump_prep(struct mlx5_core_dev *mdev) { - int error; + device_t dev; + int error, vsc_addr; + unsigned i, sz; + u32 addr, in, out, next_addr; mdev->dump_data = NULL; error = mlx5_vsc_find_cap(mdev); if (error != 0) { /* Inability to create a firmware dump is not fatal. */ - device_printf((&mdev->pdev->dev)->bsddev, "WARN: " - "mlx5_fwdump_prep failed %d\n", error); + mlx5_core_warn(mdev, + "Failed to find vendor-specific capability, error %d\n", + error); return; } - switch (pci_get_device(mdev->pdev->dev.bsddev)) { - case 0x1013: - mdev->dump_rege = mlx5_crspace_regmap_mt4115; - break; - case 0x1015: - mdev->dump_rege = mlx5_crspace_regmap_mt4117; - break; - case 0x1017: - case 0x1019: - mdev->dump_rege = mlx5_crspace_regmap_connectx5; - break; - default: - return; /* silently fail, do not prevent driver attach */ + error = mlx5_vsc_lock(mdev); + if (error != 0) + return; + error = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SCAN_CRSPACE); + if (error != 0) { + mlx5_core_warn(mdev, "VSC scan space is not supported\n"); + goto unlock_vsc; } + dev = mdev->pdev->dev.bsddev; + vsc_addr = mdev->vsc_addr; + if (vsc_addr == 0) { + mlx5_core_warn(mdev, "Cannot read VSC, no address\n"); + goto unlock_vsc; + } + + in = 0; + for (sz = 1, addr = 0;;) { + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + sz++; + addr = next_addr; + } + mdev->dump_rege = malloc(sz * sizeof(struct mlx5_crspace_regmap), + M_MLX5_DUMP, M_WAITOK | M_ZERO); + + for (i = 0, addr = 0;;) { + MPASS(i < sz); + mdev->dump_rege[i].cnt++; + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + error = mlx5_vsc_wait_on_flag(mdev, 1); + if (error != 0) { + mlx5_core_warn(mdev, + "Failed waiting for read complete flag, error %d addr %#x\n", + error, addr); + free(mdev->dump_rege, M_MLX5_DUMP); + mdev->dump_rege = NULL; + goto unlock_vsc; + } + pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + out = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + next_addr = MLX5_VSC_GET(vsc_addr, &out, address); + if (next_addr == 0 || next_addr == addr) + break; + if (next_addr != addr + 4) + mdev->dump_rege[++i].addr = next_addr; + addr = next_addr; + } + KASSERT(i + 1 == sz, + ("inconsistent hw crspace reads: sz %u i %u addr %#lx", + sz, i, (unsigned long)addr)); + mdev->dump_size = mlx5_fwdump_getsize(mdev->dump_rege); mdev->dump_data = malloc(mdev->dump_size * sizeof(uint32_t), M_MLX5_DUMP, M_WAITOK | M_ZERO); mdev->dump_valid = false; mdev->dump_copyout = false; + +unlock_vsc: + mlx5_vsc_unlock(mdev); } -void +int mlx5_fwdump(struct mlx5_core_dev *mdev) { const struct mlx5_crspace_regmap *r; uint32_t i, ri; int error; - dev_info(&mdev->pdev->dev, "Issuing FW dump\n"); + mlx5_core_info(mdev, "Issuing FW dump\n"); mtx_lock(&mdev->dump_lock); - if (mdev->dump_data == NULL) + if (mdev->dump_data == NULL) { + error = EIO; goto failed; + } if (mdev->dump_valid) { /* only one dump */ - dev_warn(&mdev->pdev->dev, + mlx5_core_warn(mdev, "Only one FW dump can be captured aborting FW dump\n"); + error = EEXIST; goto failed; } @@ -134,6 +193,7 @@ unlock_vsc: mlx5_vsc_unlock(mdev); failed: mtx_unlock(&mdev->dump_lock); + return (error); } void @@ -145,6 +205,7 @@ mlx5_fwdump_clean(struct mlx5_core_dev *mdev) msleep(&mdev->dump_copyout, &mdev->dump_lock, 0, "mlx5fwc", 0); mlx5_fwdump_destroy_dd(mdev); mtx_unlock(&mdev->dump_lock); + free(mdev->dump_rege, M_MLX5_DUMP); } static int @@ -254,6 +315,54 @@ mlx5_fw_reset(struct mlx5_core_dev *mdev) } static int +mlx5_eeprom_copyout(struct mlx5_core_dev *dev, struct mlx5_eeprom_get *eeprom_info) +{ + struct mlx5_eeprom eeprom; + int error; + + eeprom.i2c_addr = MLX5_I2C_ADDR_LOW; + eeprom.device_addr = 0; + eeprom.page_num = MLX5_EEPROM_LOW_PAGE; + eeprom.page_valid = 0; + + /* Read three first bytes to get important info */ + error = mlx5_get_eeprom_info(dev, &eeprom); + if (error != 0) { + mlx5_core_err(dev, + "Failed reading EEPROM initial information\n"); + return (error); + } + eeprom_info->eeprom_info_page_valid = eeprom.page_valid; + eeprom_info->eeprom_info_out_len = eeprom.len; + + if (eeprom_info->eeprom_info_buf == NULL) + return (0); + /* + * Allocate needed length buffer and additional space for + * page 0x03 + */ + eeprom.data = malloc(eeprom.len + MLX5_EEPROM_PAGE_LENGTH, + M_MLX5_EEPROM, M_WAITOK | M_ZERO); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Oct 7 13:40:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 14:15:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 14:24:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 14:25:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 14:46:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58BF3131486; Mon, 7 Oct 2019 14:46: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 46n3Fr1g1Gz46Q8; Mon, 7 Oct 2019 14:46: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 1CF8C182B5; Mon, 7 Oct 2019 14:46: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 x97EkNJR081526; Mon, 7 Oct 2019 14:46:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97EkNZr081525; Mon, 7 Oct 2019 14:46:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910071446.x97EkNZr081525@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 14:46:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353276 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 353276 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 14:46:24 -0000 Author: markj Date: Mon Oct 7 14:46:23 2019 New Revision: 353276 URL: https://svnweb.freebsd.org/changeset/base/353276 Log: MFC r353010: Disallow fcntl(F_READAHEAD) when the vnode is not a regular file. Modified: stable/12/sys/kern/kern_descrip.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_descrip.c ============================================================================== --- stable/12/sys/kern/kern_descrip.c Mon Oct 7 14:24:59 2019 (r353275) +++ stable/12/sys/kern/kern_descrip.c Mon Oct 7 14:46:23 2019 (r353276) @@ -770,6 +770,12 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; } vp = fp->f_vnode; + if (vp->v_type != VREG) { + fdrop(fp, td); + error = ENOTTY; + break; + } + /* * Exclusive lock synchronizes against f_seqcount reads and * writes in sequential_heuristic(). From owner-svn-src-all@freebsd.org Mon Oct 7 15:03:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C99BD131B4B; Mon, 7 Oct 2019 15:03:24 +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 46n3dS4zc7z47l3; Mon, 7 Oct 2019 15:03: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 8E18218664; Mon, 7 Oct 2019 15:03: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 x97F3OV5093927; Mon, 7 Oct 2019 15:03:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97F3ONU093926; Mon, 7 Oct 2019 15:03:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071503.x97F3ONU093926@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 15:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353277 - releng/12.1/sys/dev/usb/controller X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: releng/12.1/sys/dev/usb/controller X-SVN-Commit-Revision: 353277 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 15:03:24 -0000 Author: hselasky Date: Mon Oct 7 15:03:24 2019 New Revision: 353277 URL: https://svnweb.freebsd.org/changeset/base/353277 Log: MFS r353169: The maximum TD size is 31 and not 15. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/dev/usb/controller/xhci.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/dev/usb/controller/xhci.c ============================================================================== --- releng/12.1/sys/dev/usb/controller/xhci.c Mon Oct 7 14:46:23 2019 (r353276) +++ releng/12.1/sys/dev/usb/controller/xhci.c Mon Oct 7 15:03:24 2019 (r353277) @@ -2003,7 +2003,7 @@ restart: /* clear TD SIZE to zero, hence this is the last TRB */ /* remove chain bit because this is the last data TRB in the chain */ - td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(15)); + td->td_trb[td->ntrb - 1].dwTrb2 &= ~htole32(XHCI_TRB_2_TDSZ_SET(31)); td->td_trb[td->ntrb - 1].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); /* remove CHAIN-BIT from last LINK TRB */ td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_CHAIN_BIT); From owner-svn-src-all@freebsd.org Mon Oct 7 15:25:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C94113221E; Mon, 7 Oct 2019 15:25:01 +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 46n46N6ZjCz49G5; Mon, 7 Oct 2019 15:25:00 +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 C5FBA189EB; Mon, 7 Oct 2019 15:25:00 +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 x97FP0QJ006583; Mon, 7 Oct 2019 15:25:00 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97FP0D2006582; Mon, 7 Oct 2019 15:25:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071525.x97FP0D2006582@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 15:25:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353278 - releng/12.1/sys/dev/usb X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: releng/12.1/sys/dev/usb X-SVN-Commit-Revision: 353278 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 15:25:01 -0000 Author: hselasky Date: Mon Oct 7 15:25:00 2019 New Revision: 353278 URL: https://svnweb.freebsd.org/changeset/base/353278 Log: MFS r353173: Increase the maximum user-space buffer size from 256kBytes to 32MBytes for libusb. This is useful for speeding up large data transfers while reducing the interrupt rate. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/dev/usb/usb_ioctl.h Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/dev/usb/usb_ioctl.h ============================================================================== --- releng/12.1/sys/dev/usb/usb_ioctl.h Mon Oct 7 15:03:24 2019 (r353277) +++ releng/12.1/sys/dev/usb/usb_ioctl.h Mon Oct 7 15:25:00 2019 (r353278) @@ -224,7 +224,7 @@ struct usb_fs_uninit { } USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_open { -#define USB_FS_MAX_BUFSIZE (1 << 18) +#define USB_FS_MAX_BUFSIZE (1 << 25) /* 32 MBytes */ uint32_t max_bufsize; #define USB_FS_MAX_FRAMES (1U << 12) #define USB_FS_MAX_FRAMES_PRE_SCALE (1U << 31) /* for ISOCHRONOUS transfers */ From owner-svn-src-all@freebsd.org Mon Oct 7 15:26:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A81D4132358; Mon, 7 Oct 2019 15:26:40 +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 46n48J40mTz49WR; Mon, 7 Oct 2019 15:26:40 +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 6C984189F5; Mon, 7 Oct 2019 15:26:40 +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 x97FQefk006885; Mon, 7 Oct 2019 15:26:40 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97FQeRc006884; Mon, 7 Oct 2019 15:26:40 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910071526.x97FQeRc006884@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 15:26:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353279 - releng/12.1/sys/kern X-SVN-Group: releng X-SVN-Commit-Author: markj X-SVN-Commit-Paths: releng/12.1/sys/kern X-SVN-Commit-Revision: 353279 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 15:26:40 -0000 Author: markj Date: Mon Oct 7 15:26:40 2019 New Revision: 353279 URL: https://svnweb.freebsd.org/changeset/base/353279 Log: MFS r353276: Disallow fcntl(F_READAHEAD) when the vnode is not a regular file. Approved by: re (gjb) Modified: releng/12.1/sys/kern/kern_descrip.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/kern/kern_descrip.c ============================================================================== --- releng/12.1/sys/kern/kern_descrip.c Mon Oct 7 15:25:00 2019 (r353278) +++ releng/12.1/sys/kern/kern_descrip.c Mon Oct 7 15:26:40 2019 (r353279) @@ -770,6 +770,12 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; } vp = fp->f_vnode; + if (vp->v_type != VREG) { + fdrop(fp, td); + error = ENOTTY; + break; + } + /* * Exclusive lock synchronizes against f_seqcount reads and * writes in sequential_heuristic(). From owner-svn-src-all@freebsd.org Mon Oct 7 15:29:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F7811324B6; Mon, 7 Oct 2019 15:29:38 +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 46n4Ck3Jf2z49yQ; Mon, 7 Oct 2019 15:29:38 +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 5502218A04; Mon, 7 Oct 2019 15:29:38 +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 x97FTcAc007364; Mon, 7 Oct 2019 15:29:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97FTbK3007361; Mon, 7 Oct 2019 15:29:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910071529.x97FTbK3007361@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 15:29:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353280 - in releng/12.1/sys/dev/usb: . controller X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in releng/12.1/sys/dev/usb: . controller X-SVN-Commit-Revision: 353280 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 15:29:38 -0000 Author: hselasky Date: Mon Oct 7 15:29:37 2019 New Revision: 353280 URL: https://svnweb.freebsd.org/changeset/base/353280 Log: MFS r353177: Add quirk for XHCI(4) controllers to support USB control transfers above 1Kbyte. It might look like some XHCI(4) controllers do not support when the USB control transfer is split using a link TRB. The next NORMAL TRB after the link TRB is simply failing with XHCI error code 4. The quirk ensures we allocate a 64Kbyte buffer so that the data stage TRB is not broken with a link TRB. Found at: EuroBSDcon 2019 Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/dev/usb/controller/xhci.c releng/12.1/sys/dev/usb/usb_bus.h releng/12.1/sys/dev/usb/usb_transfer.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/dev/usb/controller/xhci.c ============================================================================== --- releng/12.1/sys/dev/usb/controller/xhci.c Mon Oct 7 15:26:40 2019 (r353279) +++ releng/12.1/sys/dev/usb/controller/xhci.c Mon Oct 7 15:29:37 2019 (r353280) @@ -601,6 +601,9 @@ xhci_init(struct xhci_softc *sc, device_t self, uint8_ device_printf(self, "%d bytes context size, %d-bit DMA\n", 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; + temp = XREAD4(sc, capa, XHCI_HCSPARAMS1); /* get number of device slots */ Modified: releng/12.1/sys/dev/usb/usb_bus.h ============================================================================== --- releng/12.1/sys/dev/usb/usb_bus.h Mon Oct 7 15:26:40 2019 (r353279) +++ releng/12.1/sys/dev/usb/usb_bus.h Mon Oct 7 15:29:37 2019 (r353280) @@ -131,6 +131,7 @@ struct usb_bus { uint8_t do_probe; /* set if USB should be re-probed */ uint8_t no_explore; /* don't explore USB ports */ uint8_t dma_bits; /* number of DMA address lines */ + uint8_t control_ep_quirk; /* need 64kByte buffer for data stage */ }; #endif /* _USB_BUS_H_ */ Modified: releng/12.1/sys/dev/usb/usb_transfer.c ============================================================================== --- releng/12.1/sys/dev/usb/usb_transfer.c Mon Oct 7 15:26:40 2019 (r353279) +++ releng/12.1/sys/dev/usb/usb_transfer.c Mon Oct 7 15:29:37 2019 (r353280) @@ -106,6 +106,33 @@ static const struct usb_config usb_control_ep_cfg[USB_ }, }; +static const struct usb_config usb_control_ep_quirk_cfg[USB_CTRL_XFER_MAX] = { + + /* This transfer is used for generic control endpoint transfers */ + + [0] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control endpoint */ + .direction = UE_DIR_ANY, + .bufsize = 65535, /* bytes */ + .callback = &usb_request_callback, + .usb_mode = USB_MODE_DUAL, /* both modes */ + }, + + /* This transfer is used for generic clear stall only */ + + [1] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* Control pipe */ + .direction = UE_DIR_ANY, + .bufsize = sizeof(struct usb_device_request), + .callback = &usb_do_clear_stall_callback, + .timeout = 1000, /* 1 second */ + .interval = 50, /* 50ms */ + .usb_mode = USB_MODE_HOST, + }, +}; + /* function prototypes */ static void usbd_update_max_frame_size(struct usb_xfer *); @@ -1021,7 +1048,8 @@ usbd_transfer_setup(struct usb_device *udev, * context, else there is a chance of * deadlock! */ - if (setup_start == usb_control_ep_cfg) + if (setup_start == usb_control_ep_cfg || + setup_start == usb_control_ep_quirk_cfg) info->done_p = USB_BUS_CONTROL_XFER_PROC(udev->bus); else if (xfer_mtx == &Giant) @@ -3149,7 +3177,8 @@ repeat: */ iface_index = 0; if (usbd_transfer_setup(udev, &iface_index, - udev->ctrl_xfer, usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, + udev->ctrl_xfer, udev->bus->control_ep_quirk ? + usb_control_ep_quirk_cfg : usb_control_ep_cfg, USB_CTRL_XFER_MAX, NULL, &udev->device_mtx)) { DPRINTFN(0, "could not setup default " "USB transfer\n"); From owner-svn-src-all@freebsd.org Mon Oct 7 16:12:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 16:24:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 17:09:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 18:12:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 18:21:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 18:55:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 19:24:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 19:48:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 19:50:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 20:13:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 20:19:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 20:21:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 20:35:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 20:41:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 404DD139302; Mon, 7 Oct 2019 20:41:56 +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 46nC836dFZz4YRj; Mon, 7 Oct 2019 20:41:55 +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 C45F51C3B6; Mon, 7 Oct 2019 20:41:55 +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 x97Kft5R096983; Mon, 7 Oct 2019 20:41:55 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KftAM096982; Mon, 7 Oct 2019 20:41:55 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910072041.x97KftAM096982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 7 Oct 2019 20:41:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353291 - in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Commit-Revision: 353291 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:41:56 -0000 Author: jhb Date: Mon Oct 7 20:41:55 2019 New Revision: 353291 URL: https://svnweb.freebsd.org/changeset/base/353291 Log: MFC 351557: Adjust the deprecated warnings for /dev/crypto to be less noisy. Warn when actual operations are performed instead of when sessions are created. The /dev/crypto engine in OpenSSL 1.0.x tries to create sessions for all possible algorithms each time it is initialized resulting in spurious warnings. Modified: stable/11/sys/opencrypto/cryptodev.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/opencrypto/cryptodev.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/opencrypto/cryptodev.c ============================================================================== --- stable/11/sys/opencrypto/cryptodev.c Mon Oct 7 20:35:04 2019 (r353290) +++ stable/11/sys/opencrypto/cryptodev.c Mon Oct 7 20:41:55 2019 (r353291) @@ -393,8 +393,6 @@ cryptof_ioctl( struct crypt_op copc; struct crypt_kop kopc; #endif - static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; - static struct timeval skipwarn, tdeswarn; switch (cmd) { case CIOCGSESSION: @@ -415,28 +413,18 @@ cryptof_ioctl( case 0: break; case CRYPTO_DES_CBC: - if (ratecheck(&deswarn, &warninterval)) - gone_in(13, "DES cipher via /dev/crypto"); txform = &enc_xform_des; break; case CRYPTO_3DES_CBC: - if (ratecheck(&tdeswarn, &warninterval)) - gone_in(13, "3DES cipher via /dev/crypto"); txform = &enc_xform_3des; break; case CRYPTO_BLF_CBC: - if (ratecheck(&blfwarn, &warninterval)) - gone_in(13, "Blowfish cipher via /dev/crypto"); txform = &enc_xform_blf; break; case CRYPTO_CAST_CBC: - if (ratecheck(&castwarn, &warninterval)) - gone_in(13, "CAST128 cipher via /dev/crypto"); txform = &enc_xform_cast5; break; case CRYPTO_SKIPJACK_CBC: - if (ratecheck(&skipwarn, &warninterval)) - gone_in(13, "Skipjack cipher via /dev/crypto"); txform = &enc_xform_skipjack; break; case CRYPTO_AES_CBC: @@ -449,8 +437,6 @@ cryptof_ioctl( txform = &enc_xform_null; break; case CRYPTO_ARC4: - if (ratecheck(&arc4warn, &warninterval)) - gone_in(13, "ARC4 cipher via /dev/crypto"); txform = &enc_xform_arc4; break; case CRYPTO_CAMELLIA_CBC: @@ -473,9 +459,6 @@ cryptof_ioctl( case 0: break; case CRYPTO_MD5_HMAC: - if (ratecheck(&md5warn, &warninterval)) - gone_in(13, - "MD5-HMAC authenticator via /dev/crypto"); thash = &auth_hash_hmac_md5; break; case CRYPTO_SHA1_HMAC: @@ -764,6 +747,47 @@ cod_free(struct cryptop_data *cod) free(cod, M_XDATA); } +static void +cryptodev_warn(struct csession *cse) +{ + static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; + static struct timeval skipwarn, tdeswarn; + + switch (cse->cipher) { + case CRYPTO_DES_CBC: + if (ratecheck(&deswarn, &warninterval)) + gone_in(13, "DES cipher via /dev/crypto"); + break; + case CRYPTO_3DES_CBC: + if (ratecheck(&tdeswarn, &warninterval)) + gone_in(13, "3DES cipher via /dev/crypto"); + break; + case CRYPTO_BLF_CBC: + if (ratecheck(&blfwarn, &warninterval)) + gone_in(13, "Blowfish cipher via /dev/crypto"); + break; + case CRYPTO_CAST_CBC: + if (ratecheck(&castwarn, &warninterval)) + gone_in(13, "CAST128 cipher via /dev/crypto"); + break; + case CRYPTO_SKIPJACK_CBC: + if (ratecheck(&skipwarn, &warninterval)) + gone_in(13, "Skipjack cipher via /dev/crypto"); + break; + case CRYPTO_ARC4: + if (ratecheck(&arc4warn, &warninterval)) + gone_in(13, "ARC4 cipher via /dev/crypto"); + break; + } + + switch (cse->mac) { + case CRYPTO_MD5_HMAC: + if (ratecheck(&md5warn, &warninterval)) + gone_in(13, "MD5-HMAC authenticator via /dev/crypto"); + break; + } +} + static int cryptodev_op( struct csession *cse, @@ -886,6 +910,7 @@ cryptodev_op( error = EINVAL; goto bail; } + cryptodev_warn(cse); again: /* @@ -1054,6 +1079,7 @@ cryptodev_aead( SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__); goto bail; } + cryptodev_warn(cse); again: /* * Let the dispatch run unlocked, then, interlock against the From owner-svn-src-all@freebsd.org Mon Oct 7 20:41:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B652F1392FA; Mon, 7 Oct 2019 20:41:55 +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 46nC8348Tgz4YRd; Mon, 7 Oct 2019 20:41:55 +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 724401C3B5; Mon, 7 Oct 2019 20:41:55 +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 x97KftWk096977; Mon, 7 Oct 2019 20:41:55 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x97KftjQ096976; Mon, 7 Oct 2019 20:41:55 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201910072041.x97KftjQ096976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 7 Oct 2019 20:41:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353291 - in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Commit-Revision: 353291 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Oct 2019 20:41:55 -0000 Author: jhb Date: Mon Oct 7 20:41:55 2019 New Revision: 353291 URL: https://svnweb.freebsd.org/changeset/base/353291 Log: MFC 351557: Adjust the deprecated warnings for /dev/crypto to be less noisy. Warn when actual operations are performed instead of when sessions are created. The /dev/crypto engine in OpenSSL 1.0.x tries to create sessions for all possible algorithms each time it is initialized resulting in spurious warnings. Modified: stable/12/sys/opencrypto/cryptodev.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/opencrypto/cryptodev.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/opencrypto/cryptodev.c ============================================================================== --- stable/12/sys/opencrypto/cryptodev.c Mon Oct 7 20:35:04 2019 (r353290) +++ stable/12/sys/opencrypto/cryptodev.c Mon Oct 7 20:41:55 2019 (r353291) @@ -391,8 +391,6 @@ cryptof_ioctl( struct crypt_op copc; struct crypt_kop kopc; #endif - static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; - static struct timeval skipwarn, tdeswarn; switch (cmd) { case CIOCGSESSION: @@ -413,28 +411,18 @@ cryptof_ioctl( case 0: break; case CRYPTO_DES_CBC: - if (ratecheck(&deswarn, &warninterval)) - gone_in(13, "DES cipher via /dev/crypto"); txform = &enc_xform_des; break; case CRYPTO_3DES_CBC: - if (ratecheck(&tdeswarn, &warninterval)) - gone_in(13, "3DES cipher via /dev/crypto"); txform = &enc_xform_3des; break; case CRYPTO_BLF_CBC: - if (ratecheck(&blfwarn, &warninterval)) - gone_in(13, "Blowfish cipher via /dev/crypto"); txform = &enc_xform_blf; break; case CRYPTO_CAST_CBC: - if (ratecheck(&castwarn, &warninterval)) - gone_in(13, "CAST128 cipher via /dev/crypto"); txform = &enc_xform_cast5; break; case CRYPTO_SKIPJACK_CBC: - if (ratecheck(&skipwarn, &warninterval)) - gone_in(13, "Skipjack cipher via /dev/crypto"); txform = &enc_xform_skipjack; break; case CRYPTO_AES_CBC: @@ -447,8 +435,6 @@ cryptof_ioctl( txform = &enc_xform_null; break; case CRYPTO_ARC4: - if (ratecheck(&arc4warn, &warninterval)) - gone_in(13, "ARC4 cipher via /dev/crypto"); txform = &enc_xform_arc4; break; case CRYPTO_CAMELLIA_CBC: @@ -477,9 +463,6 @@ cryptof_ioctl( case 0: break; case CRYPTO_MD5_HMAC: - if (ratecheck(&md5warn, &warninterval)) - gone_in(13, - "MD5-HMAC authenticator via /dev/crypto"); thash = &auth_hash_hmac_md5; break; case CRYPTO_POLY1305: @@ -815,6 +798,47 @@ cod_free(struct cryptop_data *cod) free(cod, M_XDATA); } +static void +cryptodev_warn(struct csession *cse) +{ + static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; + static struct timeval skipwarn, tdeswarn; + + switch (cse->cipher) { + case CRYPTO_DES_CBC: + if (ratecheck(&deswarn, &warninterval)) + gone_in(13, "DES cipher via /dev/crypto"); + break; + case CRYPTO_3DES_CBC: + if (ratecheck(&tdeswarn, &warninterval)) + gone_in(13, "3DES cipher via /dev/crypto"); + break; + case CRYPTO_BLF_CBC: + if (ratecheck(&blfwarn, &warninterval)) + gone_in(13, "Blowfish cipher via /dev/crypto"); + break; + case CRYPTO_CAST_CBC: + if (ratecheck(&castwarn, &warninterval)) + gone_in(13, "CAST128 cipher via /dev/crypto"); + break; + case CRYPTO_SKIPJACK_CBC: + if (ratecheck(&skipwarn, &warninterval)) + gone_in(13, "Skipjack cipher via /dev/crypto"); + break; + case CRYPTO_ARC4: + if (ratecheck(&arc4warn, &warninterval)) + gone_in(13, "ARC4 cipher via /dev/crypto"); + break; + } + + switch (cse->mac) { + case CRYPTO_MD5_HMAC: + if (ratecheck(&md5warn, &warninterval)) + gone_in(13, "MD5-HMAC authenticator via /dev/crypto"); + break; + } +} + static int cryptodev_op( struct csession *cse, @@ -937,6 +961,7 @@ cryptodev_op( error = EINVAL; goto bail; } + cryptodev_warn(cse); again: /* @@ -1106,6 +1131,7 @@ cryptodev_aead( SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__); goto bail; } + cryptodev_warn(cse); again: /* * Let the dispatch run unlocked, then, interlock against the From owner-svn-src-all@freebsd.org Mon Oct 7 20:52:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 21:39:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 22:40:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 23:19:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 23:31:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Mon Oct 7 23:35:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 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-all@freebsd.org Tue Oct 8 02:36:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 01:36:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 04:21:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 06:56:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 07:14:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 08:16:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 10:24:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F414143125; Tue, 8 Oct 2019 10:24:02 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46nYNf2H8gz3FB5; Tue, 8 Oct 2019 10:24:02 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 318E926927; Tue, 8 Oct 2019 10:24:02 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98AO2II089576; Tue, 8 Oct 2019 10:24:02 GMT (envelope-from tijl@FreeBSD.org) Received: (from tijl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98AO2lY089575; Tue, 8 Oct 2019 10:24:02 GMT (envelope-from tijl@FreeBSD.org) Message-Id: <201910081024.x98AO2lY089575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tijl set sender to tijl@FreeBSD.org using -f From: Tijl Coosemans Date: Tue, 8 Oct 2019 10:24:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353299 - stable/11/sys/compat/linsysfs X-SVN-Group: stable-11 X-SVN-Commit-Author: tijl X-SVN-Commit-Paths: stable/11/sys/compat/linsysfs X-SVN-Commit-Revision: 353299 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 10:24:02 -0000 Author: tijl Date: Tue Oct 8 10:24:01 2019 New Revision: 353299 URL: https://svnweb.freebsd.org/changeset/base/353299 Log: MFC r352618: Create a "drm" subdirectory for drm devices in linsysfs. Recent versions of linux libdrm check for the existence of this directory: https://cgit.freedesktop.org/mesa/drm/commit/?id=f8392583418aef5e27bfed9989aeb601e20cc96d Modified: stable/11/sys/compat/linsysfs/linsysfs.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/compat/linsysfs/linsysfs.c ============================================================================== --- stable/11/sys/compat/linsysfs/linsysfs.c Tue Oct 8 07:14:21 2019 (r353298) +++ stable/11/sys/compat/linsysfs/linsysfs.c Tue Oct 8 10:24:01 2019 (r353299) @@ -373,6 +373,7 @@ linsysfs_run_bus(device_t dev, struct pfs_node *dir, s device_get_unit(dev) >= 0) { dinfo = device_get_ivars(parent); if (dinfo != NULL && dinfo->cfg.baseclass == PCIC_DISPLAY) { + pfs_create_dir(dir, "drm", NULL, NULL, NULL, 0); sprintf(devname, "226:%d", device_get_unit(dev)); sub_dir = pfs_create_dir(chardev, From owner-svn-src-all@freebsd.org Tue Oct 8 10:24:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D34BF1431A2; Tue, 8 Oct 2019 10:24:48 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46nYPX3zxMz3FK8; Tue, 8 Oct 2019 10:24:48 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C27F26928; Tue, 8 Oct 2019 10:24:48 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98AOm29089651; Tue, 8 Oct 2019 10:24:48 GMT (envelope-from tijl@FreeBSD.org) Received: (from tijl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98AOmOe089650; Tue, 8 Oct 2019 10:24:48 GMT (envelope-from tijl@FreeBSD.org) Message-Id: <201910081024.x98AOmOe089650@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tijl set sender to tijl@FreeBSD.org using -f From: Tijl Coosemans Date: Tue, 8 Oct 2019 10:24:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353300 - stable/12/sys/compat/linsysfs X-SVN-Group: stable-12 X-SVN-Commit-Author: tijl X-SVN-Commit-Paths: stable/12/sys/compat/linsysfs X-SVN-Commit-Revision: 353300 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 10:24:48 -0000 Author: tijl Date: Tue Oct 8 10:24:48 2019 New Revision: 353300 URL: https://svnweb.freebsd.org/changeset/base/353300 Log: MFC r352618: Create a "drm" subdirectory for drm devices in linsysfs. Recent versions of linux libdrm check for the existence of this directory: https://cgit.freedesktop.org/mesa/drm/commit/?id=f8392583418aef5e27bfed9989aeb601e20cc96d Modified: stable/12/sys/compat/linsysfs/linsysfs.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linsysfs/linsysfs.c ============================================================================== --- stable/12/sys/compat/linsysfs/linsysfs.c Tue Oct 8 10:24:01 2019 (r353299) +++ stable/12/sys/compat/linsysfs/linsysfs.c Tue Oct 8 10:24:48 2019 (r353300) @@ -520,6 +520,7 @@ linsysfs_run_bus(device_t dev, struct pfs_node *dir, s device_get_unit(dev) >= 0) { dinfo = device_get_ivars(parent); if (dinfo != NULL && dinfo->cfg.baseclass == PCIC_DISPLAY) { + pfs_create_dir(dir, "drm", NULL, NULL, NULL, 0); sprintf(devname, "226:%d", device_get_unit(dev)); sub_dir = pfs_create_dir(chardev, From owner-svn-src-all@freebsd.org Tue Oct 8 10:27:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 10:36:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 10:50:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 11:06:25 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 11:07:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 11:27:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 12:48:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 12:52:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 12:52:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 12:53:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 13:05:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 13:43:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:14:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:22:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5CA112A601 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 46nfh10rp3z419t 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: 46nfh10rp3z419t 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:33:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:36:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:54:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 14:59:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:03:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:04:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:09:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E338A12C5E1 for ; Tue, 8 Oct 2019 15:09:01 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ngjS5r1Bz44qg for ; Tue, 8 Oct 2019 15:09:00 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82a.google.com with SMTP id m61so14703978qte.7 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=kUrAZTjcfyEoVMA3jbeojI5NexojxHWdFcTLgusMR+zcg+GDWA9jlUHpBpB4at17PY 9hjSX7gZH4oFob27SRYWbv9ARidhOymoqIabGQIfq1tioPy3k2OZmJILK9ZxYUtZV2CX i9TFasDw+pK1Tx9peG4EQCWvga0xzpZsNG9ZG3yOggQ0O+4zIBf9sWKAo2FL33rJ+Lcq IbCrBUdo8MLvVbmjLGdERd3Mxnu2mZJACgZ7n8GLxTQPg3nHEOZzrqb0u42uPoeGO8YB 1sZvPKLy2WzzQhlAyJnZeOYFXa61diVf5jSCGpU+MdtJKJ22zledYSZlmlolpWQnBkVQ 7e3g== X-Gm-Message-State: APjAAAVqStO/t7W8zgLMnEYELUTSF2tnqy+WBQx6T2dzvjrvArnCW4p+ 5PmLKw+Cu33XSAVHy6jauYi1t7DDaHjRvUF6br5YyR2a 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: 46ngjS5r1Bz44qg 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::82a) 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-all@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)[a.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.83)[ip: (-9.41), 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:15:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:18:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 09E1912CADA for ; Tue, 8 Oct 2019 15:18:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ngwr3xPQz45Sg for ; Tue, 8 Oct 2019 15:18:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82a.google.com with SMTP id m15so25871972qtq.2 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=aOzMfxRP1yKJhy/hU3ajpqIHcifoXp6cQV2V8qYRN+qstVv3IkUlhA6KKTqRr3l9VI xTbm58MHYYDhaAfZ2mwiR6D6MfdIeZGGJBxZmgCng1WirdmULANlXDs+9Zks+lPy1rVH Z4PDEjxIdkkU2/aFWV8Z85G/Hob59bdzTh/TRCzXm9S81v+6xDhtuz3y6MJwfPfhrga2 xZ2JsO42prBMwhEQaC4JtAYp/z9mpeB8WDvOPa1bo3cOmoSxgBOkugM9P/NMLgSA4Co2 qCWXFksv3xOU6liXqFS0dHwH21Qw2D7I0q+s2GXqoEq47NdJgYM9TglYywbaz7MP8DhZ sF/g== X-Gm-Message-State: APjAAAVxKohRgo03NBKj+BhuI5bSl4A5trXZpKWJ/U2Did/G/EUf5VhH pMK4K3sifsi3EtXI0Equ6I7/SOchnbARWNJiMwrtSA== 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: 46ngwr3xPQz45Sg 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::82a) 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-all@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)[a.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.83)[ip: (-9.41), 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:29:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:33:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:41:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:46:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:48:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 15:53:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 16:42:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 16:45:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 16:59:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 17:19:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 17:55:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 18:00:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 18:06:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 999531327CB; Tue, 8 Oct 2019 18:06:03 +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 46nldl3XGZz4L4Z; Tue, 8 Oct 2019 18:06:03 +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 5D8294037; Tue, 8 Oct 2019 18:06:03 +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 x98I63Dp061671; Tue, 8 Oct 2019 18:06:03 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98I63Cb061670; Tue, 8 Oct 2019 18:06:03 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910081806.x98I63Cb061670@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 18:06:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353315 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 353315 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 18:06:03 -0000 Author: brooks Date: Tue Oct 8 18:06:02 2019 New Revision: 353315 URL: https://svnweb.freebsd.org/changeset/base/353315 Log: MFC r352919: Update cloudabi(32|64) sysents with "make sysent". Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Tue Oct 8 17:55:45 2019 (r353314) +++ stable/12/Makefile.inc1 Tue Oct 8 18:06:02 2019 (r353315) @@ -1425,6 +1425,8 @@ packageworld: .PHONY _sysent_dirs= sys/kern _sysent_dirs+= sys/compat/freebsd32 +_sysent_dirs+= sys/compat/cloudabi32 \ + sys/compat/cloudabi64 _sysent_dirs+= sys/i386/ibcs2 _sysent_dirs+= sys/amd64/linux \ sys/amd64/linux32 \ From owner-svn-src-all@freebsd.org Tue Oct 8 18:20:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 35A0E132B0C; Tue, 8 Oct 2019 18:20:12 +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 46nly41ND3z4Ld7; Tue, 8 Oct 2019 18:20:12 +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 0DC104223; Tue, 8 Oct 2019 18:20:12 +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 x98IKCcj068106; Tue, 8 Oct 2019 18:20:12 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98IK3ai068053; Tue, 8 Oct 2019 18:20:03 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910081820.x98IK3ai068053@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 18:20:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353317 - in vendor/tcsh/dist: . config nls nls/C nls/et nls/finnish nls/french nls/german nls/greek nls/italian nls/ja nls/pl nls/russian nls/spanish nls/ukrainian tests win32 X-SVN-Group: vendor X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in vendor/tcsh/dist: . config nls nls/C nls/et nls/finnish nls/french nls/german nls/greek nls/italian nls/ja nls/pl nls/russian nls/spanish nls/ukrainian tests win32 X-SVN-Commit-Revision: 353317 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 18:20:12 -0000 Author: brooks Date: Tue Oct 8 18:20:02 2019 New Revision: 353317 URL: https://svnweb.freebsd.org/changeset/base/353317 Log: Import 6.21.00. Added: vendor/tcsh/dist/README.md (contents, props changed) Deleted: vendor/tcsh/dist/README vendor/tcsh/dist/README.imake Modified: vendor/tcsh/dist/BUGS vendor/tcsh/dist/Fixes vendor/tcsh/dist/Imakefile vendor/tcsh/dist/MAKEDIFFS vendor/tcsh/dist/MAKESHAR vendor/tcsh/dist/Makefile.in vendor/tcsh/dist/Makefile.std vendor/tcsh/dist/Makefile.vms vendor/tcsh/dist/Ported vendor/tcsh/dist/aclocal.m4 vendor/tcsh/dist/complete.tcsh vendor/tcsh/dist/config/cygwin vendor/tcsh/dist/config/win32 vendor/tcsh/dist/config_f.h vendor/tcsh/dist/configure vendor/tcsh/dist/configure.ac vendor/tcsh/dist/dotlock.c vendor/tcsh/dist/ed.chared.c vendor/tcsh/dist/ed.decls.h vendor/tcsh/dist/ed.defns.c vendor/tcsh/dist/ed.h vendor/tcsh/dist/ed.init.c vendor/tcsh/dist/ed.inputl.c vendor/tcsh/dist/ed.refresh.c vendor/tcsh/dist/ed.screen.c vendor/tcsh/dist/ed.term.c vendor/tcsh/dist/ed.term.h vendor/tcsh/dist/ed.xmap.c vendor/tcsh/dist/eight-bit.me vendor/tcsh/dist/gethost.c vendor/tcsh/dist/glob.3 vendor/tcsh/dist/glob.c vendor/tcsh/dist/glob.h vendor/tcsh/dist/host.defs vendor/tcsh/dist/imake.config vendor/tcsh/dist/ma.setp.c vendor/tcsh/dist/mi.termios.c vendor/tcsh/dist/mi.varargs.h vendor/tcsh/dist/nls/C/set1 vendor/tcsh/dist/nls/C/set10 vendor/tcsh/dist/nls/C/set11 vendor/tcsh/dist/nls/C/set12 vendor/tcsh/dist/nls/C/set13 vendor/tcsh/dist/nls/C/set14 vendor/tcsh/dist/nls/C/set15 vendor/tcsh/dist/nls/C/set16 vendor/tcsh/dist/nls/C/set17 vendor/tcsh/dist/nls/C/set18 vendor/tcsh/dist/nls/C/set19 vendor/tcsh/dist/nls/C/set2 vendor/tcsh/dist/nls/C/set20 vendor/tcsh/dist/nls/C/set21 vendor/tcsh/dist/nls/C/set22 vendor/tcsh/dist/nls/C/set23 vendor/tcsh/dist/nls/C/set24 vendor/tcsh/dist/nls/C/set25 vendor/tcsh/dist/nls/C/set26 vendor/tcsh/dist/nls/C/set27 vendor/tcsh/dist/nls/C/set29 vendor/tcsh/dist/nls/C/set3 vendor/tcsh/dist/nls/C/set30 vendor/tcsh/dist/nls/C/set31 vendor/tcsh/dist/nls/C/set4 vendor/tcsh/dist/nls/C/set5 vendor/tcsh/dist/nls/C/set6 vendor/tcsh/dist/nls/C/set7 vendor/tcsh/dist/nls/C/set8 vendor/tcsh/dist/nls/C/set9 vendor/tcsh/dist/nls/Makefile.in vendor/tcsh/dist/nls/catgen vendor/tcsh/dist/nls/et/set1 vendor/tcsh/dist/nls/et/set10 vendor/tcsh/dist/nls/et/set11 vendor/tcsh/dist/nls/et/set12 vendor/tcsh/dist/nls/et/set13 vendor/tcsh/dist/nls/et/set14 vendor/tcsh/dist/nls/et/set15 vendor/tcsh/dist/nls/et/set16 vendor/tcsh/dist/nls/et/set17 vendor/tcsh/dist/nls/et/set18 vendor/tcsh/dist/nls/et/set19 vendor/tcsh/dist/nls/et/set2 vendor/tcsh/dist/nls/et/set20 vendor/tcsh/dist/nls/et/set21 vendor/tcsh/dist/nls/et/set22 vendor/tcsh/dist/nls/et/set23 vendor/tcsh/dist/nls/et/set24 vendor/tcsh/dist/nls/et/set25 vendor/tcsh/dist/nls/et/set26 vendor/tcsh/dist/nls/et/set27 vendor/tcsh/dist/nls/et/set29 vendor/tcsh/dist/nls/et/set3 vendor/tcsh/dist/nls/et/set30 vendor/tcsh/dist/nls/et/set31 vendor/tcsh/dist/nls/et/set4 vendor/tcsh/dist/nls/et/set5 vendor/tcsh/dist/nls/et/set6 vendor/tcsh/dist/nls/et/set7 vendor/tcsh/dist/nls/et/set8 vendor/tcsh/dist/nls/et/set9 vendor/tcsh/dist/nls/finnish/set1 vendor/tcsh/dist/nls/finnish/set10 vendor/tcsh/dist/nls/finnish/set11 vendor/tcsh/dist/nls/finnish/set12 vendor/tcsh/dist/nls/finnish/set13 vendor/tcsh/dist/nls/finnish/set14 vendor/tcsh/dist/nls/finnish/set15 vendor/tcsh/dist/nls/finnish/set16 vendor/tcsh/dist/nls/finnish/set17 vendor/tcsh/dist/nls/finnish/set18 vendor/tcsh/dist/nls/finnish/set19 vendor/tcsh/dist/nls/finnish/set2 vendor/tcsh/dist/nls/finnish/set20 vendor/tcsh/dist/nls/finnish/set21 vendor/tcsh/dist/nls/finnish/set22 vendor/tcsh/dist/nls/finnish/set23 vendor/tcsh/dist/nls/finnish/set24 vendor/tcsh/dist/nls/finnish/set25 vendor/tcsh/dist/nls/finnish/set26 vendor/tcsh/dist/nls/finnish/set27 vendor/tcsh/dist/nls/finnish/set29 vendor/tcsh/dist/nls/finnish/set3 vendor/tcsh/dist/nls/finnish/set30 vendor/tcsh/dist/nls/finnish/set31 vendor/tcsh/dist/nls/finnish/set4 vendor/tcsh/dist/nls/finnish/set5 vendor/tcsh/dist/nls/finnish/set6 vendor/tcsh/dist/nls/finnish/set7 vendor/tcsh/dist/nls/finnish/set8 vendor/tcsh/dist/nls/finnish/set9 vendor/tcsh/dist/nls/french/set1 vendor/tcsh/dist/nls/french/set10 vendor/tcsh/dist/nls/french/set11 vendor/tcsh/dist/nls/french/set12 vendor/tcsh/dist/nls/french/set13 vendor/tcsh/dist/nls/french/set14 vendor/tcsh/dist/nls/french/set15 vendor/tcsh/dist/nls/french/set16 vendor/tcsh/dist/nls/french/set17 vendor/tcsh/dist/nls/french/set18 vendor/tcsh/dist/nls/french/set19 vendor/tcsh/dist/nls/french/set2 vendor/tcsh/dist/nls/french/set20 vendor/tcsh/dist/nls/french/set21 vendor/tcsh/dist/nls/french/set22 vendor/tcsh/dist/nls/french/set23 vendor/tcsh/dist/nls/french/set24 vendor/tcsh/dist/nls/french/set25 vendor/tcsh/dist/nls/french/set26 vendor/tcsh/dist/nls/french/set27 vendor/tcsh/dist/nls/french/set29 vendor/tcsh/dist/nls/french/set3 vendor/tcsh/dist/nls/french/set30 vendor/tcsh/dist/nls/french/set31 vendor/tcsh/dist/nls/french/set4 vendor/tcsh/dist/nls/french/set5 vendor/tcsh/dist/nls/french/set6 vendor/tcsh/dist/nls/french/set7 vendor/tcsh/dist/nls/french/set8 vendor/tcsh/dist/nls/french/set9 vendor/tcsh/dist/nls/german/set1 vendor/tcsh/dist/nls/german/set10 vendor/tcsh/dist/nls/german/set11 vendor/tcsh/dist/nls/german/set12 vendor/tcsh/dist/nls/german/set13 vendor/tcsh/dist/nls/german/set14 vendor/tcsh/dist/nls/german/set15 vendor/tcsh/dist/nls/german/set16 vendor/tcsh/dist/nls/german/set17 vendor/tcsh/dist/nls/german/set18 vendor/tcsh/dist/nls/german/set19 vendor/tcsh/dist/nls/german/set2 vendor/tcsh/dist/nls/german/set20 vendor/tcsh/dist/nls/german/set21 vendor/tcsh/dist/nls/german/set22 vendor/tcsh/dist/nls/german/set23 vendor/tcsh/dist/nls/german/set24 vendor/tcsh/dist/nls/german/set25 vendor/tcsh/dist/nls/german/set26 vendor/tcsh/dist/nls/german/set27 vendor/tcsh/dist/nls/german/set29 vendor/tcsh/dist/nls/german/set3 vendor/tcsh/dist/nls/german/set30 vendor/tcsh/dist/nls/german/set31 vendor/tcsh/dist/nls/german/set4 vendor/tcsh/dist/nls/german/set5 vendor/tcsh/dist/nls/german/set6 vendor/tcsh/dist/nls/german/set7 vendor/tcsh/dist/nls/german/set8 vendor/tcsh/dist/nls/german/set9 vendor/tcsh/dist/nls/greek/set1 vendor/tcsh/dist/nls/greek/set10 vendor/tcsh/dist/nls/greek/set11 vendor/tcsh/dist/nls/greek/set12 vendor/tcsh/dist/nls/greek/set13 vendor/tcsh/dist/nls/greek/set14 vendor/tcsh/dist/nls/greek/set15 vendor/tcsh/dist/nls/greek/set16 vendor/tcsh/dist/nls/greek/set17 vendor/tcsh/dist/nls/greek/set18 vendor/tcsh/dist/nls/greek/set19 vendor/tcsh/dist/nls/greek/set2 vendor/tcsh/dist/nls/greek/set20 vendor/tcsh/dist/nls/greek/set21 vendor/tcsh/dist/nls/greek/set22 vendor/tcsh/dist/nls/greek/set23 vendor/tcsh/dist/nls/greek/set24 vendor/tcsh/dist/nls/greek/set25 vendor/tcsh/dist/nls/greek/set26 vendor/tcsh/dist/nls/greek/set27 vendor/tcsh/dist/nls/greek/set29 vendor/tcsh/dist/nls/greek/set3 vendor/tcsh/dist/nls/greek/set30 vendor/tcsh/dist/nls/greek/set31 vendor/tcsh/dist/nls/greek/set4 vendor/tcsh/dist/nls/greek/set5 vendor/tcsh/dist/nls/greek/set6 vendor/tcsh/dist/nls/greek/set7 vendor/tcsh/dist/nls/greek/set8 vendor/tcsh/dist/nls/greek/set9 vendor/tcsh/dist/nls/italian/set1 vendor/tcsh/dist/nls/italian/set10 vendor/tcsh/dist/nls/italian/set11 vendor/tcsh/dist/nls/italian/set12 vendor/tcsh/dist/nls/italian/set13 vendor/tcsh/dist/nls/italian/set14 vendor/tcsh/dist/nls/italian/set15 vendor/tcsh/dist/nls/italian/set16 vendor/tcsh/dist/nls/italian/set17 vendor/tcsh/dist/nls/italian/set18 vendor/tcsh/dist/nls/italian/set19 vendor/tcsh/dist/nls/italian/set2 vendor/tcsh/dist/nls/italian/set20 vendor/tcsh/dist/nls/italian/set21 vendor/tcsh/dist/nls/italian/set22 vendor/tcsh/dist/nls/italian/set23 vendor/tcsh/dist/nls/italian/set24 vendor/tcsh/dist/nls/italian/set25 vendor/tcsh/dist/nls/italian/set26 vendor/tcsh/dist/nls/italian/set27 vendor/tcsh/dist/nls/italian/set29 vendor/tcsh/dist/nls/italian/set3 vendor/tcsh/dist/nls/italian/set30 vendor/tcsh/dist/nls/italian/set31 vendor/tcsh/dist/nls/italian/set4 vendor/tcsh/dist/nls/italian/set5 vendor/tcsh/dist/nls/italian/set6 vendor/tcsh/dist/nls/italian/set7 vendor/tcsh/dist/nls/italian/set8 vendor/tcsh/dist/nls/italian/set9 vendor/tcsh/dist/nls/ja/set1 vendor/tcsh/dist/nls/ja/set10 vendor/tcsh/dist/nls/ja/set11 vendor/tcsh/dist/nls/ja/set12 vendor/tcsh/dist/nls/ja/set13 vendor/tcsh/dist/nls/ja/set15 vendor/tcsh/dist/nls/ja/set16 vendor/tcsh/dist/nls/ja/set17 vendor/tcsh/dist/nls/ja/set18 vendor/tcsh/dist/nls/ja/set2 vendor/tcsh/dist/nls/ja/set21 vendor/tcsh/dist/nls/ja/set24 vendor/tcsh/dist/nls/ja/set29 vendor/tcsh/dist/nls/ja/set3 vendor/tcsh/dist/nls/ja/set30 vendor/tcsh/dist/nls/ja/set4 vendor/tcsh/dist/nls/ja/set5 vendor/tcsh/dist/nls/ja/set6 vendor/tcsh/dist/nls/ja/set7 vendor/tcsh/dist/nls/ja/set8 vendor/tcsh/dist/nls/pl/set1 vendor/tcsh/dist/nls/pl/set10 vendor/tcsh/dist/nls/pl/set11 vendor/tcsh/dist/nls/pl/set12 vendor/tcsh/dist/nls/pl/set13 vendor/tcsh/dist/nls/pl/set14 vendor/tcsh/dist/nls/pl/set15 vendor/tcsh/dist/nls/pl/set16 vendor/tcsh/dist/nls/pl/set17 vendor/tcsh/dist/nls/pl/set18 vendor/tcsh/dist/nls/pl/set19 vendor/tcsh/dist/nls/pl/set2 vendor/tcsh/dist/nls/pl/set20 vendor/tcsh/dist/nls/pl/set21 vendor/tcsh/dist/nls/pl/set22 vendor/tcsh/dist/nls/pl/set23 vendor/tcsh/dist/nls/pl/set24 vendor/tcsh/dist/nls/pl/set25 vendor/tcsh/dist/nls/pl/set26 vendor/tcsh/dist/nls/pl/set27 vendor/tcsh/dist/nls/pl/set29 vendor/tcsh/dist/nls/pl/set3 vendor/tcsh/dist/nls/pl/set30 vendor/tcsh/dist/nls/pl/set31 vendor/tcsh/dist/nls/pl/set4 vendor/tcsh/dist/nls/pl/set5 vendor/tcsh/dist/nls/pl/set6 vendor/tcsh/dist/nls/pl/set7 vendor/tcsh/dist/nls/pl/set8 vendor/tcsh/dist/nls/pl/set9 vendor/tcsh/dist/nls/russian/set1 vendor/tcsh/dist/nls/russian/set10 vendor/tcsh/dist/nls/russian/set11 vendor/tcsh/dist/nls/russian/set12 vendor/tcsh/dist/nls/russian/set13 vendor/tcsh/dist/nls/russian/set14 vendor/tcsh/dist/nls/russian/set15 vendor/tcsh/dist/nls/russian/set16 vendor/tcsh/dist/nls/russian/set17 vendor/tcsh/dist/nls/russian/set18 vendor/tcsh/dist/nls/russian/set19 vendor/tcsh/dist/nls/russian/set2 vendor/tcsh/dist/nls/russian/set20 vendor/tcsh/dist/nls/russian/set21 vendor/tcsh/dist/nls/russian/set22 vendor/tcsh/dist/nls/russian/set23 vendor/tcsh/dist/nls/russian/set24 vendor/tcsh/dist/nls/russian/set25 vendor/tcsh/dist/nls/russian/set26 vendor/tcsh/dist/nls/russian/set27 vendor/tcsh/dist/nls/russian/set29 vendor/tcsh/dist/nls/russian/set3 vendor/tcsh/dist/nls/russian/set30 vendor/tcsh/dist/nls/russian/set31 vendor/tcsh/dist/nls/russian/set4 vendor/tcsh/dist/nls/russian/set5 vendor/tcsh/dist/nls/russian/set6 vendor/tcsh/dist/nls/russian/set7 vendor/tcsh/dist/nls/russian/set8 vendor/tcsh/dist/nls/russian/set9 vendor/tcsh/dist/nls/spanish/set1 vendor/tcsh/dist/nls/spanish/set10 vendor/tcsh/dist/nls/spanish/set11 vendor/tcsh/dist/nls/spanish/set12 vendor/tcsh/dist/nls/spanish/set13 vendor/tcsh/dist/nls/spanish/set14 vendor/tcsh/dist/nls/spanish/set15 vendor/tcsh/dist/nls/spanish/set16 vendor/tcsh/dist/nls/spanish/set17 vendor/tcsh/dist/nls/spanish/set18 vendor/tcsh/dist/nls/spanish/set19 vendor/tcsh/dist/nls/spanish/set2 vendor/tcsh/dist/nls/spanish/set20 vendor/tcsh/dist/nls/spanish/set21 vendor/tcsh/dist/nls/spanish/set22 vendor/tcsh/dist/nls/spanish/set23 vendor/tcsh/dist/nls/spanish/set24 vendor/tcsh/dist/nls/spanish/set25 vendor/tcsh/dist/nls/spanish/set26 vendor/tcsh/dist/nls/spanish/set27 vendor/tcsh/dist/nls/spanish/set29 vendor/tcsh/dist/nls/spanish/set3 vendor/tcsh/dist/nls/spanish/set30 vendor/tcsh/dist/nls/spanish/set31 vendor/tcsh/dist/nls/spanish/set4 vendor/tcsh/dist/nls/spanish/set5 vendor/tcsh/dist/nls/spanish/set6 vendor/tcsh/dist/nls/spanish/set7 vendor/tcsh/dist/nls/spanish/set8 vendor/tcsh/dist/nls/spanish/set9 vendor/tcsh/dist/nls/ukrainian/set1 vendor/tcsh/dist/nls/ukrainian/set10 vendor/tcsh/dist/nls/ukrainian/set11 vendor/tcsh/dist/nls/ukrainian/set12 vendor/tcsh/dist/nls/ukrainian/set13 vendor/tcsh/dist/nls/ukrainian/set14 vendor/tcsh/dist/nls/ukrainian/set15 vendor/tcsh/dist/nls/ukrainian/set16 vendor/tcsh/dist/nls/ukrainian/set17 vendor/tcsh/dist/nls/ukrainian/set18 vendor/tcsh/dist/nls/ukrainian/set19 vendor/tcsh/dist/nls/ukrainian/set2 vendor/tcsh/dist/nls/ukrainian/set20 vendor/tcsh/dist/nls/ukrainian/set21 vendor/tcsh/dist/nls/ukrainian/set22 vendor/tcsh/dist/nls/ukrainian/set23 vendor/tcsh/dist/nls/ukrainian/set24 vendor/tcsh/dist/nls/ukrainian/set25 vendor/tcsh/dist/nls/ukrainian/set26 vendor/tcsh/dist/nls/ukrainian/set27 vendor/tcsh/dist/nls/ukrainian/set29 vendor/tcsh/dist/nls/ukrainian/set3 vendor/tcsh/dist/nls/ukrainian/set30 vendor/tcsh/dist/nls/ukrainian/set31 vendor/tcsh/dist/nls/ukrainian/set4 vendor/tcsh/dist/nls/ukrainian/set5 vendor/tcsh/dist/nls/ukrainian/set6 vendor/tcsh/dist/nls/ukrainian/set7 vendor/tcsh/dist/nls/ukrainian/set8 vendor/tcsh/dist/nls/ukrainian/set9 vendor/tcsh/dist/patchlevel.h vendor/tcsh/dist/pathnames.h vendor/tcsh/dist/sh.c vendor/tcsh/dist/sh.char.c vendor/tcsh/dist/sh.char.h vendor/tcsh/dist/sh.decls.h vendor/tcsh/dist/sh.dir.c vendor/tcsh/dist/sh.dir.h vendor/tcsh/dist/sh.dol.c vendor/tcsh/dist/sh.err.c vendor/tcsh/dist/sh.exec.c vendor/tcsh/dist/sh.exp.c vendor/tcsh/dist/sh.file.c vendor/tcsh/dist/sh.func.c vendor/tcsh/dist/sh.glob.c vendor/tcsh/dist/sh.h vendor/tcsh/dist/sh.hist.c vendor/tcsh/dist/sh.init.c vendor/tcsh/dist/sh.lex.c vendor/tcsh/dist/sh.misc.c vendor/tcsh/dist/sh.parse.c vendor/tcsh/dist/sh.print.c vendor/tcsh/dist/sh.proc.c vendor/tcsh/dist/sh.proc.h vendor/tcsh/dist/sh.sem.c vendor/tcsh/dist/sh.set.c vendor/tcsh/dist/sh.time.c vendor/tcsh/dist/sh.types.h vendor/tcsh/dist/snames.h vendor/tcsh/dist/tc.alloc.c vendor/tcsh/dist/tc.bind.c vendor/tcsh/dist/tc.const.c vendor/tcsh/dist/tc.decls.h vendor/tcsh/dist/tc.disc.c vendor/tcsh/dist/tc.func.c vendor/tcsh/dist/tc.h vendor/tcsh/dist/tc.nls.c vendor/tcsh/dist/tc.nls.h vendor/tcsh/dist/tc.os.c vendor/tcsh/dist/tc.os.h vendor/tcsh/dist/tc.printf.c vendor/tcsh/dist/tc.prompt.c vendor/tcsh/dist/tc.sched.c vendor/tcsh/dist/tc.sig.c vendor/tcsh/dist/tc.sig.h vendor/tcsh/dist/tc.str.c vendor/tcsh/dist/tc.vers.c vendor/tcsh/dist/tc.wait.h vendor/tcsh/dist/tc.who.c vendor/tcsh/dist/tcsh.man vendor/tcsh/dist/tcsh.man.new vendor/tcsh/dist/tcsh.man2html vendor/tcsh/dist/termcap.vms vendor/tcsh/dist/tests/lexical.at vendor/tcsh/dist/tw.color.c vendor/tcsh/dist/tw.comp.c vendor/tcsh/dist/tw.decls.h vendor/tcsh/dist/tw.h vendor/tcsh/dist/tw.help.c vendor/tcsh/dist/tw.init.c vendor/tcsh/dist/tw.parse.c vendor/tcsh/dist/tw.spell.c vendor/tcsh/dist/vms.termcap.c vendor/tcsh/dist/win32/BSDLOGO.RC vendor/tcsh/dist/win32/Makefile.win32 vendor/tcsh/dist/win32/README.NT vendor/tcsh/dist/win32/bogus.c vendor/tcsh/dist/win32/clip.c vendor/tcsh/dist/win32/console.c vendor/tcsh/dist/win32/dirent.c vendor/tcsh/dist/win32/dirent.h vendor/tcsh/dist/win32/fork.c vendor/tcsh/dist/win32/forkdata.h vendor/tcsh/dist/win32/globals.c vendor/tcsh/dist/win32/io.c vendor/tcsh/dist/win32/nt.bind.c vendor/tcsh/dist/win32/nt.char.c vendor/tcsh/dist/win32/nt.const.c vendor/tcsh/dist/win32/nt.screen.c vendor/tcsh/dist/win32/nt.who.c vendor/tcsh/dist/win32/ntb1.c vendor/tcsh/dist/win32/ntb2.c vendor/tcsh/dist/win32/ntfunc.c vendor/tcsh/dist/win32/ntport.h vendor/tcsh/dist/win32/ps.c vendor/tcsh/dist/win32/signal.c vendor/tcsh/dist/win32/stdio.c vendor/tcsh/dist/win32/support.c vendor/tcsh/dist/win32/version.h Modified: vendor/tcsh/dist/BUGS ============================================================================== --- vendor/tcsh/dist/BUGS Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/BUGS Tue Oct 8 18:20:02 2019 (r353317) @@ -1,4 +1,3 @@ -# $tcsh: BUGS,v 3.5 2006/03/02 18:46:44 christos Exp $ ============ Bugs in TCSH ============ Modified: vendor/tcsh/dist/Fixes ============================================================================== --- vendor/tcsh/dist/Fixes Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Fixes Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/Imakefile ============================================================================== --- vendor/tcsh/dist/Imakefile Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Imakefile Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/MAKEDIFFS ============================================================================== --- vendor/tcsh/dist/MAKEDIFFS Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/MAKEDIFFS Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/MAKESHAR ============================================================================== --- vendor/tcsh/dist/MAKESHAR Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/MAKESHAR Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/Makefile.in ============================================================================== --- vendor/tcsh/dist/Makefile.in Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Makefile.in Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/Makefile.std ============================================================================== --- vendor/tcsh/dist/Makefile.std Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Makefile.std Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/Makefile.vms ============================================================================== --- vendor/tcsh/dist/Makefile.vms Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Makefile.vms Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/Ported ============================================================================== --- vendor/tcsh/dist/Ported Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/Ported Tue Oct 8 18:20:02 2019 (r353317) @@ -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 Added: vendor/tcsh/dist/README.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcsh/dist/README.md Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/aclocal.m4 ============================================================================== --- vendor/tcsh/dist/aclocal.m4 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/aclocal.m4 Tue Oct 8 18:20:02 2019 (r353317) @@ -13,7 +13,7 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # iconv.m4 serial 19 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -285,7 +285,7 @@ size_t iconv(); ]) # lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -405,7 +405,7 @@ AC_LIB_PROG_LD_GNU ]) # lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -1183,7 +1183,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], ]) # lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. Modified: vendor/tcsh/dist/complete.tcsh ============================================================================== --- vendor/tcsh/dist/complete.tcsh Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/complete.tcsh Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/config/cygwin ============================================================================== --- vendor/tcsh/dist/config/cygwin Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/config/cygwin Tue Oct 8 18:20:02 2019 (r353317) @@ -78,6 +78,10 @@ */ #undef YPBUGS +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif + /****************** local defines *********************/ #ifndef _PATH_TCSHELL #define _PATH_TCSHELL "/bin/tcsh" Modified: vendor/tcsh/dist/config/win32 ============================================================================== --- vendor/tcsh/dist/config/win32 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/config/win32 Tue Oct 8 18:20:02 2019 (r353317) @@ -102,8 +102,6 @@ #define SIZEOF_WCHAR_T 2 -#define RCSID(id) static char *rcsid = (id); - // fake defines #define HAVE_SETPGID 1 /****************** local defines *********************/ Modified: vendor/tcsh/dist/config_f.h ============================================================================== --- vendor/tcsh/dist/config_f.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/config_f.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/configure ============================================================================== --- vendor/tcsh/dist/configure Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/configure Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/configure.ac ============================================================================== --- vendor/tcsh/dist/configure.ac Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/configure.ac Tue Oct 8 18:20:02 2019 (r353317) @@ -6,11 +6,9 @@ dnl dnl You'll also need a version of config.guess from a gnu package dnl dnl Written by Kaveh Ghazi (ghazi@caip.rutgers.edu) 5/11/96. -dnl -dnl $tcsh: configure.ac,v 3.10 2016/11/24 15:04:52 christos Exp $ AC_PREREQ([2.59])dnl Minimum Autoconf version required. -AC_INIT([tcsh], [6.20.00], [http://bugs.gw.com/]) +AC_INIT([tcsh], [6.21.00], [https://bugs.astron.com/]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([tc.vers.c]) AC_CONFIG_HEADERS([config.h]) @@ -317,7 +315,7 @@ esac dnl Checks for libraries AC_SEARCH_LIBS(crypt, crypt) AC_SEARCH_LIBS(getspnam, sec) -AC_SEARCH_LIBS([tgetent], [termlib termcap curses ncurses], [], [ +AC_SEARCH_LIBS([tgetent], [termlib tinfo termcap curses ncurses], [], [ AC_MSG_ERROR([unable to find the tgetent() function]) ]) AC_SEARCH_LIBS(gethostbyname, nsl) Modified: vendor/tcsh/dist/dotlock.c ============================================================================== --- vendor/tcsh/dist/dotlock.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/dotlock.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.chared.c ============================================================================== --- vendor/tcsh/dist/ed.chared.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.chared.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.decls.h ============================================================================== --- vendor/tcsh/dist/ed.decls.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.decls.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.defns.c ============================================================================== --- vendor/tcsh/dist/ed.defns.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.defns.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.h ============================================================================== --- vendor/tcsh/dist/ed.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.init.c ============================================================================== --- vendor/tcsh/dist/ed.init.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.init.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.inputl.c ============================================================================== --- vendor/tcsh/dist/ed.inputl.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.inputl.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.refresh.c ============================================================================== --- vendor/tcsh/dist/ed.refresh.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.refresh.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.screen.c ============================================================================== --- vendor/tcsh/dist/ed.screen.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.screen.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.term.c ============================================================================== --- vendor/tcsh/dist/ed.term.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.term.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.term.h ============================================================================== --- vendor/tcsh/dist/ed.term.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.term.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ed.xmap.c ============================================================================== --- vendor/tcsh/dist/ed.xmap.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ed.xmap.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/eight-bit.me ============================================================================== --- vendor/tcsh/dist/eight-bit.me Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/eight-bit.me Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/gethost.c ============================================================================== --- vendor/tcsh/dist/gethost.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/gethost.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/glob.3 ============================================================================== --- vendor/tcsh/dist/glob.3 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/glob.3 Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/glob.c ============================================================================== --- vendor/tcsh/dist/glob.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/glob.c Tue Oct 8 18:20:02 2019 (r353317) @@ -691,72 +691,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: vendor/tcsh/dist/glob.h ============================================================================== --- vendor/tcsh/dist/glob.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/glob.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/host.defs ============================================================================== --- vendor/tcsh/dist/host.defs Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/host.defs Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/imake.config ============================================================================== --- vendor/tcsh/dist/imake.config Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/imake.config Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/ma.setp.c ============================================================================== --- vendor/tcsh/dist/ma.setp.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/ma.setp.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/mi.termios.c ============================================================================== --- vendor/tcsh/dist/mi.termios.c Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/mi.termios.c Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/mi.varargs.h ============================================================================== --- vendor/tcsh/dist/mi.varargs.h Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/mi.varargs.h Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/nls/C/set1 ============================================================================== --- vendor/tcsh/dist/nls/C/set1 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/nls/C/set1 Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/nls/C/set10 ============================================================================== --- vendor/tcsh/dist/nls/C/set10 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/nls/C/set10 Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/nls/C/set11 ============================================================================== --- vendor/tcsh/dist/nls/C/set11 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/nls/C/set11 Tue Oct 8 18:20:02 2019 (r353317) @@ -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: vendor/tcsh/dist/nls/C/set12 ============================================================================== --- vendor/tcsh/dist/nls/C/set12 Tue Oct 8 18:17:02 2019 (r353316) +++ vendor/tcsh/dist/nls/C/set12 Tue Oct 8 18:20:02 2019 (r353317) @@ -1,4 +1,3 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Oct 8 18:21:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B4797132C1E; Tue, 8 Oct 2019 18:21:45 +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 46nlzs4Py4z4Lw0; Tue, 8 Oct 2019 18:21:45 +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 62E70438E; Tue, 8 Oct 2019 18:21:45 +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 x98ILjkK070711; Tue, 8 Oct 2019 18:21:45 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98ILjUn070710; Tue, 8 Oct 2019 18:21:45 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201910081821.x98ILjUn070710@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 18:21:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353319 - vendor/tcsh/6.21.00 X-SVN-Group: vendor X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: vendor/tcsh/6.21.00 X-SVN-Commit-Revision: 353319 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 18:21:45 -0000 Author: brooks Date: Tue Oct 8 18:21:44 2019 New Revision: 353319 URL: https://svnweb.freebsd.org/changeset/base/353319 Log: Tag 6.21.00 import. Added: vendor/tcsh/6.21.00/ - copied from r353318, vendor/tcsh/dist/ From owner-svn-src-all@freebsd.org Tue Oct 8 18:58:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 19:49:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 20:14:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C04F135CFD; Tue, 8 Oct 2019 20:14:34 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46npV21Gr0z4SdF; Tue, 8 Oct 2019 20:14:34 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0FBF657ED; Tue, 8 Oct 2019 20:14:34 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x98KEX7w039697; Tue, 8 Oct 2019 20:14:33 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x98KEXlb039696; Tue, 8 Oct 2019 20:14:33 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201910082014.x98KEXlb039696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Tue, 8 Oct 2019 20:14:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353322 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 353322 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Oct 2019 20:14:34 -0000 Author: sjg Date: Tue Oct 8 20:14:33 2019 New Revision: 353322 URL: https://svnweb.freebsd.org/changeset/base/353322 Log: Need to use ${${_${group}DIR_${file}}} for STAGE_DIR STAGE_DIR.${${_${group}DIR_${file}}:C,[/*],_,g} was getting ${STAGE_OBJTOP}BINDIR rather than ${STAGE_OBJTOP}${BINDIR} when FILESDIR=BINDIR MFC of r352942 Reviewed by: stevek Differential Revision: https://reviews.freebsd.org/D21858 Modified: stable/12/share/mk/bsd.files.mk Modified: stable/12/share/mk/bsd.files.mk ============================================================================== --- stable/12/share/mk/bsd.files.mk Tue Oct 8 19:49:25 2019 (r353321) +++ stable/12/share/mk/bsd.files.mk Tue Oct 8 20:14:33 2019 (r353322) @@ -105,7 +105,7 @@ STAGE_AS_${file}= ${${group}NAME_${file}} # we need to expand ${group}DIR_${file} and replace # all '/' and '*' with '_' to make a safe target name. STAGE_AS_SETS+= ${${_${group}DIR_${file}}:C,[/*],_,g} -STAGE_DIR.${${_${group}DIR_${file}}:C,[/*],_,g}= ${STAGE_OBJTOP}${${group}DIR_${file}} +STAGE_DIR.${${_${group}DIR_${file}}:C,[/*],_,g}= ${STAGE_OBJTOP}${${_${group}DIR_${file}}} stage_as.${${_${group}DIR_${file}}:C,[/*],_,g}: ${file} installfiles-${group}: _${group}INS1_${file} From owner-svn-src-all@freebsd.org Tue Oct 8 20:22:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 20:26:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 20:59:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 21:14:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 21:14:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 21:34:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 21:39:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 21:40:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 23:34:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 23:35:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Tue Oct 8 23:52:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 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-all@freebsd.org Wed Oct 9 02:02:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 05:28:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 05:52:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 06:22:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 08:01:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 09:40:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6FC6146AC6; Wed, 9 Oct 2019 09:40: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 46p8MR5qSkz4B7C; Wed, 9 Oct 2019 09:40: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 AB62DE8A0; Wed, 9 Oct 2019 09:40: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 x999e3NU011903; Wed, 9 Oct 2019 09:40:03 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x999e35d011901; Wed, 9 Oct 2019 09:40:03 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910090940.x999e35d011901@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 09:40:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353337 - in stable/12: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in stable/12: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 353337 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 09:40:04 -0000 Author: avg Date: Wed Oct 9 09:40:03 2019 New Revision: 353337 URL: https://svnweb.freebsd.org/changeset/base/353337 Log: MFC r352591: MFZoL: Retire send space estimation via ZFS_IOC_SEND Add a small wrapper around libzfs_core's lzc_send_space() to libzfs so that every legacy ZFS_IOC_SEND consumer, along with their userland counterpart estimate_ioctl(), can leverage ZFS_IOC_SEND_SPACE to request send space estimation. The legacy functionality in zfs_ioc_send() is left untouched for compatibility purposes. Obtained from: ZoL Obtained from: zfsonlinux/zfs@cf7684bc8d57 Author: loli10K Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/12/ (props changed) Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 05:52:07 2019 (r353336) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 09:40:03 2019 (r353337) @@ -948,39 +948,32 @@ typedef struct send_dump_data { } send_dump_data_t; static int -estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_obj, - boolean_t fromorigin, enum lzc_send_flags flags, uint64_t *sizep) +zfs_send_space(zfs_handle_t *zhp, const char *snapname, const char *from, + enum lzc_send_flags flags, uint64_t *spacep) { - zfs_cmd_t zc = { 0 }; libzfs_handle_t *hdl = zhp->zfs_hdl; + int error; - assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); - assert(fromsnap_obj == 0 || !fromorigin); + assert(snapname != NULL); + error = lzc_send_space(snapname, from, flags, spacep); - (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); - zc.zc_obj = fromorigin; - zc.zc_sendobj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID); - zc.zc_fromobj = fromsnap_obj; - zc.zc_guid = 1; /* estimate flag */ - zc.zc_flags = flags; - - if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_SEND, &zc) != 0) { + if (error != 0) { char errbuf[1024]; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, - "warning: cannot estimate space for '%s'"), zhp->zfs_name); + "warning: cannot estimate space for '%s'"), snapname); - switch (errno) { + switch (error) { case EXDEV: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "not an earlier snapshot from the same fs")); return (zfs_error(hdl, EZFS_CROSSTARGET, errbuf)); case ENOENT: - if (zfs_dataset_exists(hdl, zc.zc_name, + if (zfs_dataset_exists(hdl, snapname, ZFS_TYPE_SNAPSHOT)) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "incremental source (@%s) does not exist"), - zc.zc_value); + "incremental source (%s) does not exist"), + snapname); } return (zfs_error(hdl, EZFS_NOENT, errbuf)); @@ -994,16 +987,15 @@ estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_ob case ERANGE: case EFAULT: case EROFS: - zfs_error_aux(hdl, strerror(errno)); + case EINVAL: + zfs_error_aux(hdl, strerror(error)); return (zfs_error(hdl, EZFS_BADBACKUP, errbuf)); default: - return (zfs_standard_error(hdl, errno, errbuf)); + return (zfs_standard_error(hdl, error, errbuf)); } } - *sizep = zc.zc_objset_type; - return (0); } @@ -1290,13 +1282,22 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) (sdd->fromorigin || sdd->replicate); if (sdd->verbose || sdd->progress) { - (void) estimate_ioctl(zhp, sdd->prevsnap_obj, - fromorigin, flags, &size); - sdd->size += size; + char fromds[ZFS_MAX_DATASET_NAME_LEN]; - send_print_verbose(fout, zhp->zfs_name, - sdd->prevsnap[0] ? sdd->prevsnap : NULL, - size, sdd->parsable); + if (sdd->prevsnap[0] != '\0') { + (void) strlcpy(fromds, zhp->zfs_name, sizeof (fromds)); + *(strchr(fromds, '@') + 1) = '\0'; + (void) strlcat(fromds, sdd->prevsnap, sizeof (fromds)); + } + if (zfs_send_space(zhp, zhp->zfs_name, + sdd->prevsnap[0] ? fromds : NULL, flags, &size) != 0) { + size = 0; /* cannot estimate send space */ + } else { + send_print_verbose(fout, zhp->zfs_name, + sdd->prevsnap[0] ? sdd->prevsnap : NULL, + size, sdd->parsable); + } + sdd->size += size; } if (!sdd->dryrun) { Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Oct 9 05:52:07 2019 (r353336) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Oct 9 09:40:03 2019 (r353337) @@ -4799,6 +4799,9 @@ out: * * outputs: * zc_objset_type estimated size, if zc_guid is set + * + * NOTE: This is no longer the preferred interface, any new functionality + * should be added to zfs_ioc_send_new() instead. */ static int zfs_ioc_send(zfs_cmd_t *zc) From owner-svn-src-all@freebsd.org Wed Oct 9 09:47:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 38A9E146D29; Wed, 9 Oct 2019 09:47:01 +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 46p8WT0mtNz4BWl; Wed, 9 Oct 2019 09:47:01 +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 F2165EA62; Wed, 9 Oct 2019 09:47:00 +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 x999l0ZU017618; Wed, 9 Oct 2019 09:47:00 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x999l06b017617; Wed, 9 Oct 2019 09:47:00 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910090947.x999l06b017617@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 09:47:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353338 - stable/11/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: stable-11 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/11/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Commit-Revision: 353338 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 09:47:01 -0000 Author: avg Date: Wed Oct 9 09:47:00 2019 New Revision: 353338 URL: https://svnweb.freebsd.org/changeset/base/353338 Log: MFC r352580 by sef: Fix a regression introduced in r344601 ... and work properly with the -v and -n options. PR: 240640 Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 09:40:03 2019 (r353337) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 09:47:00 2019 (r353338) @@ -1289,13 +1289,11 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) fromorigin = sdd->prevsnap[0] == '\0' && (sdd->fromorigin || sdd->replicate); - if (sdd->progress && sdd->dryrun) { + if (sdd->verbose || sdd->progress) { (void) estimate_ioctl(zhp, sdd->prevsnap_obj, fromorigin, flags, &size); sdd->size += size; - } - if (sdd->verbose) { send_print_verbose(fout, zhp->zfs_name, sdd->prevsnap[0] ? sdd->prevsnap : NULL, size, sdd->parsable); @@ -1663,7 +1661,7 @@ zfs_send_resume(libzfs_handle_t *hdl, sendflags_t *fla fromname = name; } - if (flags->progress) { + if (flags->progress || flags->verbose) { error = lzc_send_space(zhp->zfs_name, fromname, lzc_flags, &size); if (error == 0) @@ -1933,7 +1931,7 @@ zfs_send(zfs_handle_t *zhp, const char *fromsnap, cons sdd.cleanup_fd = -1; sdd.snapholds = NULL; } - if (flags->progress || sdd.snapholds != NULL) { + if (flags->progress || flags->verbose || sdd.snapholds != NULL) { /* * Do a verbose no-op dry run to get all the verbose output * or to gather snapshot hold's before generating any data, From owner-svn-src-all@freebsd.org Wed Oct 9 09:50:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2AB9F146F77; Wed, 9 Oct 2019 09:50:23 +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 46p8bM0HDgz4BrX; Wed, 9 Oct 2019 09:50:23 +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 E1E40EA89; Wed, 9 Oct 2019 09:50:22 +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 x999oMYv017883; Wed, 9 Oct 2019 09:50:22 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x999oML3017881; Wed, 9 Oct 2019 09:50:22 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201910090950.x999oML3017881@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 09:50:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353339 - in stable/11: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-11 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: in stable/11: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 353339 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 09:50:23 -0000 Author: avg Date: Wed Oct 9 09:50:22 2019 New Revision: 353339 URL: https://svnweb.freebsd.org/changeset/base/353339 Log: MFC r352591: MFZoL: Retire send space estimation via ZFS_IOC_SEND Add a small wrapper around libzfs_core's lzc_send_space() to libzfs so that every legacy ZFS_IOC_SEND consumer, along with their userland counterpart estimate_ioctl(), can leverage ZFS_IOC_SEND_SPACE to request send space estimation. The legacy functionality in zfs_ioc_send() is left untouched for compatibility purposes. Obtained from: ZoL Obtained from: zfsonlinux/zfs@cf7684bc8d57 Author: loli10K Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 09:47:00 2019 (r353338) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Oct 9 09:50:22 2019 (r353339) @@ -948,39 +948,32 @@ typedef struct send_dump_data { } send_dump_data_t; static int -estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_obj, - boolean_t fromorigin, enum lzc_send_flags flags, uint64_t *sizep) +zfs_send_space(zfs_handle_t *zhp, const char *snapname, const char *from, + enum lzc_send_flags flags, uint64_t *spacep) { - zfs_cmd_t zc = { 0 }; libzfs_handle_t *hdl = zhp->zfs_hdl; + int error; - assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); - assert(fromsnap_obj == 0 || !fromorigin); + assert(snapname != NULL); + error = lzc_send_space(snapname, from, flags, spacep); - (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); - zc.zc_obj = fromorigin; - zc.zc_sendobj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID); - zc.zc_fromobj = fromsnap_obj; - zc.zc_guid = 1; /* estimate flag */ - zc.zc_flags = flags; - - if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_SEND, &zc) != 0) { + if (error != 0) { char errbuf[1024]; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, - "warning: cannot estimate space for '%s'"), zhp->zfs_name); + "warning: cannot estimate space for '%s'"), snapname); - switch (errno) { + switch (error) { case EXDEV: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "not an earlier snapshot from the same fs")); return (zfs_error(hdl, EZFS_CROSSTARGET, errbuf)); case ENOENT: - if (zfs_dataset_exists(hdl, zc.zc_name, + if (zfs_dataset_exists(hdl, snapname, ZFS_TYPE_SNAPSHOT)) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "incremental source (@%s) does not exist"), - zc.zc_value); + "incremental source (%s) does not exist"), + snapname); } return (zfs_error(hdl, EZFS_NOENT, errbuf)); @@ -994,16 +987,15 @@ estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_ob case ERANGE: case EFAULT: case EROFS: - zfs_error_aux(hdl, strerror(errno)); + case EINVAL: + zfs_error_aux(hdl, strerror(error)); return (zfs_error(hdl, EZFS_BADBACKUP, errbuf)); default: - return (zfs_standard_error(hdl, errno, errbuf)); + return (zfs_standard_error(hdl, error, errbuf)); } } - *sizep = zc.zc_objset_type; - return (0); } @@ -1290,13 +1282,22 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) (sdd->fromorigin || sdd->replicate); if (sdd->verbose || sdd->progress) { - (void) estimate_ioctl(zhp, sdd->prevsnap_obj, - fromorigin, flags, &size); - sdd->size += size; + char fromds[ZFS_MAX_DATASET_NAME_LEN]; - send_print_verbose(fout, zhp->zfs_name, - sdd->prevsnap[0] ? sdd->prevsnap : NULL, - size, sdd->parsable); + if (sdd->prevsnap[0] != '\0') { + (void) strlcpy(fromds, zhp->zfs_name, sizeof (fromds)); + *(strchr(fromds, '@') + 1) = '\0'; + (void) strlcat(fromds, sdd->prevsnap, sizeof (fromds)); + } + if (zfs_send_space(zhp, zhp->zfs_name, + sdd->prevsnap[0] ? fromds : NULL, flags, &size) != 0) { + size = 0; /* cannot estimate send space */ + } else { + send_print_verbose(fout, zhp->zfs_name, + sdd->prevsnap[0] ? sdd->prevsnap : NULL, + size, sdd->parsable); + } + sdd->size += size; } if (!sdd->dryrun) { Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Oct 9 09:47:00 2019 (r353338) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Oct 9 09:50:22 2019 (r353339) @@ -4783,6 +4783,9 @@ out: * * outputs: * zc_objset_type estimated size, if zc_guid is set + * + * NOTE: This is no longer the preferred interface, any new functionality + * should be added to zfs_ioc_send_new() instead. */ static int zfs_ioc_send(zfs_cmd_t *zc) From owner-svn-src-all@freebsd.org Wed Oct 9 11:26:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 11:34:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 11:40:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4910F149495 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 46pC2h0q14z4JFc 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: 46pC2h0q14z4JFc 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 11:44:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 11:46:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 11:57:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 12:14:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 14:09:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C65A14CE65; Wed, 9 Oct 2019 14:09:26 +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 46pGLG1cr0z4T6j; Wed, 9 Oct 2019 14:09:26 +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 168B1198F2; Wed, 9 Oct 2019 14:09:26 +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 x99E9P1N083669; Wed, 9 Oct 2019 14:09:25 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99E9PaF083668; Wed, 9 Oct 2019 14:09:25 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910091409.x99E9PaF083668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 9 Oct 2019 14:09:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353345 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 353345 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 14:09:26 -0000 Author: markj Date: Wed Oct 9 14:09:25 2019 New Revision: 353345 URL: https://svnweb.freebsd.org/changeset/base/353345 Log: MFC r353014: Use OBJT_PHYS VM objects for kernel modules. Modified: stable/12/sys/kern/link_elf.c stable/12/sys/kern/link_elf_obj.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/link_elf.c ============================================================================== --- stable/12/sys/kern/link_elf.c Wed Oct 9 12:14:10 2019 (r353344) +++ stable/12/sys/kern/link_elf.c Wed Oct 9 14:09:25 2019 (r353345) @@ -944,7 +944,7 @@ link_elf_load_file(linker_class_t cls, const char* fil ef = (elf_file_t) lf; #ifdef SPARSE_MAPPING - ef->object = vm_object_allocate(OBJT_DEFAULT, mapsize >> PAGE_SHIFT); + ef->object = vm_object_allocate(OBJT_PHYS, atop(mapsize)); if (ef->object == NULL) { error = ENOMEM; goto out; Modified: stable/12/sys/kern/link_elf_obj.c ============================================================================== --- stable/12/sys/kern/link_elf_obj.c Wed Oct 9 12:14:10 2019 (r353344) +++ stable/12/sys/kern/link_elf_obj.c Wed Oct 9 14:09:25 2019 (r353345) @@ -774,8 +774,7 @@ link_elf_load_file(linker_class_t cls, const char *fil * This stuff needs to be in a single chunk so that profiling etc * can get the bounds and gdb can associate offsets with modules */ - ef->object = vm_object_allocate(OBJT_DEFAULT, - round_page(mapsize) >> PAGE_SHIFT); + ef->object = vm_object_allocate(OBJT_PHYS, atop(round_page(mapsize))); if (ef->object == NULL) { error = ENOMEM; goto out; From owner-svn-src-all@freebsd.org Wed Oct 9 14:09:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1266414CED8; Wed, 9 Oct 2019 14:09:58 +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 46pGLs6fgNz4TDs; Wed, 9 Oct 2019 14:09:57 +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 C7A0C198F3; Wed, 9 Oct 2019 14:09:57 +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 x99E9vxZ083753; Wed, 9 Oct 2019 14:09:57 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99E9vom083752; Wed, 9 Oct 2019 14:09:57 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201910091409.x99E9vom083752@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 9 Oct 2019 14:09:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353346 - stable/12/sys/modules/hptmv X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/modules/hptmv X-SVN-Commit-Revision: 353346 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 14:09:58 -0000 Author: markj Date: Wed Oct 9 14:09:57 2019 New Revision: 353346 URL: https://svnweb.freebsd.org/changeset/base/353346 Log: MFC r353013: Harmonize the hptmv blob's build rule with that of other hpt* drivers. Modified: stable/12/sys/modules/hptmv/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/modules/hptmv/Makefile ============================================================================== --- stable/12/sys/modules/hptmv/Makefile Wed Oct 9 14:09:25 2019 (r353345) +++ stable/12/sys/modules/hptmv/Makefile Wed Oct 9 14:09:57 2019 (r353346) @@ -13,14 +13,8 @@ SRCS+= bus_if.h device_if.h pci_if.h SRCS+= mv.c entry.c ioctl.c hptproc.c gui_lib.c OBJS+= hptmvraid.o -.if $(MACHINE_CPUARCH) == "amd64" -HPTMV_RAID_O = amd64-elf.raid.o.uu -.else -HPTMV_RAID_O = i386-elf.raid.o.uu -.endif - -hptmvraid.o: ${HPTMV}/$(HPTMV_RAID_O) - uudecode -p < ${HPTMV}/$(HPTMV_RAID_O) > ${.TARGET} +hptmvraid.o: + uudecode -p < ${HPTMV}/${MACHINE_CPUARCH}-elf.raid.o.uu > ${.TARGET} # # Debug Options: From owner-svn-src-all@freebsd.org Wed Oct 9 14:35:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25BE414DA28; Wed, 9 Oct 2019 14:35:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pGvy09LTz4WJq; Wed, 9 Oct 2019 14:35:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DCF1819E59; Wed, 9 Oct 2019 14:35:09 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99EZ9dH002430; Wed, 9 Oct 2019 14:35:09 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99EZ9t7002429; Wed, 9 Oct 2019 14:35:09 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201910091435.x99EZ9t7002429@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 9 Oct 2019 14:35:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353347 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 353347 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 14:35:10 -0000 Author: emaste Date: Wed Oct 9 14:35:09 2019 New Revision: 353347 URL: https://svnweb.freebsd.org/changeset/base/353347 Log: MFC r353021: simplify path handling in sysctl_try_reclaim_vnode MAXPATHLEN / PATH_MAX includes space for the terminating NUL, and namei verifies the presence of the NUL. Thus there is no need to increase the buffer size here. The sysctl passes the string excluding the NUL, so req->newlen equal to PATH_MAX is too long. Sponsored by: The FreeBSD Foundation Modified: stable/12/sys/kern/vfs_subr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/vfs_subr.c ============================================================================== --- stable/12/sys/kern/vfs_subr.c Wed Oct 9 14:09:57 2019 (r353346) +++ stable/12/sys/kern/vfs_subr.c Wed Oct 9 14:35:09 2019 (r353347) @@ -352,10 +352,10 @@ sysctl_try_reclaim_vnode(SYSCTL_HANDLER_ARGS) if (req->newptr == NULL) return (EINVAL); - if (req->newlen > PATH_MAX) + if (req->newlen >= PATH_MAX) return (E2BIG); - buf = malloc(PATH_MAX + 1, M_TEMP, M_WAITOK); + buf = malloc(PATH_MAX, M_TEMP, M_WAITOK); error = SYSCTL_IN(req, buf, req->newlen); if (error != 0) goto out; From owner-svn-src-all@freebsd.org Wed Oct 9 15:35:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 16:21:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 16:21:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 16:48:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 16:57:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 16:59:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:02:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:03:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:07:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:08:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:24:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 17:36:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 18:46:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 19:51:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 20:01:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 20:05:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 20:16:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 20:59:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:02:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:08:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:18:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:20:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:45:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:45:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 21:48:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Wed Oct 9 22:19:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E98B8131748; Wed, 9 Oct 2019 22:19:11 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pTCM6fGrz46ST; Wed, 9 Oct 2019 22:19:11 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF9251F3BB; Wed, 9 Oct 2019 22:19:11 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99MJBB8084201; Wed, 9 Oct 2019 22:19:11 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99MJ6t8084170; Wed, 9 Oct 2019 22:19:06 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201910092219.x99MJ6t8084170@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 9 Oct 2019 22:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353376 - in stable/11/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Group: stable-11 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/11/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Commit-Revision: 353376 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 22:19:12 -0000 Author: mm Date: Wed Oct 9 22:19:06 2019 New Revision: 353376 URL: https://svnweb.freebsd.org/changeset/base/353376 Log: MFC r316456,352732: Sync libarchive with vendor. MFC r316456: Vendor changes (FreeBSD-related): Report which extended attributes could not be restored Update archive_read_disk.3 and archive_write_disk.3 manual pages Plug memory leaks in xattr tests. MFC r352732: Relevant vendor changes: Issue #1237: Fix integer overflow in archive_read_support_filter_lz4.c PR #1249: Correct some typographical and grammatical errors. PR #1250: Minor corrections to the formatting of manual pages Modified: stable/11/contrib/libarchive/cat/bsdcat.1 stable/11/contrib/libarchive/cpio/bsdcpio.1 stable/11/contrib/libarchive/libarchive/archive.h stable/11/contrib/libarchive/libarchive/archive_entry.3 stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 stable/11/contrib/libarchive/libarchive/archive_entry_misc.3 stable/11/contrib/libarchive/libarchive/archive_entry_paths.3 stable/11/contrib/libarchive/libarchive/archive_entry_perms.3 stable/11/contrib/libarchive/libarchive/archive_entry_stat.3 stable/11/contrib/libarchive/libarchive/archive_entry_time.3 stable/11/contrib/libarchive/libarchive/archive_read.3 stable/11/contrib/libarchive/libarchive/archive_read_add_passphrase.3 stable/11/contrib/libarchive/libarchive/archive_read_data.3 stable/11/contrib/libarchive/libarchive/archive_read_disk.3 stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/11/contrib/libarchive/libarchive/archive_read_extract.3 stable/11/contrib/libarchive/libarchive/archive_read_filter.3 stable/11/contrib/libarchive/libarchive/archive_read_format.3 stable/11/contrib/libarchive/libarchive/archive_read_free.3 stable/11/contrib/libarchive/libarchive/archive_read_header.3 stable/11/contrib/libarchive/libarchive/archive_read_new.3 stable/11/contrib/libarchive/libarchive/archive_read_open.3 stable/11/contrib/libarchive/libarchive/archive_read_set_options.3 stable/11/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c stable/11/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/11/contrib/libarchive/libarchive/archive_string.c stable/11/contrib/libarchive/libarchive/archive_util.3 stable/11/contrib/libarchive/libarchive/archive_write.3 stable/11/contrib/libarchive/libarchive/archive_write_blocksize.3 stable/11/contrib/libarchive/libarchive/archive_write_data.3 stable/11/contrib/libarchive/libarchive/archive_write_disk.3 stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/11/contrib/libarchive/libarchive/archive_write_filter.3 stable/11/contrib/libarchive/libarchive/archive_write_finish_entry.3 stable/11/contrib/libarchive/libarchive/archive_write_format.3 stable/11/contrib/libarchive/libarchive/archive_write_free.3 stable/11/contrib/libarchive/libarchive/archive_write_header.3 stable/11/contrib/libarchive/libarchive/archive_write_new.3 stable/11/contrib/libarchive/libarchive/archive_write_open.3 stable/11/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_mtree.c stable/11/contrib/libarchive/libarchive/archive_write_set_options.3 stable/11/contrib/libarchive/libarchive/archive_write_set_passphrase.3 stable/11/contrib/libarchive/libarchive/libarchive_changes.3 stable/11/contrib/libarchive/libarchive/libarchive_internals.3 stable/11/contrib/libarchive/libarchive/tar.5 stable/11/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c stable/11/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/11/contrib/libarchive/libarchive/test/test_read_format_raw.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c stable/11/contrib/libarchive/libarchive/test/test_write_filter_zstd.c stable/11/contrib/libarchive/libarchive/test/test_xattr_platform.c stable/11/contrib/libarchive/tar/bsdtar.1 stable/11/contrib/libarchive/tar/test/test_option_acls.c stable/11/contrib/libarchive/tar/test/test_option_n.c stable/11/contrib/libarchive/tar/test/test_option_xattrs.c stable/11/contrib/libarchive/test_utils/test_common.h stable/11/contrib/libarchive/test_utils/test_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/libarchive/cat/bsdcat.1 ============================================================================== --- stable/11/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 22:19:06 2019 (r353376) @@ -34,16 +34,15 @@ .Nm .Op options .Op files -.Pp .Sh DESCRIPTION .Nm expands files to standard output. .Sh OPTIONS .Nm typically takes a filename as an argument or reads standard input when used in a -pipe. In both cases decompressed data it written to standard output. +pipe. +In both cases decompressed data it written to standard output. .Sh EXAMPLES -.Pp To decompress a file: .Pp .Dl bsdcat example.txt.gz > example.txt @@ -55,8 +54,8 @@ To decompress standard input in a pipe: Both examples achieve the same results - a decompressed file by redirecting output. .Sh SEE ALSO -.Xr uncompress 1 , -.Xr zcat 1 , .Xr bzcat 1 , +.Xr uncompress 1 , .Xr xzcat 1 , -.Xr libarchive-formats 5 , +.Xr zcat 1 , +.Xr libarchive-formats 5 Modified: stable/11/contrib/libarchive/cpio/bsdcpio.1 ============================================================================== --- stable/11/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 22:19:06 2019 (r353376) @@ -75,7 +75,6 @@ Pass-through. Read a list of filenames from standard input and copy the files to the specified directory. .El -.Pp .Sh OPTIONS Unless specifically stated otherwise, options are applicable in all operating modes. @@ -385,10 +384,10 @@ For best compatibility, scripts should limit themselve standard syntax. .Sh SEE ALSO .Xr bzip2 1 , -.Xr tar 1 , .Xr gzip 1 , .Xr mt 1 , .Xr pax 1 , +.Xr tar 1 , .Xr libarchive 3 , .Xr cpio 5 , .Xr libarchive-formats 5 , Modified: stable/11/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive.h Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive.h Wed Oct 9 22:19:06 2019 (r353376) @@ -52,7 +52,7 @@ */ #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 # include -#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) +#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) && !defined(__CLANG_INTTYPES_H) # include #endif Modified: stable/11/contrib/libarchive/libarchive/archive_entry.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -32,7 +32,7 @@ .Nm archive_entry_clear , .Nm archive_entry_clone , .Nm archive_entry_free , -.Nm archive_entry_new , +.Nm archive_entry_new .Nd functions for managing archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -126,7 +126,6 @@ using the current locale. Similarly, if you store a wide string and then store a narrow string for the same data, the previously-set wide string will be discarded in favor of the new data. -.Pp .\" .Sh EXAMPLE .\" .Sh RETURN VALUES .\" .Sh ERRORS @@ -134,8 +133,8 @@ be discarded in favor of the new data. .Xr archive_entry_acl 3 , .Xr archive_entry_paths 3 , .Xr archive_entry_perms 3 , -.Xr archive_entry_time 3 -.Xr libarchive 3 , +.Xr archive_entry_time 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -118,15 +118,16 @@ Streaming Archive Library (libarchive, -larchive) .Sh DESCRIPTION The .Dq Access Control Lists (ACLs) -extend the standard Unix perssion model. +extend the standard Unix permission model. The ACL interface of .Nm libarchive -supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by +supports both POSIX.1e and NFSv4 style ACLs. +Use of ACLs is restricted by various levels of ACL support in operating systems, file systems and archive formats. .Ss POSIX.1e Access Control Lists A POSIX.1e ACL consists of a number of independent entries. -Each entry specifies the permission set as bitmask of basic permissions. +Each entry specifies the permission set as a bitmask of basic permissions. Valid permissions in the .Fa permset are: @@ -147,13 +148,13 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_MASK The maximum permissions to be obtained via group permissions. .It Dv ARCHIVE_ENTRY_ACL_OTHER -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp The principals @@ -164,12 +165,12 @@ and are equivalent to user, group and other in the classic Unix permission model and specify non-extended ACL entries. .Pp -All files with have an access ACL +All files have an access ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS . This specifies the permissions required for access to the file itself. Directories have an additional ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT , -which controls the initial access ACL for newly created directory entries. +which controls the initial access ACL for newly-created directory entries. .Ss NFSv4 Access Control Lists A NFSv4 ACL consists of multiple individual entries called Access Control Entries (ACEs). @@ -197,11 +198,11 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_EVERYONE -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp Entries with the @@ -216,9 +217,10 @@ integer. .Pp NFSv4 ACE permissions and flags are stored in the same .Fa permset -bitfield. Some permissions share the same constant and permission character but -have different effect on directories than on files. The following ACE -permissions are supported: +bitfield. +Some permissions share the same constant and permission character +but have different effect on directories than on files. +The following ACE permissions are supported: .Bl -tag -offset indent -compact -width ARCHIV .It Dv ARCHIVE_ENTRY_ACL_READ_DATA ( Sy r ) Read data (file). @@ -265,7 +267,8 @@ Inherit parent directory ACE to subdirectories. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY ( Sy i ) Only inherit, do not apply the permission on the directory itself. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT ( Sy n ) -Do not propagate inherit flags. Only first-level entries inherit ACLs. +Do not propagate inherit flags. +Only first-level entries inherit ACLs. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ( Sy S ) Trigger alarm or audit on successful access. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS ( Sy F ) @@ -279,8 +282,8 @@ and .Fn archive_entry_acl_add_entry_w add a single ACL entry. For the access ACL and non-extended principals, the classic Unix permissions -are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL -entries. +are updated. +An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries. .Pp .Fn archive_entry_acl_clear removes all ACL entries and resets the enumeration pointer. @@ -300,7 +303,8 @@ for POSIX.1e ACLs and .It Dv ARCHIVE_ENTRY_ACL_TYPE_AUDIT .It Dv ARCHIVE_ENTRY_ACL_TYPE_ALARM .El -for NFSv4 ACLs. For POSIX.1e ACLs if +for NFSv4 ACLs. +For POSIX.1e ACLs if .Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS is included and at least one extended ACL entry is found, the three non-extended ACLs are added. @@ -312,7 +316,8 @@ add new .Pq or merge with existing ACL entries from .Pq wide -text. The argument +text. +The argument .Fa type may take one of the following values: .Bl -tag -offset indent -compact -width "ARCHIVE_ENTRY_ACL_TYPE_DEFAULT" @@ -322,11 +327,13 @@ may take one of the following values: .El Supports all formats that can be created with .Fn archive_entry_acl_to_text -or respective +or respectively .Fn archive_entry_acl_to_text_w . -Existing ACL entries are preserved. To get a clean new ACL from text +Existing ACL entries are preserved. +To get a clean new ACL from text .Fn archive_entry_acl_clear -must be called first. Entries prefixed with +must be called first. +Entries prefixed with .Dq default: are treated as .Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT @@ -354,7 +361,7 @@ prepare reading the list of ACL entries with .Fn archive_entry_acl_next or .Fn archive_entry_acl_next_w . -The function returns either 0, if no non-extended ACLs are found. +The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by .Xr archive_entry_mode 3 or set using @@ -367,7 +374,8 @@ and .Fn archive_entry_acl_to_text_w convert the ACL entries for the given type into a .Pq wide -string of ACL entries separated by newline. If the pointer +string of ACL entries separated by newline. +If the pointer .Fa len_p is not NULL, then the function shall return the length of the string .Pq not including the NULL terminator @@ -415,7 +423,8 @@ are prefixed with .Dq default: . .Pp .Fn archive_entry_acl_types -get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4 +get ACL entry types contained in an archive entry's ACL. +As POSIX.1e and NFSv4 ACL entries cannot be mixed, this function is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. .Sh RETURN VALUES Modified: stable/11/contrib/libarchive/libarchive/archive_entry_misc.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -28,7 +28,7 @@ .Sh NAME .Nm archive_entry_symlink_type , .Nm archive_entry_set_symlink_type -.Nd miscellaneous functions for manipulating properties of archive_entry. +.Nd miscellaneous functions for manipulating properties of archive_entry .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS @@ -42,7 +42,8 @@ The function .Fn archive_entry_symlink_type returns and the function .Fn archive_entry_set_symlink_type -sets the type of the symbolic link stored in an archive entry. These functions +sets the type of the symbolic link stored in an archive entry. +These functions have special meaning on operating systems that support multiple symbolic link types (e.g. Microsoft Windows). .Pp Modified: stable/11/contrib/libarchive/libarchive/archive_entry_paths.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -133,7 +133,7 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp @@ -141,13 +141,13 @@ The sourcepath is a pure filesystem concept and never archive directly. .Pp For that reason, it is only available as multibyte string. -The link path is a convience function for conditionally setting +The link path is a convenience function for conditionally setting hardlink or symlink destination. It doesn't have a corresponding get accessor function. .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_entry_perms.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -126,7 +126,7 @@ The corresponding functions and .Fn archive_entry_set_perm store the given user id, group id and permission in the entry. -The permission is also set as side effect of calling +The permission is also set as a side effect of calling .Fn archive_entry_set_mode . .Pp .Fn archive_entry_strmode @@ -143,12 +143,12 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Ss File Flags File flags are transparently converted between a bitmap @@ -182,7 +182,7 @@ The .Fn archive_entry_copy_fflags_text and .Fn archive_entry_copy_fflags_text_w -functions parse the provided text and sets the internal bitmap values. +functions parse the provided text and set the internal bitmap values. This is a platform-specific operation; names that are not meaningful on the current platform will be ignored. The function returns a pointer to the start of the first name that was not @@ -197,8 +197,8 @@ which stops parsing at the first unrecognized name.) .Xr archive_entry 3 , .Xr archive_entry_acl 3 , .Xr archive_read_disk 3 , -.Xr archive_write_disk 3 -.Xr libarchive 3 , +.Xr archive_write_disk 3 , +.Xr libarchive 3 .Sh BUGS The platform types .Vt uid_t Modified: stable/11/contrib/libarchive/libarchive/archive_entry_stat.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -54,7 +54,7 @@ .Nm archive_entry_rdevmajor , .Nm archive_entry_set_rdevmajor , .Nm archive_entry_rdevminor , -.Nm archive_entry_set_rdevminor , +.Nm archive_entry_set_rdevminor .Nd accessor functions for manipulating archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -267,8 +267,8 @@ platforms. Some archive formats use the combined form, while other formats use the split form. .Sh SEE ALSO +.Xr stat 2 , .Xr archive_entry_acl 3 , .Xr archive_entry_perms 3 , .Xr archive_entry_time 3 , -.Xr libarchive 3 , -.Xr stat 2 +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_entry_time.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -48,7 +48,7 @@ .Nm archive_entry_mtime_nsec , .Nm archive_entry_mtime_is_set , .Nm archive_entry_set_mtime , -.Nm archive_entry_unset_mtime , +.Nm archive_entry_unset_mtime .Nd functions for manipulating times in archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -113,8 +113,8 @@ The current state can be queried using .Fn XXX_is_set . Unset time fields have a second and nanosecond field of 0. .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/11/contrib/libarchive/libarchive/archive_read.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -155,7 +155,7 @@ to close the archive, then call .Fn archive_read_free to release all resources, including all memory allocated by the library. .\" -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library. In this example, the callback functions are simply wrappers around the standard @@ -217,16 +217,16 @@ myclose(struct archive *a, void *client_data) .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_header 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh HISTORY The Modified: stable/11/contrib/libarchive/libarchive/archive_read_add_passphrase.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -59,16 +59,16 @@ or empty, this function will do nothing and will be returned. Otherwise, .Cm ARCHIVE_OK -will be returned. +will be returned. .It Fn archive_read_set_passphrase_callback -Register callback function that will be invoked to get a passphrase -for decrption after trying all passphrases registered by the +Register a callback function that will be invoked to get a passphrase +for decryption after trying all the passphrases registered by the .Fn archive_read_add_passphrase function failed. .El .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , -.Xr archive_read_set_options 3 +.Xr archive_read_set_options 3 , +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_read_data.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -28,7 +28,7 @@ .Dt ARCHIVE_READ_DATA 3 .Os .Sh NAME -.Nm archive_read_data +.Nm archive_read_data , .Nm archive_read_data_block , .Nm archive_read_data_skip , .Nm archive_read_data_into_fd @@ -118,7 +118,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , @@ -127,4 +126,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/11/contrib/libarchive/libarchive/archive_read_disk.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -24,11 +24,12 @@ .\" .\" $FreeBSD$ .\" -.Dd December 30, 2016 +.Dd April 3, 2017 .Dt ARCHIVE_READ_DISK 3 .Os .Sh NAME .Nm archive_read_disk_new , +.Nm archive_read_disk_set_behavior , .Nm archive_read_disk_set_symlink_logical , .Nm archive_read_disk_set_symlink_physical , .Nm archive_read_disk_set_symlink_hybrid , @@ -46,6 +47,8 @@ Streaming Archive Library (libarchive, -larchive) .Ft struct archive * .Fn archive_read_disk_new "void" .Ft int +.Fn archive_read_disk_set_behavior "struct archive *" "int" +.Ft int .Fn archive_read_disk_set_symlink_logical "struct archive *" .Ft int .Fn archive_read_disk_set_symlink_physical "struct archive *" @@ -89,6 +92,52 @@ objects. Allocates and initializes a .Tn struct archive object suitable for reading object information from disk. +.It Fn archive_read_disk_set_behavior +Configures various behavior options when reading entries from disk. +The flags field consists of a bitwise OR of one or more of the +following values: +.Bl -tag -compact -width "indent" +.It Cm ARCHIVE_READDISK_HONOR_NODUMP +Skip files and directories with the nodump file attribute (file flag) set. +By default, the nodump file attribute is ignored. +.It Cm ARCHIVE_READDISK_MAC_COPYFILE +Mac OS X specific. +Read metadata (ACLs and extended attributes) with +.Xr copyfile 3 . +By default, metadata is read using +.Xr copyfile 3 . +.It Cm ARCHIVE_READDISK_NO_ACL +Do not read Access Control Lists. +By default, ACLs are read from disk. +.It Cm ARCHIVE_READDISK_NO_FFLAGS +Do not read file attributes (file flags). +By default, file attributes are read from disk. +See +.Xr chattr 1 +.Pq Linux +or +.Xr chflags 1 +.Pq FreeBSD, Mac OS X +for more information on file attributes. +.It Cm ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS +Do not traverse mount points. +By default, mount points are traversed. +.It Cm ARCHIVE_READDISK_NO_XATTR +Do not read extended file attributes (xattrs). +By default, extended file attributes are read from disk. +See +.Xr xattr 7 +.Pq Linux , +.Xr xattr 2 +.Pq Mac OS X , +or +.Xr getextattr 8 +.Pq FreeBSD +for more information on extended file attributes. +.It Cm ARCHIVE_READDISK_RESTORE_ATIME +Restore access time of traversed files. +By default, access time of traversed files is not restored. +.El .It Xo .Fn archive_read_disk_set_symlink_logical , .Fn archive_read_disk_set_symlink_physical , @@ -168,7 +217,7 @@ of some other operation. (For example, directory traversal libraries often provide this information.) .Pp Where necessary, user and group ids are converted to user and group names -using the currently registered lookup functions above. +using the currently-registered lookup functions above. This affects the file ownership fields and ACL values in the .Tn struct archive_entry object. @@ -178,7 +227,7 @@ More information about the object and the overall design of the library can be found in the .Xr libarchive 3 overview. -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library by showing how to use it to copy an item on disk into an archive. .Bd -literal -offset indent @@ -243,11 +292,11 @@ and functions. .\" .Sh SEE ALSO +.Xr tar 1 , .Xr archive_read 3 , .Xr archive_util 3 , .Xr archive_write 3 , .Xr archive_write_disk 3 , -.Xr tar 1 , .Xr libarchive 3 .Sh HISTORY The Modified: stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Oct 9 22:19:06 2019 (r353376) @@ -616,9 +616,21 @@ setup_xattrs(struct archive_read_disk *a, } for (p = list; (p - list) < list_size; p += strlen(p) + 1) { - if (strncmp(p, "system.", 7) == 0 || - strncmp(p, "xfsroot.", 8) == 0) +#if ARCHIVE_XATTR_LINUX + /* Linux: skip POSIX.1e ACL extended attributes */ + if (strncmp(p, "system.", 7) == 0 && + (strcmp(p + 7, "posix_acl_access") == 0 || + strcmp(p + 7, "posix_acl_default") == 0)) continue; + if (strncmp(p, "trusted.SGI_", 12) == 0 && + (strcmp(p + 12, "ACL_DEFAULT") == 0 || + strcmp(p + 12, "ACL_FILE") == 0)) + continue; + + /* Linux: xfsroot namespace is obsolete and unsupported */ + if (strncmp(p, "xfsroot.", 8) == 0) + continue; +#endif setup_xattr(a, entry, p, *fd, path); } Modified: stable/11/contrib/libarchive/libarchive/archive_read_extract.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -126,7 +126,6 @@ and functions. .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , @@ -134,4 +133,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/11/contrib/libarchive/libarchive/archive_read_filter.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -147,8 +147,8 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_format 3 , -.Xr archive_read_format 3 +.Xr archive_read_format 3 , +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_read_format.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -102,7 +102,7 @@ For example, .Fn archive_read_support_format_tar enables support for a variety of standard tar formats, old-style tar, ustar, pax interchange format, and many common variants. -.It Fn archive_read_support_format_all +.It Fn archive_read_support_format_all Enables support for all available formats except the .Dq raw format (see below). @@ -125,7 +125,7 @@ it is not possible to accurately determine a format fo an empty file based purely on contents. So empty files are treated by libarchive as a distinct format. -.It Fn archive_read_support_format_raw +.It Fn archive_read_support_format_raw The .Dq raw format handler allows libarchive to be used to read arbitrary data. @@ -153,11 +153,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh BUGS Many traditional archiver programs treat Modified: stable/11/contrib/libarchive/libarchive/archive_read_free.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -83,11 +83,11 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , -.Xr archive_util 3 +.Xr archive_util 3 , +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_read_header.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -79,7 +79,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , @@ -88,4 +87,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/11/contrib/libarchive/libarchive/archive_read_new.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -50,10 +50,10 @@ object can be found in the overview manual page for .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/11/contrib/libarchive/libarchive/archive_read_open.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -205,7 +205,7 @@ On failure, the callback should invoke .Fn archive_set_error to register an error code and message and return -.Cm ARCHIVE_FATAL. +.Cm ARCHIVE_FATAL . .\" .Sh EXAMPLE .\" .Sh RETURN VALUES @@ -223,11 +223,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/11/contrib/libarchive/libarchive/archive_read_set_options.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 22:19:06 2019 (r353376) @@ -212,7 +212,8 @@ Use to disable. .It Cm read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives -have been concatenated together. Without this option, only the contents of +have been concatenated together. +Without this option, only the contents of the first concatenated archive would be read. .El .El @@ -226,6 +227,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , +.Xr archive_read 3 , .Xr archive_write_set_options 3 , -.Xr archive_read 3 +.Xr libarchive 3 Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 22:19:06 2019 (r353376) @@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a) */ static ssize_t peek_at_header(struct archive_read_filter *filter, int *pbits, - struct private_data *state) +#ifdef HAVE_ZLIB_H + struct private_data *state +#else + void *state +#endif + ) { const unsigned char *p; ssize_t avail, len; int bits = 0; int header_flags; +#ifndef HAVE_ZLIB_H + (void)state; /* UNUSED */ +#endif /* Start by looking at the first ten bytes of the header, which * is all fixed layout. */ @@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int bits += 3; header_flags = p[3]; /* Bytes 4-7 are mod time in little endian. */ +#ifdef HAVE_ZLIB_H if (state) state->mtime = archive_le32dec(p + 4); +#endif /* Byte 8 is deflate flags. */ /* XXXX TODO: return deflate flags back to consume_header for use in initializing the decompressor. */ @@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int /* Null-terminated optional filename. */ if (header_flags & 8) { +#ifdef HAVE_ZLIB_H ssize_t file_start = len; +#endif do { ++len; if (avail < len) @@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int return (0); } while (p[len - 1] != 0); +#ifdef HAVE_ZLIB_H if (state) { /* Reset the name in case of repeat header reads. */ free(state->name); state->name = strdup((const char *)&p[file_start]); } +#endif } /* Null-terminated optional comment. */ @@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *sel return (0); } -static int -gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) -{ - struct private_data *state; - - state = (struct private_data *)self->data; - - /* A mtime of 0 is considered invalid/missing. */ - if (state->mtime != 0) - archive_entry_set_mtime(entry, state->mtime, 0); - - /* If the name is available, extract it. */ - if (state->name) - archive_entry_set_pathname(entry, state->name); - - return (ARCHIVE_OK); -} - #ifndef HAVE_ZLIB_H /* @@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self) #else +static int +gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) +{ + struct private_data *state; + + state = (struct private_data *)self->data; + + /* A mtime of 0 is considered invalid/missing. */ + if (state->mtime != 0) + archive_entry_set_mtime(entry, state->mtime, 0); + + /* If the name is available, extract it. */ + if (state->name) + archive_entry_set_pathname(entry, state->name); + + return (ARCHIVE_OK); +} + /* * Initialize the filter object. */ @@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self) self->read = gzip_filter_read; self->skip = NULL; /* not supported */ self->close = gzip_filter_close; +#ifdef HAVE_ZLIB_H self->read_header = gzip_read_header; +#endif state->in_stream = 0; /* We're not actually within a stream yet. */ Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 22:19:06 2019 (r353376) @@ -460,7 +460,7 @@ lz4_filter_read_descriptor(struct archive_read_filter __archive_read_filter_consume(self->upstream, descriptor_bytes); - /* Make sure we have an enough buffer for uncompressed data. */ + /* Make sure we have a large enough buffer for uncompressed data. */ if (lz4_allocate_out_block(self) != ARCHIVE_OK) return (ARCHIVE_FATAL); if (state->flags.stream_checksum) @@ -520,7 +520,7 @@ lz4_filter_read_data_block(struct archive_read_filter if (read_buf == NULL) goto truncated_error; - /* Optional process, checking a block sum. */ + /* Optional processing, checking a block sum. */ if (checksum_size) { unsigned int chsum = __archive_xxhash.XXH32( read_buf + 4, (int)compressed_size, 0); @@ -640,7 +640,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (ret == 0 && *p == NULL) state->stage = SELECT_STREAM; - /* Optional process, checking a stream sum. */ + /* Optional processing, checking a stream sum. */ if (state->flags.stream_checksum) { if (state->stage == SELECT_STREAM) { unsigned int checksum; @@ -660,7 +660,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (checksum != checksum_stream) { archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, - "lz4 stream cheksum error"); + "lz4 stream checksum error"); return (ARCHIVE_FATAL); } } else if (ret > 0) @@ -674,7 +674,7 @@ static ssize_t lz4_filter_read_legacy_stream(struct archive_read_filter *self, const void **p) { struct private_data *state = (struct private_data *)self->data; - int compressed; + uint32_t compressed; const char *read_buf; ssize_t ret; Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 22:19:06 2019 (r353376) @@ -487,7 +487,7 @@ process_extra(struct archive_read *a, struct archive_e /* Some ZIP files may have trailing 0 bytes. Let's check they * are all 0 and ignore them instead of returning an error. * - * This is not techincally correct, but some ZIP files look + * This is not technically correct, but some ZIP files look * like this and other tools support those files - so let's * also support them. */ @@ -1053,7 +1053,7 @@ zip_read_local_file_header(struct archive_read *a, str /* Make sure that entries with a trailing '/' are marked as directories * even if the External File Attributes contains bogus values. If this - * is not a directory and there is no type, assume regularfile. */ + * is not a directory and there is no type, assume a regular file. */ if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) { int has_slash; @@ -1104,7 +1104,7 @@ zip_read_local_file_header(struct archive_read *a, str } if (zip_entry->flags & LA_FROM_CENTRAL_DIRECTORY) { - /* If this came from the central dir, it's size info + /* If this came from the central dir, its size info * is definitive, so ignore the length-at-end flag. */ zip_entry->zip_flags &= ~ZIP_LENGTH_AT_END; /* If local header is missing a value, use the one from Modified: stable/11/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 22:19:06 2019 (r353376) @@ -458,7 +458,7 @@ archive_wstring_append_from_mbs_in_codepage(struct arc if (from_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ wchar_t *ws; const unsigned char *mp; @@ -680,7 +680,7 @@ archive_string_append_from_wcs_in_codepage(struct arch if (to_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ const wchar_t *wp = ws; char *p; @@ -889,7 +889,7 @@ add_converter(struct archive_string_conv *sc, int (*co struct archive_string_conv *)) { if (sc == NULL || sc->nconverter >= 2) - __archive_errx(1, "Programing error"); + __archive_errx(1, "Programming error"); sc->converter[sc->nconverter++] = converter; } Modified: stable/11/contrib/libarchive/libarchive/archive_util.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 22:18:01 2019 (r353375) +++ stable/11/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 22:19:06 2019 (r353376) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Oct 9 22:19:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 12F77131856; Wed, 9 Oct 2019 22:19:55 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pTDC0H1rz46bM; Wed, 9 Oct 2019 22:19:55 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C63771F3BC; Wed, 9 Oct 2019 22:19:54 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99MJsah084303; Wed, 9 Oct 2019 22:19:54 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99MJmd4084271; Wed, 9 Oct 2019 22:19:48 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201910092219.x99MJmd4084271@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 9 Oct 2019 22:19:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353377 - in stable/10/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Group: stable-10 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/10/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Commit-Revision: 353377 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 22:19:55 -0000 Author: mm Date: Wed Oct 9 22:19:48 2019 New Revision: 353377 URL: https://svnweb.freebsd.org/changeset/base/353377 Log: MFC r316456,352732: Sync libarchive with vendor. MFC r316456: Vendor changes (FreeBSD-related): Report which extended attributes could not be restored Update archive_read_disk.3 and archive_write_disk.3 manual pages Plug memory leaks in xattr tests. MFC r352732: Relevant vendor changes: Issue #1237: Fix integer overflow in archive_read_support_filter_lz4.c PR #1249: Correct some typographical and grammatical errors. PR #1250: Minor corrections to the formatting of manual pages Modified: stable/10/contrib/libarchive/cat/bsdcat.1 stable/10/contrib/libarchive/cpio/bsdcpio.1 stable/10/contrib/libarchive/libarchive/archive.h stable/10/contrib/libarchive/libarchive/archive_entry.3 stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 stable/10/contrib/libarchive/libarchive/archive_entry_misc.3 stable/10/contrib/libarchive/libarchive/archive_entry_paths.3 stable/10/contrib/libarchive/libarchive/archive_entry_perms.3 stable/10/contrib/libarchive/libarchive/archive_entry_stat.3 stable/10/contrib/libarchive/libarchive/archive_entry_time.3 stable/10/contrib/libarchive/libarchive/archive_read.3 stable/10/contrib/libarchive/libarchive/archive_read_add_passphrase.3 stable/10/contrib/libarchive/libarchive/archive_read_data.3 stable/10/contrib/libarchive/libarchive/archive_read_disk.3 stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/10/contrib/libarchive/libarchive/archive_read_extract.3 stable/10/contrib/libarchive/libarchive/archive_read_filter.3 stable/10/contrib/libarchive/libarchive/archive_read_format.3 stable/10/contrib/libarchive/libarchive/archive_read_free.3 stable/10/contrib/libarchive/libarchive/archive_read_header.3 stable/10/contrib/libarchive/libarchive/archive_read_new.3 stable/10/contrib/libarchive/libarchive/archive_read_open.3 stable/10/contrib/libarchive/libarchive/archive_read_set_options.3 stable/10/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c stable/10/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/10/contrib/libarchive/libarchive/archive_string.c stable/10/contrib/libarchive/libarchive/archive_util.3 stable/10/contrib/libarchive/libarchive/archive_write.3 stable/10/contrib/libarchive/libarchive/archive_write_blocksize.3 stable/10/contrib/libarchive/libarchive/archive_write_data.3 stable/10/contrib/libarchive/libarchive/archive_write_disk.3 stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/10/contrib/libarchive/libarchive/archive_write_filter.3 stable/10/contrib/libarchive/libarchive/archive_write_finish_entry.3 stable/10/contrib/libarchive/libarchive/archive_write_format.3 stable/10/contrib/libarchive/libarchive/archive_write_free.3 stable/10/contrib/libarchive/libarchive/archive_write_header.3 stable/10/contrib/libarchive/libarchive/archive_write_new.3 stable/10/contrib/libarchive/libarchive/archive_write_open.3 stable/10/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_mtree.c stable/10/contrib/libarchive/libarchive/archive_write_set_options.3 stable/10/contrib/libarchive/libarchive/archive_write_set_passphrase.3 stable/10/contrib/libarchive/libarchive/libarchive_changes.3 stable/10/contrib/libarchive/libarchive/libarchive_internals.3 stable/10/contrib/libarchive/libarchive/tar.5 stable/10/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c stable/10/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/10/contrib/libarchive/libarchive/test/test_read_format_raw.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c stable/10/contrib/libarchive/libarchive/test/test_write_filter_zstd.c stable/10/contrib/libarchive/libarchive/test/test_xattr_platform.c stable/10/contrib/libarchive/tar/bsdtar.1 stable/10/contrib/libarchive/tar/test/test_option_acls.c stable/10/contrib/libarchive/tar/test/test_option_n.c stable/10/contrib/libarchive/tar/test/test_option_xattrs.c stable/10/contrib/libarchive/test_utils/test_common.h stable/10/contrib/libarchive/test_utils/test_main.c Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/libarchive/cat/bsdcat.1 ============================================================================== --- stable/10/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 22:19:48 2019 (r353377) @@ -34,16 +34,15 @@ .Nm .Op options .Op files -.Pp .Sh DESCRIPTION .Nm expands files to standard output. .Sh OPTIONS .Nm typically takes a filename as an argument or reads standard input when used in a -pipe. In both cases decompressed data it written to standard output. +pipe. +In both cases decompressed data it written to standard output. .Sh EXAMPLES -.Pp To decompress a file: .Pp .Dl bsdcat example.txt.gz > example.txt @@ -55,8 +54,8 @@ To decompress standard input in a pipe: Both examples achieve the same results - a decompressed file by redirecting output. .Sh SEE ALSO -.Xr uncompress 1 , -.Xr zcat 1 , .Xr bzcat 1 , +.Xr uncompress 1 , .Xr xzcat 1 , -.Xr libarchive-formats 5 , +.Xr zcat 1 , +.Xr libarchive-formats 5 Modified: stable/10/contrib/libarchive/cpio/bsdcpio.1 ============================================================================== --- stable/10/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 22:19:48 2019 (r353377) @@ -75,7 +75,6 @@ Pass-through. Read a list of filenames from standard input and copy the files to the specified directory. .El -.Pp .Sh OPTIONS Unless specifically stated otherwise, options are applicable in all operating modes. @@ -385,10 +384,10 @@ For best compatibility, scripts should limit themselve standard syntax. .Sh SEE ALSO .Xr bzip2 1 , -.Xr tar 1 , .Xr gzip 1 , .Xr mt 1 , .Xr pax 1 , +.Xr tar 1 , .Xr libarchive 3 , .Xr cpio 5 , .Xr libarchive-formats 5 , Modified: stable/10/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive.h Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive.h Wed Oct 9 22:19:48 2019 (r353377) @@ -52,7 +52,7 @@ */ #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 # include -#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) +#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) && !defined(__CLANG_INTTYPES_H) # include #endif Modified: stable/10/contrib/libarchive/libarchive/archive_entry.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -32,7 +32,7 @@ .Nm archive_entry_clear , .Nm archive_entry_clone , .Nm archive_entry_free , -.Nm archive_entry_new , +.Nm archive_entry_new .Nd functions for managing archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -126,7 +126,6 @@ using the current locale. Similarly, if you store a wide string and then store a narrow string for the same data, the previously-set wide string will be discarded in favor of the new data. -.Pp .\" .Sh EXAMPLE .\" .Sh RETURN VALUES .\" .Sh ERRORS @@ -134,8 +133,8 @@ be discarded in favor of the new data. .Xr archive_entry_acl 3 , .Xr archive_entry_paths 3 , .Xr archive_entry_perms 3 , -.Xr archive_entry_time 3 -.Xr libarchive 3 , +.Xr archive_entry_time 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -118,15 +118,16 @@ Streaming Archive Library (libarchive, -larchive) .Sh DESCRIPTION The .Dq Access Control Lists (ACLs) -extend the standard Unix perssion model. +extend the standard Unix permission model. The ACL interface of .Nm libarchive -supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by +supports both POSIX.1e and NFSv4 style ACLs. +Use of ACLs is restricted by various levels of ACL support in operating systems, file systems and archive formats. .Ss POSIX.1e Access Control Lists A POSIX.1e ACL consists of a number of independent entries. -Each entry specifies the permission set as bitmask of basic permissions. +Each entry specifies the permission set as a bitmask of basic permissions. Valid permissions in the .Fa permset are: @@ -147,13 +148,13 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_MASK The maximum permissions to be obtained via group permissions. .It Dv ARCHIVE_ENTRY_ACL_OTHER -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp The principals @@ -164,12 +165,12 @@ and are equivalent to user, group and other in the classic Unix permission model and specify non-extended ACL entries. .Pp -All files with have an access ACL +All files have an access ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS . This specifies the permissions required for access to the file itself. Directories have an additional ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT , -which controls the initial access ACL for newly created directory entries. +which controls the initial access ACL for newly-created directory entries. .Ss NFSv4 Access Control Lists A NFSv4 ACL consists of multiple individual entries called Access Control Entries (ACEs). @@ -197,11 +198,11 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_EVERYONE -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp Entries with the @@ -216,9 +217,10 @@ integer. .Pp NFSv4 ACE permissions and flags are stored in the same .Fa permset -bitfield. Some permissions share the same constant and permission character but -have different effect on directories than on files. The following ACE -permissions are supported: +bitfield. +Some permissions share the same constant and permission character +but have different effect on directories than on files. +The following ACE permissions are supported: .Bl -tag -offset indent -compact -width ARCHIV .It Dv ARCHIVE_ENTRY_ACL_READ_DATA ( Sy r ) Read data (file). @@ -265,7 +267,8 @@ Inherit parent directory ACE to subdirectories. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY ( Sy i ) Only inherit, do not apply the permission on the directory itself. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT ( Sy n ) -Do not propagate inherit flags. Only first-level entries inherit ACLs. +Do not propagate inherit flags. +Only first-level entries inherit ACLs. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ( Sy S ) Trigger alarm or audit on successful access. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS ( Sy F ) @@ -279,8 +282,8 @@ and .Fn archive_entry_acl_add_entry_w add a single ACL entry. For the access ACL and non-extended principals, the classic Unix permissions -are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL -entries. +are updated. +An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries. .Pp .Fn archive_entry_acl_clear removes all ACL entries and resets the enumeration pointer. @@ -300,7 +303,8 @@ for POSIX.1e ACLs and .It Dv ARCHIVE_ENTRY_ACL_TYPE_AUDIT .It Dv ARCHIVE_ENTRY_ACL_TYPE_ALARM .El -for NFSv4 ACLs. For POSIX.1e ACLs if +for NFSv4 ACLs. +For POSIX.1e ACLs if .Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS is included and at least one extended ACL entry is found, the three non-extended ACLs are added. @@ -312,7 +316,8 @@ add new .Pq or merge with existing ACL entries from .Pq wide -text. The argument +text. +The argument .Fa type may take one of the following values: .Bl -tag -offset indent -compact -width "ARCHIVE_ENTRY_ACL_TYPE_DEFAULT" @@ -322,11 +327,13 @@ may take one of the following values: .El Supports all formats that can be created with .Fn archive_entry_acl_to_text -or respective +or respectively .Fn archive_entry_acl_to_text_w . -Existing ACL entries are preserved. To get a clean new ACL from text +Existing ACL entries are preserved. +To get a clean new ACL from text .Fn archive_entry_acl_clear -must be called first. Entries prefixed with +must be called first. +Entries prefixed with .Dq default: are treated as .Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT @@ -354,7 +361,7 @@ prepare reading the list of ACL entries with .Fn archive_entry_acl_next or .Fn archive_entry_acl_next_w . -The function returns either 0, if no non-extended ACLs are found. +The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by .Xr archive_entry_mode 3 or set using @@ -367,7 +374,8 @@ and .Fn archive_entry_acl_to_text_w convert the ACL entries for the given type into a .Pq wide -string of ACL entries separated by newline. If the pointer +string of ACL entries separated by newline. +If the pointer .Fa len_p is not NULL, then the function shall return the length of the string .Pq not including the NULL terminator @@ -415,7 +423,8 @@ are prefixed with .Dq default: . .Pp .Fn archive_entry_acl_types -get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4 +get ACL entry types contained in an archive entry's ACL. +As POSIX.1e and NFSv4 ACL entries cannot be mixed, this function is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. .Sh RETURN VALUES Modified: stable/10/contrib/libarchive/libarchive/archive_entry_misc.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -28,7 +28,7 @@ .Sh NAME .Nm archive_entry_symlink_type , .Nm archive_entry_set_symlink_type -.Nd miscellaneous functions for manipulating properties of archive_entry. +.Nd miscellaneous functions for manipulating properties of archive_entry .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS @@ -42,7 +42,8 @@ The function .Fn archive_entry_symlink_type returns and the function .Fn archive_entry_set_symlink_type -sets the type of the symbolic link stored in an archive entry. These functions +sets the type of the symbolic link stored in an archive entry. +These functions have special meaning on operating systems that support multiple symbolic link types (e.g. Microsoft Windows). .Pp Modified: stable/10/contrib/libarchive/libarchive/archive_entry_paths.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -133,7 +133,7 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp @@ -141,13 +141,13 @@ The sourcepath is a pure filesystem concept and never archive directly. .Pp For that reason, it is only available as multibyte string. -The link path is a convience function for conditionally setting +The link path is a convenience function for conditionally setting hardlink or symlink destination. It doesn't have a corresponding get accessor function. .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_entry_perms.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -126,7 +126,7 @@ The corresponding functions and .Fn archive_entry_set_perm store the given user id, group id and permission in the entry. -The permission is also set as side effect of calling +The permission is also set as a side effect of calling .Fn archive_entry_set_mode . .Pp .Fn archive_entry_strmode @@ -143,12 +143,12 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Ss File Flags File flags are transparently converted between a bitmap @@ -182,7 +182,7 @@ The .Fn archive_entry_copy_fflags_text and .Fn archive_entry_copy_fflags_text_w -functions parse the provided text and sets the internal bitmap values. +functions parse the provided text and set the internal bitmap values. This is a platform-specific operation; names that are not meaningful on the current platform will be ignored. The function returns a pointer to the start of the first name that was not @@ -197,8 +197,8 @@ which stops parsing at the first unrecognized name.) .Xr archive_entry 3 , .Xr archive_entry_acl 3 , .Xr archive_read_disk 3 , -.Xr archive_write_disk 3 -.Xr libarchive 3 , +.Xr archive_write_disk 3 , +.Xr libarchive 3 .Sh BUGS The platform types .Vt uid_t Modified: stable/10/contrib/libarchive/libarchive/archive_entry_stat.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -54,7 +54,7 @@ .Nm archive_entry_rdevmajor , .Nm archive_entry_set_rdevmajor , .Nm archive_entry_rdevminor , -.Nm archive_entry_set_rdevminor , +.Nm archive_entry_set_rdevminor .Nd accessor functions for manipulating archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -267,8 +267,8 @@ platforms. Some archive formats use the combined form, while other formats use the split form. .Sh SEE ALSO +.Xr stat 2 , .Xr archive_entry_acl 3 , .Xr archive_entry_perms 3 , .Xr archive_entry_time 3 , -.Xr libarchive 3 , -.Xr stat 2 +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_entry_time.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -48,7 +48,7 @@ .Nm archive_entry_mtime_nsec , .Nm archive_entry_mtime_is_set , .Nm archive_entry_set_mtime , -.Nm archive_entry_unset_mtime , +.Nm archive_entry_unset_mtime .Nd functions for manipulating times in archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -113,8 +113,8 @@ The current state can be queried using .Fn XXX_is_set . Unset time fields have a second and nanosecond field of 0. .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/10/contrib/libarchive/libarchive/archive_read.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -155,7 +155,7 @@ to close the archive, then call .Fn archive_read_free to release all resources, including all memory allocated by the library. .\" -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library. In this example, the callback functions are simply wrappers around the standard @@ -217,16 +217,16 @@ myclose(struct archive *a, void *client_data) .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_header 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh HISTORY The Modified: stable/10/contrib/libarchive/libarchive/archive_read_add_passphrase.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -59,16 +59,16 @@ or empty, this function will do nothing and will be returned. Otherwise, .Cm ARCHIVE_OK -will be returned. +will be returned. .It Fn archive_read_set_passphrase_callback -Register callback function that will be invoked to get a passphrase -for decrption after trying all passphrases registered by the +Register a callback function that will be invoked to get a passphrase +for decryption after trying all the passphrases registered by the .Fn archive_read_add_passphrase function failed. .El .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , -.Xr archive_read_set_options 3 +.Xr archive_read_set_options 3 , +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_read_data.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -28,7 +28,7 @@ .Dt ARCHIVE_READ_DATA 3 .Os .Sh NAME -.Nm archive_read_data +.Nm archive_read_data , .Nm archive_read_data_block , .Nm archive_read_data_skip , .Nm archive_read_data_into_fd @@ -118,7 +118,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , @@ -127,4 +126,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/10/contrib/libarchive/libarchive/archive_read_disk.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -24,11 +24,12 @@ .\" .\" $FreeBSD$ .\" -.Dd December 30, 2016 +.Dd April 3, 2017 .Dt ARCHIVE_READ_DISK 3 .Os .Sh NAME .Nm archive_read_disk_new , +.Nm archive_read_disk_set_behavior , .Nm archive_read_disk_set_symlink_logical , .Nm archive_read_disk_set_symlink_physical , .Nm archive_read_disk_set_symlink_hybrid , @@ -46,6 +47,8 @@ Streaming Archive Library (libarchive, -larchive) .Ft struct archive * .Fn archive_read_disk_new "void" .Ft int +.Fn archive_read_disk_set_behavior "struct archive *" "int" +.Ft int .Fn archive_read_disk_set_symlink_logical "struct archive *" .Ft int .Fn archive_read_disk_set_symlink_physical "struct archive *" @@ -89,6 +92,52 @@ objects. Allocates and initializes a .Tn struct archive object suitable for reading object information from disk. +.It Fn archive_read_disk_set_behavior +Configures various behavior options when reading entries from disk. +The flags field consists of a bitwise OR of one or more of the +following values: +.Bl -tag -compact -width "indent" +.It Cm ARCHIVE_READDISK_HONOR_NODUMP +Skip files and directories with the nodump file attribute (file flag) set. +By default, the nodump file attribute is ignored. +.It Cm ARCHIVE_READDISK_MAC_COPYFILE +Mac OS X specific. +Read metadata (ACLs and extended attributes) with +.Xr copyfile 3 . +By default, metadata is read using +.Xr copyfile 3 . +.It Cm ARCHIVE_READDISK_NO_ACL +Do not read Access Control Lists. +By default, ACLs are read from disk. +.It Cm ARCHIVE_READDISK_NO_FFLAGS +Do not read file attributes (file flags). +By default, file attributes are read from disk. +See +.Xr chattr 1 +.Pq Linux +or +.Xr chflags 1 +.Pq FreeBSD, Mac OS X +for more information on file attributes. +.It Cm ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS +Do not traverse mount points. +By default, mount points are traversed. +.It Cm ARCHIVE_READDISK_NO_XATTR +Do not read extended file attributes (xattrs). +By default, extended file attributes are read from disk. +See +.Xr xattr 7 +.Pq Linux , +.Xr xattr 2 +.Pq Mac OS X , +or +.Xr getextattr 8 +.Pq FreeBSD +for more information on extended file attributes. +.It Cm ARCHIVE_READDISK_RESTORE_ATIME +Restore access time of traversed files. +By default, access time of traversed files is not restored. +.El .It Xo .Fn archive_read_disk_set_symlink_logical , .Fn archive_read_disk_set_symlink_physical , @@ -168,7 +217,7 @@ of some other operation. (For example, directory traversal libraries often provide this information.) .Pp Where necessary, user and group ids are converted to user and group names -using the currently registered lookup functions above. +using the currently-registered lookup functions above. This affects the file ownership fields and ACL values in the .Tn struct archive_entry object. @@ -178,7 +227,7 @@ More information about the object and the overall design of the library can be found in the .Xr libarchive 3 overview. -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library by showing how to use it to copy an item on disk into an archive. .Bd -literal -offset indent @@ -243,11 +292,11 @@ and functions. .\" .Sh SEE ALSO +.Xr tar 1 , .Xr archive_read 3 , .Xr archive_util 3 , .Xr archive_write 3 , .Xr archive_write_disk 3 , -.Xr tar 1 , .Xr libarchive 3 .Sh HISTORY The Modified: stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Oct 9 22:19:48 2019 (r353377) @@ -616,9 +616,21 @@ setup_xattrs(struct archive_read_disk *a, } for (p = list; (p - list) < list_size; p += strlen(p) + 1) { - if (strncmp(p, "system.", 7) == 0 || - strncmp(p, "xfsroot.", 8) == 0) +#if ARCHIVE_XATTR_LINUX + /* Linux: skip POSIX.1e ACL extended attributes */ + if (strncmp(p, "system.", 7) == 0 && + (strcmp(p + 7, "posix_acl_access") == 0 || + strcmp(p + 7, "posix_acl_default") == 0)) continue; + if (strncmp(p, "trusted.SGI_", 12) == 0 && + (strcmp(p + 12, "ACL_DEFAULT") == 0 || + strcmp(p + 12, "ACL_FILE") == 0)) + continue; + + /* Linux: xfsroot namespace is obsolete and unsupported */ + if (strncmp(p, "xfsroot.", 8) == 0) + continue; +#endif setup_xattr(a, entry, p, *fd, path); } Modified: stable/10/contrib/libarchive/libarchive/archive_read_extract.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -126,7 +126,6 @@ and functions. .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , @@ -134,4 +133,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/10/contrib/libarchive/libarchive/archive_read_filter.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -147,8 +147,8 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_format 3 , -.Xr archive_read_format 3 +.Xr archive_read_format 3 , +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_read_format.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -102,7 +102,7 @@ For example, .Fn archive_read_support_format_tar enables support for a variety of standard tar formats, old-style tar, ustar, pax interchange format, and many common variants. -.It Fn archive_read_support_format_all +.It Fn archive_read_support_format_all Enables support for all available formats except the .Dq raw format (see below). @@ -125,7 +125,7 @@ it is not possible to accurately determine a format fo an empty file based purely on contents. So empty files are treated by libarchive as a distinct format. -.It Fn archive_read_support_format_raw +.It Fn archive_read_support_format_raw The .Dq raw format handler allows libarchive to be used to read arbitrary data. @@ -153,11 +153,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh BUGS Many traditional archiver programs treat Modified: stable/10/contrib/libarchive/libarchive/archive_read_free.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -83,11 +83,11 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , -.Xr archive_util 3 +.Xr archive_util 3 , +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_read_header.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -79,7 +79,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , @@ -88,4 +87,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/10/contrib/libarchive/libarchive/archive_read_new.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -50,10 +50,10 @@ object can be found in the overview manual page for .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/10/contrib/libarchive/libarchive/archive_read_open.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -205,7 +205,7 @@ On failure, the callback should invoke .Fn archive_set_error to register an error code and message and return -.Cm ARCHIVE_FATAL. +.Cm ARCHIVE_FATAL . .\" .Sh EXAMPLE .\" .Sh RETURN VALUES @@ -223,11 +223,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/10/contrib/libarchive/libarchive/archive_read_set_options.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 22:19:48 2019 (r353377) @@ -212,7 +212,8 @@ Use to disable. .It Cm read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives -have been concatenated together. Without this option, only the contents of +have been concatenated together. +Without this option, only the contents of the first concatenated archive would be read. .El .El @@ -226,6 +227,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , +.Xr archive_read 3 , .Xr archive_write_set_options 3 , -.Xr archive_read 3 +.Xr libarchive 3 Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 22:19:48 2019 (r353377) @@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a) */ static ssize_t peek_at_header(struct archive_read_filter *filter, int *pbits, - struct private_data *state) +#ifdef HAVE_ZLIB_H + struct private_data *state +#else + void *state +#endif + ) { const unsigned char *p; ssize_t avail, len; int bits = 0; int header_flags; +#ifndef HAVE_ZLIB_H + (void)state; /* UNUSED */ +#endif /* Start by looking at the first ten bytes of the header, which * is all fixed layout. */ @@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int bits += 3; header_flags = p[3]; /* Bytes 4-7 are mod time in little endian. */ +#ifdef HAVE_ZLIB_H if (state) state->mtime = archive_le32dec(p + 4); +#endif /* Byte 8 is deflate flags. */ /* XXXX TODO: return deflate flags back to consume_header for use in initializing the decompressor. */ @@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int /* Null-terminated optional filename. */ if (header_flags & 8) { +#ifdef HAVE_ZLIB_H ssize_t file_start = len; +#endif do { ++len; if (avail < len) @@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int return (0); } while (p[len - 1] != 0); +#ifdef HAVE_ZLIB_H if (state) { /* Reset the name in case of repeat header reads. */ free(state->name); state->name = strdup((const char *)&p[file_start]); } +#endif } /* Null-terminated optional comment. */ @@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *sel return (0); } -static int -gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) -{ - struct private_data *state; - - state = (struct private_data *)self->data; - - /* A mtime of 0 is considered invalid/missing. */ - if (state->mtime != 0) - archive_entry_set_mtime(entry, state->mtime, 0); - - /* If the name is available, extract it. */ - if (state->name) - archive_entry_set_pathname(entry, state->name); - - return (ARCHIVE_OK); -} - #ifndef HAVE_ZLIB_H /* @@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self) #else +static int +gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) +{ + struct private_data *state; + + state = (struct private_data *)self->data; + + /* A mtime of 0 is considered invalid/missing. */ + if (state->mtime != 0) + archive_entry_set_mtime(entry, state->mtime, 0); + + /* If the name is available, extract it. */ + if (state->name) + archive_entry_set_pathname(entry, state->name); + + return (ARCHIVE_OK); +} + /* * Initialize the filter object. */ @@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self) self->read = gzip_filter_read; self->skip = NULL; /* not supported */ self->close = gzip_filter_close; +#ifdef HAVE_ZLIB_H self->read_header = gzip_read_header; +#endif state->in_stream = 0; /* We're not actually within a stream yet. */ Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 22:19:48 2019 (r353377) @@ -460,7 +460,7 @@ lz4_filter_read_descriptor(struct archive_read_filter __archive_read_filter_consume(self->upstream, descriptor_bytes); - /* Make sure we have an enough buffer for uncompressed data. */ + /* Make sure we have a large enough buffer for uncompressed data. */ if (lz4_allocate_out_block(self) != ARCHIVE_OK) return (ARCHIVE_FATAL); if (state->flags.stream_checksum) @@ -520,7 +520,7 @@ lz4_filter_read_data_block(struct archive_read_filter if (read_buf == NULL) goto truncated_error; - /* Optional process, checking a block sum. */ + /* Optional processing, checking a block sum. */ if (checksum_size) { unsigned int chsum = __archive_xxhash.XXH32( read_buf + 4, (int)compressed_size, 0); @@ -640,7 +640,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (ret == 0 && *p == NULL) state->stage = SELECT_STREAM; - /* Optional process, checking a stream sum. */ + /* Optional processing, checking a stream sum. */ if (state->flags.stream_checksum) { if (state->stage == SELECT_STREAM) { unsigned int checksum; @@ -660,7 +660,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (checksum != checksum_stream) { archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, - "lz4 stream cheksum error"); + "lz4 stream checksum error"); return (ARCHIVE_FATAL); } } else if (ret > 0) @@ -674,7 +674,7 @@ static ssize_t lz4_filter_read_legacy_stream(struct archive_read_filter *self, const void **p) { struct private_data *state = (struct private_data *)self->data; - int compressed; + uint32_t compressed; const char *read_buf; ssize_t ret; Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 22:19:48 2019 (r353377) @@ -487,7 +487,7 @@ process_extra(struct archive_read *a, struct archive_e /* Some ZIP files may have trailing 0 bytes. Let's check they * are all 0 and ignore them instead of returning an error. * - * This is not techincally correct, but some ZIP files look + * This is not technically correct, but some ZIP files look * like this and other tools support those files - so let's * also support them. */ @@ -1053,7 +1053,7 @@ zip_read_local_file_header(struct archive_read *a, str /* Make sure that entries with a trailing '/' are marked as directories * even if the External File Attributes contains bogus values. If this - * is not a directory and there is no type, assume regularfile. */ + * is not a directory and there is no type, assume a regular file. */ if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) { int has_slash; @@ -1104,7 +1104,7 @@ zip_read_local_file_header(struct archive_read *a, str } if (zip_entry->flags & LA_FROM_CENTRAL_DIRECTORY) { - /* If this came from the central dir, it's size info + /* If this came from the central dir, its size info * is definitive, so ignore the length-at-end flag. */ zip_entry->zip_flags &= ~ZIP_LENGTH_AT_END; /* If local header is missing a value, use the one from Modified: stable/10/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 22:19:48 2019 (r353377) @@ -458,7 +458,7 @@ archive_wstring_append_from_mbs_in_codepage(struct arc if (from_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ wchar_t *ws; const unsigned char *mp; @@ -680,7 +680,7 @@ archive_string_append_from_wcs_in_codepage(struct arch if (to_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ const wchar_t *wp = ws; char *p; @@ -889,7 +889,7 @@ add_converter(struct archive_string_conv *sc, int (*co struct archive_string_conv *)) { if (sc == NULL || sc->nconverter >= 2) - __archive_errx(1, "Programing error"); + __archive_errx(1, "Programming error"); sc->converter[sc->nconverter++] = converter; } Modified: stable/10/contrib/libarchive/libarchive/archive_util.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 22:19:06 2019 (r353376) +++ stable/10/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 22:19:48 2019 (r353377) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Oct 9 22:18:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A5DC131650; Wed, 9 Oct 2019 22:18:08 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pTB808Ffz46LX; Wed, 9 Oct 2019 22:18:08 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D64221F3BA; Wed, 9 Oct 2019 22:18:07 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99MI7Ls084072; Wed, 9 Oct 2019 22:18:07 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99MI2VA084037; Wed, 9 Oct 2019 22:18:02 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201910092218.x99MI2VA084037@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 9 Oct 2019 22:18:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353375 - in stable/12/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Group: stable-12 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/12/contrib/libarchive: cat cpio libarchive libarchive/test tar tar/test test_utils X-SVN-Commit-Revision: 353375 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 22:18:08 -0000 Author: mm Date: Wed Oct 9 22:18:01 2019 New Revision: 353375 URL: https://svnweb.freebsd.org/changeset/base/353375 Log: MFC r352732: Sync libarchive with vendor. Relevant vendor changes: Issue #1237: Fix integer overflow in archive_read_support_filter_lz4.c PR #1249: Correct some typographical and grammatical errors. PR #1250: Minor corrections to the formatting of manual pages Modified: stable/12/contrib/libarchive/cat/bsdcat.1 stable/12/contrib/libarchive/cpio/bsdcpio.1 stable/12/contrib/libarchive/libarchive/archive.h stable/12/contrib/libarchive/libarchive/archive_entry.3 stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 stable/12/contrib/libarchive/libarchive/archive_entry_misc.3 stable/12/contrib/libarchive/libarchive/archive_entry_paths.3 stable/12/contrib/libarchive/libarchive/archive_entry_perms.3 stable/12/contrib/libarchive/libarchive/archive_entry_stat.3 stable/12/contrib/libarchive/libarchive/archive_entry_time.3 stable/12/contrib/libarchive/libarchive/archive_read.3 stable/12/contrib/libarchive/libarchive/archive_read_add_passphrase.3 stable/12/contrib/libarchive/libarchive/archive_read_data.3 stable/12/contrib/libarchive/libarchive/archive_read_disk.3 stable/12/contrib/libarchive/libarchive/archive_read_extract.3 stable/12/contrib/libarchive/libarchive/archive_read_filter.3 stable/12/contrib/libarchive/libarchive/archive_read_format.3 stable/12/contrib/libarchive/libarchive/archive_read_free.3 stable/12/contrib/libarchive/libarchive/archive_read_header.3 stable/12/contrib/libarchive/libarchive/archive_read_new.3 stable/12/contrib/libarchive/libarchive/archive_read_open.3 stable/12/contrib/libarchive/libarchive/archive_read_set_options.3 stable/12/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c stable/12/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/12/contrib/libarchive/libarchive/archive_string.c stable/12/contrib/libarchive/libarchive/archive_util.3 stable/12/contrib/libarchive/libarchive/archive_write.3 stable/12/contrib/libarchive/libarchive/archive_write_blocksize.3 stable/12/contrib/libarchive/libarchive/archive_write_data.3 stable/12/contrib/libarchive/libarchive/archive_write_disk.3 stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/12/contrib/libarchive/libarchive/archive_write_filter.3 stable/12/contrib/libarchive/libarchive/archive_write_finish_entry.3 stable/12/contrib/libarchive/libarchive/archive_write_format.3 stable/12/contrib/libarchive/libarchive/archive_write_free.3 stable/12/contrib/libarchive/libarchive/archive_write_header.3 stable/12/contrib/libarchive/libarchive/archive_write_new.3 stable/12/contrib/libarchive/libarchive/archive_write_open.3 stable/12/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_mtree.c stable/12/contrib/libarchive/libarchive/archive_write_set_options.3 stable/12/contrib/libarchive/libarchive/archive_write_set_passphrase.3 stable/12/contrib/libarchive/libarchive/libarchive_changes.3 stable/12/contrib/libarchive/libarchive/libarchive_internals.3 stable/12/contrib/libarchive/libarchive/tar.5 stable/12/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c stable/12/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/12/contrib/libarchive/libarchive/test/test_read_format_raw.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c stable/12/contrib/libarchive/libarchive/test/test_write_filter_zstd.c stable/12/contrib/libarchive/tar/bsdtar.1 stable/12/contrib/libarchive/tar/test/test_option_n.c stable/12/contrib/libarchive/tar/test/test_option_xattrs.c stable/12/contrib/libarchive/test_utils/test_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/libarchive/cat/bsdcat.1 ============================================================================== --- stable/12/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/cat/bsdcat.1 Wed Oct 9 22:18:01 2019 (r353375) @@ -34,16 +34,15 @@ .Nm .Op options .Op files -.Pp .Sh DESCRIPTION .Nm expands files to standard output. .Sh OPTIONS .Nm typically takes a filename as an argument or reads standard input when used in a -pipe. In both cases decompressed data it written to standard output. +pipe. +In both cases decompressed data it written to standard output. .Sh EXAMPLES -.Pp To decompress a file: .Pp .Dl bsdcat example.txt.gz > example.txt @@ -55,8 +54,8 @@ To decompress standard input in a pipe: Both examples achieve the same results - a decompressed file by redirecting output. .Sh SEE ALSO -.Xr uncompress 1 , -.Xr zcat 1 , .Xr bzcat 1 , +.Xr uncompress 1 , .Xr xzcat 1 , -.Xr libarchive-formats 5 , +.Xr zcat 1 , +.Xr libarchive-formats 5 Modified: stable/12/contrib/libarchive/cpio/bsdcpio.1 ============================================================================== --- stable/12/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/cpio/bsdcpio.1 Wed Oct 9 22:18:01 2019 (r353375) @@ -75,7 +75,6 @@ Pass-through. Read a list of filenames from standard input and copy the files to the specified directory. .El -.Pp .Sh OPTIONS Unless specifically stated otherwise, options are applicable in all operating modes. @@ -385,10 +384,10 @@ For best compatibility, scripts should limit themselve standard syntax. .Sh SEE ALSO .Xr bzip2 1 , -.Xr tar 1 , .Xr gzip 1 , .Xr mt 1 , .Xr pax 1 , +.Xr tar 1 , .Xr libarchive 3 , .Xr cpio 5 , .Xr libarchive-formats 5 , Modified: stable/12/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive.h Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive.h Wed Oct 9 22:18:01 2019 (r353375) @@ -52,7 +52,7 @@ */ #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 # include -#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) +#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) && !defined(__CLANG_INTTYPES_H) # include #endif Modified: stable/12/contrib/libarchive/libarchive/archive_entry.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -32,7 +32,7 @@ .Nm archive_entry_clear , .Nm archive_entry_clone , .Nm archive_entry_free , -.Nm archive_entry_new , +.Nm archive_entry_new .Nd functions for managing archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -126,7 +126,6 @@ using the current locale. Similarly, if you store a wide string and then store a narrow string for the same data, the previously-set wide string will be discarded in favor of the new data. -.Pp .\" .Sh EXAMPLE .\" .Sh RETURN VALUES .\" .Sh ERRORS @@ -134,8 +133,8 @@ be discarded in favor of the new data. .Xr archive_entry_acl 3 , .Xr archive_entry_paths 3 , .Xr archive_entry_perms 3 , -.Xr archive_entry_time 3 -.Xr libarchive 3 , +.Xr archive_entry_time 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -118,15 +118,16 @@ Streaming Archive Library (libarchive, -larchive) .Sh DESCRIPTION The .Dq Access Control Lists (ACLs) -extend the standard Unix perssion model. +extend the standard Unix permission model. The ACL interface of .Nm libarchive -supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by +supports both POSIX.1e and NFSv4 style ACLs. +Use of ACLs is restricted by various levels of ACL support in operating systems, file systems and archive formats. .Ss POSIX.1e Access Control Lists A POSIX.1e ACL consists of a number of independent entries. -Each entry specifies the permission set as bitmask of basic permissions. +Each entry specifies the permission set as a bitmask of basic permissions. Valid permissions in the .Fa permset are: @@ -147,13 +148,13 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_MASK The maximum permissions to be obtained via group permissions. .It Dv ARCHIVE_ENTRY_ACL_OTHER -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp The principals @@ -164,12 +165,12 @@ and are equivalent to user, group and other in the classic Unix permission model and specify non-extended ACL entries. .Pp -All files with have an access ACL +All files have an access ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS . This specifies the permissions required for access to the file itself. Directories have an additional ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT , -which controls the initial access ACL for newly created directory entries. +which controls the initial access ACL for newly-created directory entries. .Ss NFSv4 Access Control Lists A NFSv4 ACL consists of multiple individual entries called Access Control Entries (ACEs). @@ -197,11 +198,11 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_EVERYONE -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp Entries with the @@ -216,9 +217,10 @@ integer. .Pp NFSv4 ACE permissions and flags are stored in the same .Fa permset -bitfield. Some permissions share the same constant and permission character but -have different effect on directories than on files. The following ACE -permissions are supported: +bitfield. +Some permissions share the same constant and permission character +but have different effect on directories than on files. +The following ACE permissions are supported: .Bl -tag -offset indent -compact -width ARCHIV .It Dv ARCHIVE_ENTRY_ACL_READ_DATA ( Sy r ) Read data (file). @@ -265,7 +267,8 @@ Inherit parent directory ACE to subdirectories. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY ( Sy i ) Only inherit, do not apply the permission on the directory itself. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT ( Sy n ) -Do not propagate inherit flags. Only first-level entries inherit ACLs. +Do not propagate inherit flags. +Only first-level entries inherit ACLs. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ( Sy S ) Trigger alarm or audit on successful access. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS ( Sy F ) @@ -279,8 +282,8 @@ and .Fn archive_entry_acl_add_entry_w add a single ACL entry. For the access ACL and non-extended principals, the classic Unix permissions -are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL -entries. +are updated. +An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries. .Pp .Fn archive_entry_acl_clear removes all ACL entries and resets the enumeration pointer. @@ -300,7 +303,8 @@ for POSIX.1e ACLs and .It Dv ARCHIVE_ENTRY_ACL_TYPE_AUDIT .It Dv ARCHIVE_ENTRY_ACL_TYPE_ALARM .El -for NFSv4 ACLs. For POSIX.1e ACLs if +for NFSv4 ACLs. +For POSIX.1e ACLs if .Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS is included and at least one extended ACL entry is found, the three non-extended ACLs are added. @@ -312,7 +316,8 @@ add new .Pq or merge with existing ACL entries from .Pq wide -text. The argument +text. +The argument .Fa type may take one of the following values: .Bl -tag -offset indent -compact -width "ARCHIVE_ENTRY_ACL_TYPE_DEFAULT" @@ -322,11 +327,13 @@ may take one of the following values: .El Supports all formats that can be created with .Fn archive_entry_acl_to_text -or respective +or respectively .Fn archive_entry_acl_to_text_w . -Existing ACL entries are preserved. To get a clean new ACL from text +Existing ACL entries are preserved. +To get a clean new ACL from text .Fn archive_entry_acl_clear -must be called first. Entries prefixed with +must be called first. +Entries prefixed with .Dq default: are treated as .Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT @@ -354,7 +361,7 @@ prepare reading the list of ACL entries with .Fn archive_entry_acl_next or .Fn archive_entry_acl_next_w . -The function returns either 0, if no non-extended ACLs are found. +The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by .Xr archive_entry_mode 3 or set using @@ -367,7 +374,8 @@ and .Fn archive_entry_acl_to_text_w convert the ACL entries for the given type into a .Pq wide -string of ACL entries separated by newline. If the pointer +string of ACL entries separated by newline. +If the pointer .Fa len_p is not NULL, then the function shall return the length of the string .Pq not including the NULL terminator @@ -415,7 +423,8 @@ are prefixed with .Dq default: . .Pp .Fn archive_entry_acl_types -get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4 +get ACL entry types contained in an archive entry's ACL. +As POSIX.1e and NFSv4 ACL entries cannot be mixed, this function is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. .Sh RETURN VALUES Modified: stable/12/contrib/libarchive/libarchive/archive_entry_misc.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_misc.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -28,7 +28,7 @@ .Sh NAME .Nm archive_entry_symlink_type , .Nm archive_entry_set_symlink_type -.Nd miscellaneous functions for manipulating properties of archive_entry. +.Nd miscellaneous functions for manipulating properties of archive_entry .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS @@ -42,7 +42,8 @@ The function .Fn archive_entry_symlink_type returns and the function .Fn archive_entry_set_symlink_type -sets the type of the symbolic link stored in an archive entry. These functions +sets the type of the symbolic link stored in an archive entry. +These functions have special meaning on operating systems that support multiple symbolic link types (e.g. Microsoft Windows). .Pp Modified: stable/12/contrib/libarchive/libarchive/archive_entry_paths.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_paths.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -133,7 +133,7 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp @@ -141,13 +141,13 @@ The sourcepath is a pure filesystem concept and never archive directly. .Pp For that reason, it is only available as multibyte string. -The link path is a convience function for conditionally setting +The link path is a convenience function for conditionally setting hardlink or symlink destination. It doesn't have a corresponding get accessor function. .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_entry_perms.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_perms.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -126,7 +126,7 @@ The corresponding functions and .Fn archive_entry_set_perm store the given user id, group id and permission in the entry. -The permission is also set as side effect of calling +The permission is also set as a side effect of calling .Fn archive_entry_set_mode . .Pp .Fn archive_entry_strmode @@ -143,12 +143,12 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Ss File Flags File flags are transparently converted between a bitmap @@ -182,7 +182,7 @@ The .Fn archive_entry_copy_fflags_text and .Fn archive_entry_copy_fflags_text_w -functions parse the provided text and sets the internal bitmap values. +functions parse the provided text and set the internal bitmap values. This is a platform-specific operation; names that are not meaningful on the current platform will be ignored. The function returns a pointer to the start of the first name that was not @@ -197,8 +197,8 @@ which stops parsing at the first unrecognized name.) .Xr archive_entry 3 , .Xr archive_entry_acl 3 , .Xr archive_read_disk 3 , -.Xr archive_write_disk 3 -.Xr libarchive 3 , +.Xr archive_write_disk 3 , +.Xr libarchive 3 .Sh BUGS The platform types .Vt uid_t Modified: stable/12/contrib/libarchive/libarchive/archive_entry_stat.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_stat.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -54,7 +54,7 @@ .Nm archive_entry_rdevmajor , .Nm archive_entry_set_rdevmajor , .Nm archive_entry_rdevminor , -.Nm archive_entry_set_rdevminor , +.Nm archive_entry_set_rdevminor .Nd accessor functions for manipulating archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -267,8 +267,8 @@ platforms. Some archive formats use the combined form, while other formats use the split form. .Sh SEE ALSO +.Xr stat 2 , .Xr archive_entry_acl 3 , .Xr archive_entry_perms 3 , .Xr archive_entry_time 3 , -.Xr libarchive 3 , -.Xr stat 2 +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_entry_time.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_entry_time.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -48,7 +48,7 @@ .Nm archive_entry_mtime_nsec , .Nm archive_entry_mtime_is_set , .Nm archive_entry_set_mtime , -.Nm archive_entry_unset_mtime , +.Nm archive_entry_unset_mtime .Nd functions for manipulating times in archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -113,8 +113,8 @@ The current state can be queried using .Fn XXX_is_set . Unset time fields have a second and nanosecond field of 0. .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: stable/12/contrib/libarchive/libarchive/archive_read.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -155,7 +155,7 @@ to close the archive, then call .Fn archive_read_free to release all resources, including all memory allocated by the library. .\" -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library. In this example, the callback functions are simply wrappers around the standard @@ -217,16 +217,16 @@ myclose(struct archive *a, void *client_data) .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_header 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh HISTORY The Modified: stable/12/contrib/libarchive/libarchive/archive_read_add_passphrase.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -59,16 +59,16 @@ or empty, this function will do nothing and will be returned. Otherwise, .Cm ARCHIVE_OK -will be returned. +will be returned. .It Fn archive_read_set_passphrase_callback -Register callback function that will be invoked to get a passphrase -for decrption after trying all passphrases registered by the +Register a callback function that will be invoked to get a passphrase +for decryption after trying all the passphrases registered by the .Fn archive_read_add_passphrase function failed. .El .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , -.Xr archive_read_set_options 3 +.Xr archive_read_set_options 3 , +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_read_data.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_data.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -28,7 +28,7 @@ .Dt ARCHIVE_READ_DATA 3 .Os .Sh NAME -.Nm archive_read_data +.Nm archive_read_data , .Nm archive_read_data_block , .Nm archive_read_data_skip , .Nm archive_read_data_into_fd @@ -118,7 +118,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , @@ -127,4 +126,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_read_disk.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_disk.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -99,9 +99,10 @@ following values: .Bl -tag -compact -width "indent" .It Cm ARCHIVE_READDISK_HONOR_NODUMP Skip files and directories with the nodump file attribute (file flag) set. -By default, the nodump file atrribute is ignored. +By default, the nodump file attribute is ignored. .It Cm ARCHIVE_READDISK_MAC_COPYFILE -Mac OS X specific. Read metadata (ACLs and extended attributes) with +Mac OS X specific. +Read metadata (ACLs and extended attributes) with .Xr copyfile 3 . By default, metadata is read using .Xr copyfile 3 . @@ -120,7 +121,7 @@ or for more information on file attributes. .It Cm ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS Do not traverse mount points. -By defaut, moint points are traversed. +By default, mount points are traversed. .It Cm ARCHIVE_READDISK_NO_XATTR Do not read extended file attributes (xattrs). By default, extended file attributes are read from disk. @@ -216,7 +217,7 @@ of some other operation. (For example, directory traversal libraries often provide this information.) .Pp Where necessary, user and group ids are converted to user and group names -using the currently registered lookup functions above. +using the currently-registered lookup functions above. This affects the file ownership fields and ACL values in the .Tn struct archive_entry object. @@ -226,7 +227,7 @@ More information about the object and the overall design of the library can be found in the .Xr libarchive 3 overview. -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library by showing how to use it to copy an item on disk into an archive. .Bd -literal -offset indent @@ -291,11 +292,11 @@ and functions. .\" .Sh SEE ALSO +.Xr tar 1 , .Xr archive_read 3 , .Xr archive_util 3 , .Xr archive_write 3 , .Xr archive_write_disk 3 , -.Xr tar 1 , .Xr libarchive 3 .Sh HISTORY The Modified: stable/12/contrib/libarchive/libarchive/archive_read_extract.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_extract.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -126,7 +126,6 @@ and functions. .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , @@ -134,4 +133,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_read_filter.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_filter.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -147,8 +147,8 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_format 3 , -.Xr archive_read_format 3 +.Xr archive_read_format 3 , +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_read_format.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_format.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -102,7 +102,7 @@ For example, .Fn archive_read_support_format_tar enables support for a variety of standard tar formats, old-style tar, ustar, pax interchange format, and many common variants. -.It Fn archive_read_support_format_all +.It Fn archive_read_support_format_all Enables support for all available formats except the .Dq raw format (see below). @@ -125,7 +125,7 @@ it is not possible to accurately determine a format fo an empty file based purely on contents. So empty files are treated by libarchive as a distinct format. -.It Fn archive_read_support_format_raw +.It Fn archive_read_support_format_raw The .Dq raw format handler allows libarchive to be used to read arbitrary data. @@ -153,11 +153,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh BUGS Many traditional archiver programs treat Modified: stable/12/contrib/libarchive/libarchive/archive_read_free.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_free.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -83,11 +83,11 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , -.Xr archive_util 3 +.Xr archive_util 3 , +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_read_header.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_header.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -79,7 +79,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , @@ -88,4 +87,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_read_new.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_new.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -50,10 +50,10 @@ object can be found in the overview manual page for .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_read_open.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_open.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -205,7 +205,7 @@ On failure, the callback should invoke .Fn archive_set_error to register an error code and message and return -.Cm ARCHIVE_FATAL. +.Cm ARCHIVE_FATAL . .\" .Sh EXAMPLE .\" .Sh RETURN VALUES @@ -223,11 +223,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_read_set_options.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_set_options.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -212,7 +212,8 @@ Use to disable. .It Cm read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives -have been concatenated together. Without this option, only the contents of +have been concatenated together. +Without this option, only the contents of the first concatenated archive would be read. .El .El @@ -226,6 +227,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , +.Xr archive_read 3 , .Xr archive_write_set_options 3 , -.Xr archive_read 3 +.Xr libarchive 3 Modified: stable/12/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Wed Oct 9 22:18:01 2019 (r353375) @@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a) */ static ssize_t peek_at_header(struct archive_read_filter *filter, int *pbits, - struct private_data *state) +#ifdef HAVE_ZLIB_H + struct private_data *state +#else + void *state +#endif + ) { const unsigned char *p; ssize_t avail, len; int bits = 0; int header_flags; +#ifndef HAVE_ZLIB_H + (void)state; /* UNUSED */ +#endif /* Start by looking at the first ten bytes of the header, which * is all fixed layout. */ @@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int bits += 3; header_flags = p[3]; /* Bytes 4-7 are mod time in little endian. */ +#ifdef HAVE_ZLIB_H if (state) state->mtime = archive_le32dec(p + 4); +#endif /* Byte 8 is deflate flags. */ /* XXXX TODO: return deflate flags back to consume_header for use in initializing the decompressor. */ @@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int /* Null-terminated optional filename. */ if (header_flags & 8) { +#ifdef HAVE_ZLIB_H ssize_t file_start = len; +#endif do { ++len; if (avail < len) @@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int return (0); } while (p[len - 1] != 0); +#ifdef HAVE_ZLIB_H if (state) { /* Reset the name in case of repeat header reads. */ free(state->name); state->name = strdup((const char *)&p[file_start]); } +#endif } /* Null-terminated optional comment. */ @@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *sel return (0); } -static int -gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) -{ - struct private_data *state; - - state = (struct private_data *)self->data; - - /* A mtime of 0 is considered invalid/missing. */ - if (state->mtime != 0) - archive_entry_set_mtime(entry, state->mtime, 0); - - /* If the name is available, extract it. */ - if (state->name) - archive_entry_set_pathname(entry, state->name); - - return (ARCHIVE_OK); -} - #ifndef HAVE_ZLIB_H /* @@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self) #else +static int +gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) +{ + struct private_data *state; + + state = (struct private_data *)self->data; + + /* A mtime of 0 is considered invalid/missing. */ + if (state->mtime != 0) + archive_entry_set_mtime(entry, state->mtime, 0); + + /* If the name is available, extract it. */ + if (state->name) + archive_entry_set_pathname(entry, state->name); + + return (ARCHIVE_OK); +} + /* * Initialize the filter object. */ @@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self) self->read = gzip_filter_read; self->skip = NULL; /* not supported */ self->close = gzip_filter_close; +#ifdef HAVE_ZLIB_H self->read_header = gzip_read_header; +#endif state->in_stream = 0; /* We're not actually within a stream yet. */ Modified: stable/12/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Oct 9 22:18:01 2019 (r353375) @@ -460,7 +460,7 @@ lz4_filter_read_descriptor(struct archive_read_filter __archive_read_filter_consume(self->upstream, descriptor_bytes); - /* Make sure we have an enough buffer for uncompressed data. */ + /* Make sure we have a large enough buffer for uncompressed data. */ if (lz4_allocate_out_block(self) != ARCHIVE_OK) return (ARCHIVE_FATAL); if (state->flags.stream_checksum) @@ -520,7 +520,7 @@ lz4_filter_read_data_block(struct archive_read_filter if (read_buf == NULL) goto truncated_error; - /* Optional process, checking a block sum. */ + /* Optional processing, checking a block sum. */ if (checksum_size) { unsigned int chsum = __archive_xxhash.XXH32( read_buf + 4, (int)compressed_size, 0); @@ -640,7 +640,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (ret == 0 && *p == NULL) state->stage = SELECT_STREAM; - /* Optional process, checking a stream sum. */ + /* Optional processing, checking a stream sum. */ if (state->flags.stream_checksum) { if (state->stage == SELECT_STREAM) { unsigned int checksum; @@ -660,7 +660,7 @@ lz4_filter_read_default_stream(struct archive_read_fil if (checksum != checksum_stream) { archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, - "lz4 stream cheksum error"); + "lz4 stream checksum error"); return (ARCHIVE_FATAL); } } else if (ret > 0) @@ -674,7 +674,7 @@ static ssize_t lz4_filter_read_legacy_stream(struct archive_read_filter *self, const void **p) { struct private_data *state = (struct private_data *)self->data; - int compressed; + uint32_t compressed; const char *read_buf; ssize_t ret; Modified: stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Oct 9 22:18:01 2019 (r353375) @@ -487,7 +487,7 @@ process_extra(struct archive_read *a, struct archive_e /* Some ZIP files may have trailing 0 bytes. Let's check they * are all 0 and ignore them instead of returning an error. * - * This is not techincally correct, but some ZIP files look + * This is not technically correct, but some ZIP files look * like this and other tools support those files - so let's * also support them. */ @@ -1053,7 +1053,7 @@ zip_read_local_file_header(struct archive_read *a, str /* Make sure that entries with a trailing '/' are marked as directories * even if the External File Attributes contains bogus values. If this - * is not a directory and there is no type, assume regularfile. */ + * is not a directory and there is no type, assume a regular file. */ if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) { int has_slash; @@ -1104,7 +1104,7 @@ zip_read_local_file_header(struct archive_read *a, str } if (zip_entry->flags & LA_FROM_CENTRAL_DIRECTORY) { - /* If this came from the central dir, it's size info + /* If this came from the central dir, its size info * is definitive, so ignore the length-at-end flag. */ zip_entry->zip_flags &= ~ZIP_LENGTH_AT_END; /* If local header is missing a value, use the one from Modified: stable/12/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_string.c Wed Oct 9 22:18:01 2019 (r353375) @@ -458,7 +458,7 @@ archive_wstring_append_from_mbs_in_codepage(struct arc if (from_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ wchar_t *ws; const unsigned char *mp; @@ -680,7 +680,7 @@ archive_string_append_from_wcs_in_codepage(struct arch if (to_cp == CP_C_LOCALE) { /* - * "C" locale special process. + * "C" locale special processing. */ const wchar_t *wp = ws; char *p; @@ -889,7 +889,7 @@ add_converter(struct archive_string_conv *sc, int (*co struct archive_string_conv *)) { if (sc == NULL || sc->nconverter >= 2) - __archive_errx(1, "Programing error"); + __archive_errx(1, "Programming error"); sc->converter[sc->nconverter++] = converter; } Modified: stable/12/contrib/libarchive/libarchive/archive_util.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_util.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -92,10 +92,10 @@ Clears any error information left over from a previous Not generally used in client code. .It Fn archive_compression Synonym for -.Fn archive_filter_code(a, 0) . +.Fn archive_filter_code a 0 . .It Fn archive_compression_name Synonym for -.Fn archive_filter_name(a, 0) . +.Fn archive_filter_name a 0 . .It Fn archive_copy_error Copies error information from one archive to another. .It Fn archive_errno @@ -142,13 +142,13 @@ filter 0 is the gunzip filter, filter 1 is the uudecode filter, and filter 2 is the pseudo-filter that wraps the archive read functions. In this case, requesting -.Fn archive_position(a, -1) +.Fn archive_position a -1 would be a synonym for -.Fn archive_position(a, 2) +.Fn archive_position a 2 which would return the number of bytes currently read from the archive, while -.Fn archive_position(a, 1) +.Fn archive_position a 1 would return the number of bytes after uudecoding, and -.Fn archive_position(a, 0) +.Fn archive_position a 0 would return the number of bytes after decompression. .It Fn archive_filter_name Returns a textual name identifying the indicated filter. @@ -170,9 +170,9 @@ A textual description of the format of the current ent .It Fn archive_position Returns the number of bytes read from or written to the indicated filter. In particular, -.Fn archive_position(a, 0) +.Fn archive_position a 0 returns the number of bytes read or written by the format handler, while -.Fn archive_position(a, -1) +.Fn archive_position a -1 returns the number of bytes read or written to the archive. See .Fn archive_filter_count Modified: stable/12/contrib/libarchive/libarchive/archive_write.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_write.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_write.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -118,7 +118,7 @@ After all entries have been written, use the .Fn archive_write_free function to release all resources. .\" -.Sh EXAMPLE +.Sh EXAMPLES The following sketch illustrates basic usage of the library. In this example, the callback functions are simply wrappers around the standard @@ -192,7 +192,7 @@ write_archive(const char *outname, const char **filena if (archive_write_set_format_filter_by_ext(a, outname) != ARCHIVE_OK) { archive_write_add_filter_gzip(a); archive_write_set_format_ustar(a); - } + } archive_write_open(a, mydata, myopen, mywrite, myclose); while (*filename) { stat(*filename, &st); @@ -225,8 +225,8 @@ int main(int argc, const char **argv) .Ed .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_write_set_options 3 , +.Xr libarchive 3 , .Xr cpio 5 , .Xr mtree 5 , .Xr tar 5 Modified: stable/12/contrib/libarchive/libarchive/archive_write_blocksize.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_write_blocksize.3 Wed Oct 9 21:48:00 2019 (r353374) +++ stable/12/contrib/libarchive/libarchive/archive_write_blocksize.3 Wed Oct 9 22:18:01 2019 (r353375) @@ -107,8 +107,8 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Oct 9 23:35:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 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-all@freebsd.org Thu Oct 10 02:17:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 07:39:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 08:28:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 69EDD14E24C; Thu, 10 Oct 2019 08:28:35 +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 46pkkW0pKfz4n25; Thu, 10 Oct 2019 08:28:35 +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 F36B0272B9; Thu, 10 Oct 2019 08:28:34 +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 x9A8SYje041863; Thu, 10 Oct 2019 08:28:34 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8SYkb041862; Thu, 10 Oct 2019 08:28:34 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100828.x9A8SYkb041862@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 08:28:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353383 - stable/12/sys/fs/tmpfs X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/fs/tmpfs X-SVN-Commit-Revision: 353383 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:28:35 -0000 Author: kib Date: Thu Oct 10 08:28:34 2019 New Revision: 353383 URL: https://svnweb.freebsd.org/changeset/base/353383 Log: MFC r353033: Remove unnecessary vm/vm_page.h and vm/vm_pager.h includes from tmpfs/tmpfs_vnops.c. Modified: stable/12/sys/fs/tmpfs/tmpfs_vnops.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- stable/12/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 07:41:42 2019 (r353382) +++ stable/12/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:28:34 2019 (r353383) @@ -59,8 +59,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include -#include #include #include From owner-svn-src-all@freebsd.org Thu Oct 10 08:30:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C75B14E331; Thu, 10 Oct 2019 08:30:51 +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 46pkn71JP7z4nD6; Thu, 10 Oct 2019 08:30:51 +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 1005C273D7; Thu, 10 Oct 2019 08:30:51 +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 x9A8UogV044393; Thu, 10 Oct 2019 08:30:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8UocI044392; Thu, 10 Oct 2019 08:30:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100830.x9A8UocI044392@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 08:30:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353384 - stable/12/sys/fs/tmpfs X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/fs/tmpfs X-SVN-Commit-Revision: 353384 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:30:51 -0000 Author: kib Date: Thu Oct 10 08:30:50 2019 New Revision: 353384 URL: https://svnweb.freebsd.org/changeset/base/353384 Log: MFC r353064: tmpfs_rename: style. Modified: stable/12/sys/fs/tmpfs/tmpfs_vnops.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- stable/12/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:28:34 2019 (r353383) +++ stable/12/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:30:50 2019 (r353384) @@ -793,23 +793,24 @@ tmpfs_rename(struct vop_rename_args *v) struct vnode *tvp = v->a_tvp; struct componentname *tcnp = v->a_tcnp; struct mount *mp = NULL; - char *newname; - int error; struct tmpfs_dirent *de; struct tmpfs_mount *tmp; struct tmpfs_node *fdnode; struct tmpfs_node *fnode; struct tmpfs_node *tnode; struct tmpfs_node *tdnode; + int error; MPASS(VOP_ISLOCKED(tdvp)); MPASS(IMPLIES(tvp != NULL, VOP_ISLOCKED(tvp))); MPASS(fcnp->cn_flags & HASBUF); MPASS(tcnp->cn_flags & HASBUF); - /* Disallow cross-device renames. - * XXX Why isn't this done by the caller? */ + /* + * Disallow cross-device renames. + * XXX Why isn't this done by the caller? + */ if (fvp->v_mount != tdvp->v_mount || (tvp != NULL && fvp->v_mount != tvp->v_mount)) { error = EXDEV; @@ -822,8 +823,10 @@ tmpfs_rename(struct vop_rename_args *v) goto out; } - /* If we need to move the directory between entries, lock the - * source so that we can safely operate on it. */ + /* + * If we need to move the directory between entries, lock the + * source so that we can safely operate on it. + */ if (fdvp != tdvp && fdvp != tvp) { if (vn_lock(fdvp, LK_EXCLUSIVE | LK_NOWAIT) != 0) { mp = tdvp->v_mount; @@ -859,8 +862,10 @@ tmpfs_rename(struct vop_rename_args *v) fnode = VP_TO_TMPFS_NODE(fvp); de = tmpfs_dir_lookup(fdnode, fnode, fcnp); - /* Entry can disappear before we lock fdvp, - * also avoid manipulating '.' and '..' entries. */ + /* + * Entry can disappear before we lock fdvp, + * also avoid manipulating '.' and '..' entries. + */ if (de == NULL) { if ((fcnp->cn_flags & ISDOTDOT) != 0 || (fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.')) @@ -871,11 +876,13 @@ tmpfs_rename(struct vop_rename_args *v) } MPASS(de->td_node == fnode); - /* If re-naming a directory to another preexisting directory + /* + * If re-naming a directory to another preexisting directory * ensure that the target directory is empty so that its * removal causes no side effects. * Kern_rename guarantees the destination to be a directory - * if the source is one. */ + * if the source is one. + */ if (tvp != NULL) { MPASS(tnode != NULL); @@ -908,29 +915,39 @@ tmpfs_rename(struct vop_rename_args *v) goto out_locked; } - /* Ensure that we have enough memory to hold the new name, if it - * has to be changed. */ + /* + * Ensure that we have enough memory to hold the new name, if it + * has to be changed. + */ if (fcnp->cn_namelen != tcnp->cn_namelen || bcmp(fcnp->cn_nameptr, tcnp->cn_nameptr, fcnp->cn_namelen) != 0) { newname = malloc(tcnp->cn_namelen, M_TMPFSNAME, M_WAITOK); } else newname = NULL; - /* If the node is being moved to another directory, we have to do - * the move. */ + /* + * If the node is being moved to another directory, we have to do + * the move. + */ if (fdnode != tdnode) { - /* In case we are moving a directory, we have to adjust its - * parent to point to the new parent. */ + /* + * In case we are moving a directory, we have to adjust its + * parent to point to the new parent. + */ if (de->td_node->tn_type == VDIR) { struct tmpfs_node *n; - /* Ensure the target directory is not a child of the + /* + * Ensure the target directory is not a child of the * directory being moved. Otherwise, we'd end up - * with stale nodes. */ + * with stale nodes. + */ n = tdnode; - /* TMPFS_LOCK garanties that no nodes are freed while + /* + * TMPFS_LOCK guaranties that no nodes are freed while * traversing the list. Nodes can only be marked as - * removed: tn_parent == NULL. */ + * removed: tn_parent == NULL. + */ TMPFS_LOCK(tmp); TMPFS_NODE_LOCK(n); while (n != n->tn_dir.tn_parent) { @@ -973,9 +990,11 @@ tmpfs_rename(struct vop_rename_args *v) de->td_node->tn_dir.tn_parent = tdnode; TMPFS_NODE_UNLOCK(de->td_node); - /* As a result of changing the target of the '..' + /* + * As a result of changing the target of the '..' * entry, the link count of the source and target - * directories has to be adjusted. */ + * directories has to be adjusted. + */ TMPFS_NODE_LOCK(tdnode); TMPFS_ASSERT_LOCKED(tdnode); tdnode->tn_links++; @@ -988,8 +1007,10 @@ tmpfs_rename(struct vop_rename_args *v) } } - /* Do the move: just remove the entry from the source directory - * and insert it into the target one. */ + /* + * Do the move: just remove the entry from the source directory + * and insert it into the target one. + */ tmpfs_dir_detach(fdvp, de); if (fcnp->cn_flags & DOWHITEOUT) @@ -997,8 +1018,10 @@ tmpfs_rename(struct vop_rename_args *v) if (tcnp->cn_flags & ISWHITEOUT) tmpfs_dir_whiteout_remove(tdvp, tcnp); - /* If the name has changed, we need to make it effective by changing - * it in the directory entry. */ + /* + * If the name has changed, we need to make it effective by changing + * it in the directory entry. + */ if (newname != NULL) { MPASS(tcnp->cn_namelen <= MAXNAMLEN); @@ -1010,8 +1033,10 @@ tmpfs_rename(struct vop_rename_args *v) tdnode->tn_status |= TMPFS_NODE_MODIFIED; } - /* If we are overwriting an entry, we have to remove the old one - * from the target directory. */ + /* + * If we are overwriting an entry, we have to remove the old one + * from the target directory. + */ if (tvp != NULL) { struct tmpfs_dirent *tde; @@ -1019,9 +1044,11 @@ tmpfs_rename(struct vop_rename_args *v) tde = tmpfs_dir_lookup(tdnode, tnode, tcnp); tmpfs_dir_detach(tdvp, tde); - /* Free the directory entry we just deleted. Note that the + /* + * Free the directory entry we just deleted. Note that the * node referred by it will not be removed until the vnode is - * really reclaimed. */ + * really reclaimed. + */ tmpfs_free_dirent(VFS_TO_TMPFS(tvp->v_mount), tde); } @@ -1041,9 +1068,11 @@ out_locked: VOP_UNLOCK(fdvp, 0); out: - /* Release target nodes. */ - /* XXX: I don't understand when tdvp can be the same as tvp, but - * other code takes care of this... */ + /* + * Release target nodes. + * XXX: I don't understand when tdvp can be the same as tvp, but + * other code takes care of this... + */ if (tdvp == tvp) vrele(tdvp); else @@ -1058,7 +1087,7 @@ out: if (mp != NULL) vfs_unbusy(mp); - return error; + return (error); } static int From owner-svn-src-all@freebsd.org Thu Oct 10 08:49:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8B4EA14EDB7; Thu, 10 Oct 2019 08:49:10 +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 46plBG2v2yz4pdD; Thu, 10 Oct 2019 08:49:10 +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 46760276B4; Thu, 10 Oct 2019 08:49:10 +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 x9A8nAXI053684; Thu, 10 Oct 2019 08:49:10 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8nA3J053683; Thu, 10 Oct 2019 08:49:10 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100849.x9A8nA3J053683@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 08:49:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353387 - stable/11/sys/fs/tmpfs X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/fs/tmpfs X-SVN-Commit-Revision: 353387 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:49:10 -0000 Author: kib Date: Thu Oct 10 08:49:09 2019 New Revision: 353387 URL: https://svnweb.freebsd.org/changeset/base/353387 Log: MFC r353064: tmpfs_rename: style. Modified: stable/11/sys/fs/tmpfs/tmpfs_vnops.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- stable/11/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:46:50 2019 (r353386) +++ stable/11/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:49:09 2019 (r353387) @@ -787,23 +787,24 @@ tmpfs_rename(struct vop_rename_args *v) struct vnode *tvp = v->a_tvp; struct componentname *tcnp = v->a_tcnp; struct mount *mp = NULL; - char *newname; - int error; struct tmpfs_dirent *de; struct tmpfs_mount *tmp; struct tmpfs_node *fdnode; struct tmpfs_node *fnode; struct tmpfs_node *tnode; struct tmpfs_node *tdnode; + int error; MPASS(VOP_ISLOCKED(tdvp)); MPASS(IMPLIES(tvp != NULL, VOP_ISLOCKED(tvp))); MPASS(fcnp->cn_flags & HASBUF); MPASS(tcnp->cn_flags & HASBUF); - /* Disallow cross-device renames. - * XXX Why isn't this done by the caller? */ + /* + * Disallow cross-device renames. + * XXX Why isn't this done by the caller? + */ if (fvp->v_mount != tdvp->v_mount || (tvp != NULL && fvp->v_mount != tvp->v_mount)) { error = EXDEV; @@ -816,8 +817,10 @@ tmpfs_rename(struct vop_rename_args *v) goto out; } - /* If we need to move the directory between entries, lock the - * source so that we can safely operate on it. */ + /* + * If we need to move the directory between entries, lock the + * source so that we can safely operate on it. + */ if (fdvp != tdvp && fdvp != tvp) { if (vn_lock(fdvp, LK_EXCLUSIVE | LK_NOWAIT) != 0) { mp = tdvp->v_mount; @@ -853,8 +856,10 @@ tmpfs_rename(struct vop_rename_args *v) fnode = VP_TO_TMPFS_NODE(fvp); de = tmpfs_dir_lookup(fdnode, fnode, fcnp); - /* Entry can disappear before we lock fdvp, - * also avoid manipulating '.' and '..' entries. */ + /* + * Entry can disappear before we lock fdvp, + * also avoid manipulating '.' and '..' entries. + */ if (de == NULL) { if ((fcnp->cn_flags & ISDOTDOT) != 0 || (fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.')) @@ -865,11 +870,13 @@ tmpfs_rename(struct vop_rename_args *v) } MPASS(de->td_node == fnode); - /* If re-naming a directory to another preexisting directory + /* + * If re-naming a directory to another preexisting directory * ensure that the target directory is empty so that its * removal causes no side effects. * Kern_rename guarantees the destination to be a directory - * if the source is one. */ + * if the source is one. + */ if (tvp != NULL) { MPASS(tnode != NULL); @@ -902,29 +909,39 @@ tmpfs_rename(struct vop_rename_args *v) goto out_locked; } - /* Ensure that we have enough memory to hold the new name, if it - * has to be changed. */ + /* + * Ensure that we have enough memory to hold the new name, if it + * has to be changed. + */ if (fcnp->cn_namelen != tcnp->cn_namelen || bcmp(fcnp->cn_nameptr, tcnp->cn_nameptr, fcnp->cn_namelen) != 0) { newname = malloc(tcnp->cn_namelen, M_TMPFSNAME, M_WAITOK); } else newname = NULL; - /* If the node is being moved to another directory, we have to do - * the move. */ + /* + * If the node is being moved to another directory, we have to do + * the move. + */ if (fdnode != tdnode) { - /* In case we are moving a directory, we have to adjust its - * parent to point to the new parent. */ + /* + * In case we are moving a directory, we have to adjust its + * parent to point to the new parent. + */ if (de->td_node->tn_type == VDIR) { struct tmpfs_node *n; - /* Ensure the target directory is not a child of the + /* + * Ensure the target directory is not a child of the * directory being moved. Otherwise, we'd end up - * with stale nodes. */ + * with stale nodes. + */ n = tdnode; - /* TMPFS_LOCK garanties that no nodes are freed while + /* + * TMPFS_LOCK guaranties that no nodes are freed while * traversing the list. Nodes can only be marked as - * removed: tn_parent == NULL. */ + * removed: tn_parent == NULL. + */ TMPFS_LOCK(tmp); TMPFS_NODE_LOCK(n); while (n != n->tn_dir.tn_parent) { @@ -967,9 +984,11 @@ tmpfs_rename(struct vop_rename_args *v) de->td_node->tn_dir.tn_parent = tdnode; TMPFS_NODE_UNLOCK(de->td_node); - /* As a result of changing the target of the '..' + /* + * As a result of changing the target of the '..' * entry, the link count of the source and target - * directories has to be adjusted. */ + * directories has to be adjusted. + */ TMPFS_NODE_LOCK(tdnode); TMPFS_ASSERT_LOCKED(tdnode); tdnode->tn_links++; @@ -982,8 +1001,10 @@ tmpfs_rename(struct vop_rename_args *v) } } - /* Do the move: just remove the entry from the source directory - * and insert it into the target one. */ + /* + * Do the move: just remove the entry from the source directory + * and insert it into the target one. + */ tmpfs_dir_detach(fdvp, de); if (fcnp->cn_flags & DOWHITEOUT) @@ -991,8 +1012,10 @@ tmpfs_rename(struct vop_rename_args *v) if (tcnp->cn_flags & ISWHITEOUT) tmpfs_dir_whiteout_remove(tdvp, tcnp); - /* If the name has changed, we need to make it effective by changing - * it in the directory entry. */ + /* + * If the name has changed, we need to make it effective by changing + * it in the directory entry. + */ if (newname != NULL) { MPASS(tcnp->cn_namelen <= MAXNAMLEN); @@ -1004,8 +1027,10 @@ tmpfs_rename(struct vop_rename_args *v) tdnode->tn_status |= TMPFS_NODE_MODIFIED; } - /* If we are overwriting an entry, we have to remove the old one - * from the target directory. */ + /* + * If we are overwriting an entry, we have to remove the old one + * from the target directory. + */ if (tvp != NULL) { struct tmpfs_dirent *tde; @@ -1013,9 +1038,11 @@ tmpfs_rename(struct vop_rename_args *v) tde = tmpfs_dir_lookup(tdnode, tnode, tcnp); tmpfs_dir_detach(tdvp, tde); - /* Free the directory entry we just deleted. Note that the + /* + * Free the directory entry we just deleted. Note that the * node referred by it will not be removed until the vnode is - * really reclaimed. */ + * really reclaimed. + */ tmpfs_free_dirent(VFS_TO_TMPFS(tvp->v_mount), tde); } @@ -1035,9 +1062,11 @@ out_locked: VOP_UNLOCK(fdvp, 0); out: - /* Release target nodes. */ - /* XXX: I don't understand when tdvp can be the same as tvp, but - * other code takes care of this... */ + /* + * Release target nodes. + * XXX: I don't understand when tdvp can be the same as tvp, but + * other code takes care of this... + */ if (tdvp == tvp) vrele(tdvp); else @@ -1052,7 +1081,7 @@ out: if (mp != NULL) vfs_unbusy(mp); - return error; + return (error); } static int From owner-svn-src-all@freebsd.org Thu Oct 10 13:23:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 272C41375FA; Thu, 10 Oct 2019 13:23:24 +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 46psGh0HnYz3xyb; Thu, 10 Oct 2019 13:23:24 +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 C8E1928AD; Thu, 10 Oct 2019 13:23:23 +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 x9ADNNgX018476; Thu, 10 Oct 2019 13:23:23 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ADNN8s018475; Thu, 10 Oct 2019 13:23:23 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101323.x9ADNN8s018475@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:23:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353392 - vendor/opencsd/dist X-SVN-Group: vendor X-SVN-Commit-Author: br X-SVN-Commit-Paths: vendor/opencsd/dist X-SVN-Commit-Revision: 353392 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 13:23:24 -0000 Author: br Date: Thu Oct 10 13:23:23 2019 New Revision: 353392 URL: https://svnweb.freebsd.org/changeset/base/353392 Log: Update opencsd tag. Sponsored by: DARPA, AFRL Replaced: vendor/opencsd/dist/ - copied from r353391, vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/ From owner-svn-src-all@freebsd.org Thu Oct 10 03:12:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 07:41:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 08:46:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CDDE014ECFC; Thu, 10 Oct 2019 08:46:50 +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 46pl7Z59sRz4pTt; Thu, 10 Oct 2019 08:46:50 +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 95EEE276AE; Thu, 10 Oct 2019 08:46:50 +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 x9A8kogP053525; Thu, 10 Oct 2019 08:46:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8koSt053524; Thu, 10 Oct 2019 08:46:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100846.x9A8koSt053524@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 08:46:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353386 - stable/11/sys/fs/tmpfs X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/fs/tmpfs X-SVN-Commit-Revision: 353386 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:46:50 -0000 Author: kib Date: Thu Oct 10 08:46:50 2019 New Revision: 353386 URL: https://svnweb.freebsd.org/changeset/base/353386 Log: MFC r353033: Remove unnecessary vm/vm_page.h and vm/vm_pager.h includes from tmpfs/tmpfs_vnops.c. Modified: stable/11/sys/fs/tmpfs/tmpfs_vnops.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- stable/11/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:33:14 2019 (r353385) +++ stable/11/sys/fs/tmpfs/tmpfs_vnops.c Thu Oct 10 08:46:50 2019 (r353386) @@ -53,8 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include -#include #include #include From owner-svn-src-all@freebsd.org Thu Oct 10 08:50:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8CC7D14EFD0; Thu, 10 Oct 2019 08:50:42 +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 46plD222yKz4ppP; Thu, 10 Oct 2019 08:50:42 +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 2A3C5276C4; Thu, 10 Oct 2019 08:50:42 +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 x9A8ofb3053840; Thu, 10 Oct 2019 08:50:41 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8of8L053839; Thu, 10 Oct 2019 08:50:41 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100850.x9A8of8L053839@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 08:50:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353388 - stable/11/sys/fs/tmpfs X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/fs/tmpfs X-SVN-Commit-Revision: 353388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:50:42 -0000 Author: kib Date: Thu Oct 10 08:50:41 2019 New Revision: 353388 URL: https://svnweb.freebsd.org/changeset/base/353388 Log: MFC r353065: tmpfs_readdir(): unlock the locked node. Modified: stable/11/sys/fs/tmpfs/tmpfs_subr.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- stable/11/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 08:49:09 2019 (r353387) +++ stable/11/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 08:50:41 2019 (r353388) @@ -1143,8 +1143,9 @@ static int tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct tmpfs_node *node, struct uio *uio) { - int error; + struct tmpfs_node *parent; struct dirent dent; + int error; TMPFS_VALIDATE_DIR(node); MPASS(uio->uio_offset == TMPFS_DIRCOOKIE_DOTDOT); @@ -1153,12 +1154,13 @@ tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct * Return ENOENT if the current node is already removed. */ TMPFS_ASSERT_LOCKED(node); - if (node->tn_dir.tn_parent == NULL) + parent = node->tn_dir.tn_parent; + if (parent == NULL) return (ENOENT); - TMPFS_NODE_LOCK(node->tn_dir.tn_parent); - dent.d_fileno = node->tn_dir.tn_parent->tn_id; - TMPFS_NODE_UNLOCK(node->tn_dir.tn_parent); + TMPFS_NODE_LOCK(parent); + dent.d_fileno = parent->tn_id; + TMPFS_NODE_UNLOCK(parent); dent.d_type = DT_DIR; dent.d_namlen = 2; From owner-svn-src-all@freebsd.org Thu Oct 10 12:20:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A93A2132D53; Thu, 10 Oct 2019 12:20:27 +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 46pqt34Hn1z3M8Y; Thu, 10 Oct 2019 12:20:27 +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 5C81B1C4B; Thu, 10 Oct 2019 12:20:27 +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 x9ACKRhP076996; Thu, 10 Oct 2019 12:20:27 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ACKPKb076987; Thu, 10 Oct 2019 12:20:25 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101220.x9ACKPKb076987@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:20:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353389 - in vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b: . doc doc/man include include/posix include/windows libipt libipt/include libipt/internal libipt/internal/i... X-SVN-Group: vendor X-SVN-Commit-Author: br X-SVN-Commit-Paths: in vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b: . doc doc/man include include/posix include/windows libipt libipt/include libipt/internal libipt/internal/include libipt/internal/in... X-SVN-Commit-Revision: 353389 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 12:20:27 -0000 Author: br Date: Thu Oct 10 12:20:25 2019 New Revision: 353389 URL: https://svnweb.freebsd.org/changeset/base/353389 Log: Import Intel Processor Trace library. Git ID 892e12c5a27bda5806d1e63269986bb4171b5a8b Sponsored by: DARPA, AFRL Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/.gitignore vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CONTRIBUTING vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/LICENSE vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/README vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/getting_started.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_build.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_capture.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_libipt.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_pttc.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_alloc_encoder.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_blk_alloc_decoder.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_blk_get_offset.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_blk_next.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_blk_sync_forward.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_config.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_enc_get_config.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_enc_get_offset.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_image_add_file.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_image_alloc.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_image_remove_by_filename.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_image_set_callback.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_insn_alloc_decoder.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_insn_get_image.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_insn_get_offset.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_insn_next.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_insn_sync_forward.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_iscache_add_file.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_iscache_alloc.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_iscache_read.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_iscache_set_limit.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_library_version.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_packet.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_pkt_alloc_decoder.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_pkt_get_offset.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_pkt_sync_forward.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_alloc_decoder.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_cond_branch.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_event.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_get_offset.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_sync_forward.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/man/pt_qry_time.3.md vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/posix/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/posix/threads.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/pt_compiler.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/pt_version.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/windows/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/windows/inttypes.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/include/windows/threads.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/include/intel-pt.h.in (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/posix/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/posix/pt_section_posix.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_asid.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_block_cache.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_block_decoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_config.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_cpu.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_cpuid.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_decoder_function.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_encoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_event_queue.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_ild.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_image.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_image_section_cache.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_insn.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_insn_decoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_last_ip.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_mapped_section.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_msec_cache.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_opcodes.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_packet.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_packet_decoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_query_decoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_retstack.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_section.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_section_file.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_sync.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_time.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pt_tnt_cache.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-disp-defs.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-disp.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-disp_default.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-imm-defs.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-imm.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-modrm-defs.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-modrm.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/pti-sib.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/windows/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/internal/include/windows/pt_section_windows.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/posix/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/posix/pt_cpuid.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/posix/pt_section_posix.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_asid.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_block_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_block_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_config.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_cpu.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_decoder_function.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_encoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_error.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_event_queue.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_ild.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_image.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_image_section_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_insn.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_insn_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_last_ip.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_msec_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_packet.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_packet_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_query_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_retstack.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_section.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_section_file.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_sync.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_time.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_tnt_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/pt_version.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/windows/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/windows/pt_cpuid.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/src/windows/pt_section_windows.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-asid.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-block_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-block_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-config.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-cpp.cpp (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-cpu.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-encoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-event_queue.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-fetch.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-ild.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-image.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-image_section_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-insn_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-last_ip.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-mapped_section.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-msec_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-packet.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-packet_decoder.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-query.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-retstack.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-section-file.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-section.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-sync.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-time.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/libipt/test/src/ptunit-tnt_cache.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/include/pevent.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/src/pevent.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/test/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/test/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pevent/test/src/ptunit-pevent.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptdump/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptdump/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptdump/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptdump/src/ptdump.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptseg/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptseg/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptseg/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptseg/src/ptseg.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/errcode.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/file.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/parse.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/pttc.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/util.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/include/yasm.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/errcode.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/file.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/main.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/parse.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/posix/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/posix/util.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/pttc.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/util.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/windows/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/windows/util.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/src/yasm.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/test/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/test/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/test/src/test_all_directives.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/test/src/test_exp_labels.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/pttc/test/src/test_label_addr.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/include/ptunit.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/include/ptunit_mkfile.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/include/ptunit_threads.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/posix/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/posix/ptunit_mkfile.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/ptunit.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/windows/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/src/windows/ptunit_mkfile.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/test/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/test/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptunit/test/src/ptunit-selftest.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/include/load_elf.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/src/load_elf.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/ptxed/src/ptxed.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/perf-copy-mapped-files.bash (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/perf-get-opts.bash (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/perf-read-aux.bash (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/perf-read-sideband.bash (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/script/test.bash (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/include/libipt-sb.h.in (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/pt_sb_context.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/pt_sb_decoder.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/pt_sb_file.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/pt_sb_pevent.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/internal/include/pt_sb_session.h (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/src/pt_sb_context.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/src/pt_sb_file.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/src/pt_sb_pevent.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/sideband/src/pt_sb_session.c (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/CMakeLists.txt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-comm_exec-mmap-tsc-iret.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-dump.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-dump_verbose.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-fork.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-mmap-tip_cached.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-mmap_secondary-tsc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-split.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-tip_pgd-comm_exec-mmap-tsc-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-tip_pgd-mmap-tsc-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-tip_pgd-switch-tsc-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-tip_pgd-switch_cpu_wide-tsc-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/pevent/src/pevent-warn.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/apl11.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/apl12-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/apl12-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bad_cpu.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bdm64-tip-xabort.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bdm64-tnt-cond-xabort.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bdm64-tnt-ind_call-xabort.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bdm70-psb_fup-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/bdm70-tip_pgd-psb_fup-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_direct-ret_compressed-pic.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_direct-ret_compressed.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_direct-ret_uncompressed.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_indirect-ret_compressed.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_indirect-ret_uncompressed.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/call_indirect_deferred-ret_compressed.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/cbr-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/cbr-mtc-cyc-mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/cbr-tsc-cyc-tma.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/cbr-tsc-tma-mtc-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/direct_call-tip_pgd_noip-syscall.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/direct_jump-tip_pgd_noip-far_call.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/dump-all-packets.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/exstop_ip-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-pip-vmcs-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-pip-vmcs-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip-eos.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip_pgd-stop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip_pgd-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip_pgd-tip_pge_other_ip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/fup-tip_pgd_noip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/int-iret-cpl_0.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/int-iret-cpl_3.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/int-iret.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/linear-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/linear-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/loop-tnt-64.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/loop-tnt-tnt.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/loop-tnt.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mode_exec-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mtc-cyc_calibrate.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mtc-ovf_keep-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mtc-ovf_reset-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mwait-pwre-exstop_ip-fup-ovf.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mwait-pwre-exstop_ip-ovf.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/mwait-pwre-exstop_ip-pwrx.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-mnt-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-mnt-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-pwre-pwrx-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-timing-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-timing-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ovf.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/pip-far_call.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/pip-pip_mov_cr3-fail.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/pip-vmcs-tip_pgd.ptt (contents, props changed) vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/pip_mov_cr3-pip_mov_cr3.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-empty.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-exstop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-fup-psbend.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-fup-tip_pgd-stop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-mnt-fup-psbend.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-mnt-psbend.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-ovf-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-ovf-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-pip-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-pip-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-stop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-tnt-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-tsx.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-tsx_abort-tip-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-tsx_abort-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-tsx_abort.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb-vmcs.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/psb_nofup-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-bad_opc-resync.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-exec-mode.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-last-ip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-no-offset-raw.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-no-offset.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptdump-trunc-resync.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptw-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptw.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-block-stat.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-block-stat_blocks.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_call-fup-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_call-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_call-ret_tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_call-ret_tnt.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_call-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-end_on_jump-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-insn-stat.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-stat_insn.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ptxed-tick.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/pwre-exstop_ip-pwrx.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/ret_near_far.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd007.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd010-mode_tsx-fup.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd010-psb.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd010-tip.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd010-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skd022.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl014-call.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl014-jmp-jmp.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl014-jmp.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl014-no_filter.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl168-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/skl168-mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/syscall-sysret-cpl_0.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/syscall-sysret-cpl_3.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/syscall-sysret.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/sysenter-sysexit-cpl_0.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/sysenter-sysexit-cpl_3.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/sysenter-sysexit.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip-eos.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-direct_call.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-direct_jump.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-exstop-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-indirect_call.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-indirect_jump.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-pip-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-psb-stop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-stop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-tnt_not_taken.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-tnt_taken.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd-tsx.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd_noip-far_jump.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pgd_noip-mov_cr3.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-exstop.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-fup-tip_pgd-tip_pge.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-ptw-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-ptw-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-pwre-pwrx-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-tsx_abort-tip-fup-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tip_pge-tsx_abort-tip_pgd.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tnt-tip_pgd_noip-sysret.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tnt_n-eos.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tnt_t-eos.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/truncated.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-cbr-cyc-tsc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-cyc_calibrate.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-mtc-tma-mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-cyc-mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-cyc-mtc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-cyc-no_cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-cyc-tsc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-cyc_calibrate.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cbr-mtc-mtc-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc-cyc_calibrate.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc-mtc-cyc_calibrate.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc-tsc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc_absolute.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc_infreq.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc_infreq_wrap.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc_relative.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma-mtc_wrap.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc-tma_zero_fc-cbr-cyc.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsc_tma_mtc_gap.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsx-abort.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsx-commit.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/tsx-no_spurious_commit.ptt vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/test/src/vmcs-far_call.ptt Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/.gitignore ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/.gitignore Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,7 @@ +*.lst +*.bin +*.pt +*.sb +*.exp +*.out +*.diff Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CMakeLists.txt Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,325 @@ +# 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: +# +# * 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. + +cmake_minimum_required(VERSION 2.8.6) + +project(PT C) + +# versioning +# +# the major and the minor number define the supported Intel PT set. +# the patch level is only used for bug-fixes. +# +# a build number and a version extension can be optionally specified. +# +set(PT_VERSION_MAJOR 2) +set(PT_VERSION_MINOR 0) +set(PT_VERSION_PATCH 0) +set(PT_VERSION_BUILD "0" CACHE STRING "") +set(PT_VERSION_EXT "" CACHE STRING "") + +set(PT_VERSION "${PT_VERSION_MAJOR}.${PT_VERSION_MINOR}.${PT_VERSION_PATCH}") + +add_definitions( + -DPT_VERSION_MAJOR=${PT_VERSION_MAJOR} + -DPT_VERSION_MINOR=${PT_VERSION_MINOR} + -DPT_VERSION_PATCH=${PT_VERSION_PATCH} + -DPT_VERSION_BUILD=${PT_VERSION_BUILD} + -DPT_VERSION_EXT=\"${PT_VERSION_EXT}\" +) + +include(GNUInstallDirs) +include(FindUnixCommands) +include(CheckCCompilerFlag) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(MAN_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/man) + +set(CMAKE_COLOR_MAKEFILE OFF) +set(CMAKE_VERBOSE_MAKEFILE ON) + +set(CMAKE_MACOSX_RPATH ON) + +option(FEATURE_THREADS "A small amount of multi-threading support." ON) +if (FEATURE_THREADS) + add_definitions(-DFEATURE_THREADS) +endif (FEATURE_THREADS) + +option(DEVBUILD "Enable compiler warnings and turn them into errors." OFF) + +option(PTDUMP "Enable ptdump, a packet dumper") +option(PTXED "Enable ptxed, an instruction flow dumper") +option(PTTC "Enable pttc, a test compiler") +option(PTSEG "Enable ptseg, a PSB segment finder") +option(PTUNIT "Enable ptunit, a unit test system and libipt unit tests") +option(MAN "Enable man pages (requires pandoc)." OFF) +option(SIDEBAND "Enable libipt-sb, a sideband correlation library") +option(BUILD_SHARED_LIBS "Build the shared library" ON) + +if (SIDEBAND) + option(PEVENT "Enable perf_event sideband support." OFF) +endif (SIDEBAND) + +if (PTXED OR PEVENT) + option(FEATURE_ELF "Support ELF files." OFF) +endif (PTXED OR PEVENT) + +set(PTT OFF) +if (BASH AND PTDUMP AND PTXED AND PTTC) + set(PTT ON) +endif () + +if (PTUNIT OR PTT) + ENABLE_TESTING() +endif() + +if (PTUNIT) + enable_language(CXX) +endif() + +include_directories( + include + ${CMAKE_CURRENT_BINARY_DIR}/libipt/include +) + +if (PTUNIT) + include_directories( + ptunit/include + ) +endif (PTUNIT) + +if (FEATURE_ELF) + add_definitions( + -DFEATURE_ELF + ) +endif (FEATURE_ELF) + +if (SIDEBAND) + add_definitions( + -DFEATURE_SIDEBAND + ) + + include_directories( + ${CMAKE_CURRENT_BINARY_DIR}/sideband/include + ) +endif (SIDEBAND) + +if (PEVENT) + add_definitions( + -DFEATURE_PEVENT + ) + + include_directories( + pevent/include + ) +endif (PEVENT) + +if (NOT BUILD_SHARED_LIBS) + add_definitions( + # suppress libipt symbols import/export + # + -Dpt_export= + + # suppress libipt-sb symbols import/export + # + -Dpt_sb_export= + ) +endif (NOT BUILD_SHARED_LIBS) + +function(add_cflag_if_available option guard) + + check_c_compiler_flag(${option} ${guard}) + if (${guard}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${option}" PARENT_SCOPE) + endif (${guard}) + +endfunction(add_cflag_if_available) + + +if (CMAKE_HOST_WIN32) + include_directories( + include/windows + ) + + add_definitions( + # cl spells inline __inline in C + # + /Dinline=__inline + + # cl spells strtoll _strtoi64 + # + /Dstrtoll=_strtoi64 + + # cl spells strtoull _strtoui64 + # + /Dstrtoull=_strtoui64 + + # avoid annoying warnings about unsecure standard functions + # + /D_CRT_SECURE_NO_WARNINGS + ) + + # enable parallel build + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") + + if (DEVBUILD) + # compiler warnings + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") + + # warnings are errors + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") + endif (DEVBUILD) + + if (CMAKE_C_COMPILER_ID MATCHES "MSVC") + # prevent complaints on: + # - do {} while(0) constructs + # - int arr[] constructs + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4200") + + endif (CMAKE_C_COMPILER_ID MATCHES "MSVC") + +endif (CMAKE_HOST_WIN32) + +if (CMAKE_HOST_UNIX) + include_directories( + include/posix + ) + + add_definitions( + -D_POSIX_C_SOURCE=200809L + ) + + option(GCOV "Compile for GNU code coverage analysis." OFF) + + if (GCOV) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage") + + link_libraries(gcov) + endif (GCOV) + + if (FEATURE_THREADS) + link_libraries(pthread) + endif (FEATURE_THREADS) + + # set the language + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") + + # windows-like dll export model + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") + + if (DEVBUILD) + # compiler warnings + # + if (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Weverything") + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-disabled-macro-expansion") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-covered-switch-default") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-switch-enum") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-align") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-padded") + else (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic") + + add_cflag_if_available("-Wimplicit-fallthrough=5" + HAVE_C_Wimplicit_fallthrough) + add_cflag_if_available("-Wno-format-truncation" + HAVE_C_Wno_format_truncation) + endif (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + + # warnings are errors + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + endif (DEVBUILD) + +endif (CMAKE_HOST_UNIX) + + +function(add_ptunit_test_base name) + if (PTUNIT) + add_executable(${name} ${ARGN}) + target_link_libraries(${name} ptunit) + + add_test(NAME ${name} COMMAND ${name}) + endif (PTUNIT) +endfunction(add_ptunit_test_base) + +function(add_ptunit_c_test name) + add_ptunit_test_base(ptunit-${name} test/src/ptunit-${name}.c ${ARGN}) +endfunction(add_ptunit_c_test) + +function(add_ptunit_cpp_test name) + add_ptunit_test_base(ptunit-${name} test/src/ptunit-${name}.cpp ${ARGN}) +endfunction(add_ptunit_cpp_test) + +function(add_ptunit_libraries name) + if (PTUNIT) + target_link_libraries(ptunit-${name} ${ARGN}) + endif (PTUNIT) +endfunction(add_ptunit_libraries) + + +add_subdirectory(libipt) + +if (PTDUMP) + add_subdirectory(ptdump) +endif (PTDUMP) +if (PTXED) + add_subdirectory(ptxed) +endif (PTXED) +if (PTTC) + add_subdirectory(pttc) +endif (PTTC) +if (PTSEG) + add_subdirectory(ptseg) +endif (PTSEG) +if (PTUNIT) + add_subdirectory(ptunit) +endif (PTUNIT) +if (PTT) + add_subdirectory(test) +endif (PTT) +if (MAN) + add_subdirectory(doc/man) +endif (MAN) +if (SIDEBAND) + add_subdirectory(sideband) +endif (SIDEBAND) +if (PEVENT) + add_subdirectory(pevent) +endif (PEVENT) Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CONTRIBUTING ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/CONTRIBUTING Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,107 @@ +Contributing to this Project +============================ + +## License + +This project is licensed under the terms and conditions of the 3-Clause BSD +[LICENSE](LICENSE). By contributing to this project, you agree that you are +providing your contribution under the terms and conditions of that license. + + +## Patches + +We accept patches to this project as pull requests on GitHub. When submitting +patches, please keep each patch self-contained and as small as possible. Please +address one topic per patch series. Intermediate patches must build without +errors (with DEVBUILD=ON) and not introduce test fails. Please describe what +each patch is doing in its commit message. + +If you are contributing a patch series that addresses a GitHub Issue, the last +patch in the series should have 'fixes #' in its commit-message. + +If the patch series addresses a bug that is not tracked, please provide a +detailed description of the issue in the commit-message, ideally with a +description of the 'before' and 'after' behavior. + +The patch series should contain regression tests either as PTT tests or as +ptunit tests. Please make sure that all tests are passing. This may require +re-ordering patches to introduce the regression test after the issue was fixed. + +If the patch series adds a new feature, please make sure to add documentation. +Prior to submitting this type of contribution, it may be a good idea to first +discuss the feature as a GitHub issue or via email before implementing it. + +This project is using the Linux coding style. + + +## Sign Your Patch + +Please use the sign-off line at the end of each patch. Your signature +certifies that you wrote the patch or otherwise have the right to pass +it on as an open-source patch. The rules are pretty simple: if you can +certify the below (from +[developercertificate.org](http://developercertificate.org/)): + +``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` + +Then you just add a line to every git commit message: + + Signed-off-by: Joe Smith + +Use your real name (sorry, no pseudonyms or anonymous contributions.) + +If you set your `user.name` and `user.email` git configs, you can sign your +commit automatically with `git commit -s`. + + +## Reporting Issues + +If you want to report an issue or bug, please report them via the GitHub Issues +tracker. + +When reporting a bug, please provide the steps to reproduce it with the ptdump +and ptxed tools contained in the tree. Please include the command-line that was +used and the exact error message. You may also attach a trace file and the +binaries necessary for reproducing the issue or write a small PTT test to +demonstrate the issue. + +When providing trace snippets, please provide a few extra packets of context. + +Please also provide the processor family and model on which the trace was +recorded and the version of the decoder that was used to decode the trace. Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/LICENSE ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/LICENSE Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,24 @@ +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: + * 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. Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/README ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/README Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,78 @@ +Intel(R) Processor Trace Decoder Library +======================================== + +The Intel Processor Trace (Intel PT) Decoder Library is Intel's reference +implementation for decoding Intel PT. It can be used as a standalone library or +it can be partially or fully integrated into your tool. + +The library comes with a set of sample tools built on top of it and a test +system built on top of the sample tools. The samples demonstrate how to use the +library and may serve as a starting point for integrating the library into your +tool. + + +Contents +-------- + + README this file + + libipt A packet encoder/decoder library + + +Optional Contents and Samples +----------------------------- + + ptdump Example implementation of a packet dumper + + ptxed Example implementation of a trace disassembler + + ptseg A simple tool to find surrounding PSB packets + + pttc A trace test generator + + ptunit A simple unit test system + + sideband A sideband correlation library + + pevent A library for reading/writing Linux perf event records + + script A collection of scripts + + test A collection of tests + + include A collection of substitute headers + + doc A document describing the build + A document describing how to get started + A document describing the usage of the decoder library + A document describing how to capture trace + A document describing pttc + + doc/man Man pages for the encoder/decoder library + + +Dependencies +------------ + +We use cmake for building. + + cmake The cross-platform open-source build system. + http://www.cmake.org + + +Other packages you need for some of the above optional components. + + xed The Intel x86 instruction encoder and decoder. + https://github.com/intelxed/xed + + This is needed to build and run ptxed. + + yasm The Yasm Modular Assembler + http://github.com/yasm + + This is needed to run pttc. + + pandoc A universal document converter + http://pandoc.org + + This is needed for man pages. Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/getting_started.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/getting_started.md Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,95 @@ +Getting Started {#start} +======================== + + + +This chapter gives a brief introduction into the sample tools using one of +the tests as example. It assumes that you are already familiar with +Intel(R) Processor Trace (Intel PT) and that you already built the decoder +library and the sample tools. + +For detailed information about Intel PT, please refer to the respective +chapter in Volume 3 of the Intel Software Developer's Manual at +https://www.intel.com/sdm. + +Start by compiling the loop-tnt test. It consists of a small assembly program +with interleaved Intel PT directives: + + $ pttc test/src/loop-tnt.ptt + loop-tnt-ptxed.exp + loop-tnt-ptdump.exp + +This produces the following output files: + + loop-tnt.lst a yasm assembly listing file + loop-tnt.bin a raw binary file + loop-tnt.pt a Intel PT file + loop-tnt-ptxed.exp the expected ptxed output + loop-tnt-ptdump.exp the expected ptdump output + +The latter two files are generated based on the `@pt .exp()` directives +found in the `.ptt` file. They are used for automated testing. See +script/test.bash for details on that. + + +Use `ptdump` to dump the Intel PT packets: + + $ ptdump loop-tnt.pt + 0000000000000000 psb + 0000000000000010 fup 3: 0x0000000000100000, ip=0x0000000000100000 + 0000000000000017 mode.exec cs.d=0, cs.l=1 (64-bit mode) + 0000000000000019 psbend + 000000000000001b tnt8 !!. + 000000000000001c tip.pgd 3: 0x0000000000100013, ip=0x0000000000100013 + +The ptdump tool takes an Intel PT file as input and dumps the packets in +human-readable form. The number on the very left is the offset into the Intel +PT packet stream in hex. This is followed by the packet opcode and payload. + + +Use `ptxed` for reconstructing the execution flow. For this, you need the Intel +PT file as well as the corresponding binary image. You need to specify the load +address given by the org directive in the .ptt file when using a raw binary +file. + + $ ptxed --pt loop-tnt.pt --raw loop-tnt.bin:0x100000 + 0x0000000000100000 mov rax, 0x0 + 0x0000000000100007 jmp 0x10000d + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + 0x0000000000100009 add rax, 0x1 + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + 0x0000000000100009 add rax, 0x1 + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + [disabled] + +Ptxed prints disassembled instructions in execution order as well as status +messages enclosed in brackets. Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_build.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_build.md Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,202 @@ +Building the Intel(R) Processor Trace (Intel PT) Decoder Library and Samples {#build} +============================================================================ + + + +This chapter gives step-by-step instructions for building the library and the +sample tools using cmake. For detailed information on cmake, see +http://www.cmake.org. + + +## Configuration + +Besides the standard cmake options of build type and install directory, you will +find project-specific options for enabling optional features, optional +components, or optional build variants. + + +### Optional Components + +By default, only the decoder library is built. Other components can be enabled +by setting the respective cmake variable to ON. + +The following optional components are availble: + + PTUNIT A simple unit test framework. + A collection of unit tests for libipt. + + PTDUMP A packet dumper example. + + PTXED A trace disassembler example. + + PTTC A trace test generator. + + SIDEBAND A sideband correlation library + + PEVENT Support for the Linux perf_event sideband format. + + This feature requires the linux/perf_event.h header. + + +### Optional Features + +Features are enabled by setting the respective FEATURE_ cmake variable. +This causes the FEATURE_ pre-processor macro to be defined and may also +cause additional source files to be compiled and additional libraries to be +linked. + +Features are enabled globally and will be used by all components that support +the feature. The following features are supported: + + FEATURE_ELF Support for the ELF object format. + + This feature requires the elf.h header. + + + FEATURE_THREADS Support some amount of multi-threading. + + This feature makes image functions thread-safe. + + +### Build Variants + +Some build variants depend on libraries or header files that may not be +available on all supported platforms. + + GCOV Support for code coverage using libgcov. + + This build variant requires libgcov and is not availble + on Windows. + + + DEVBUILD Enable compiler warnings and turn them into errors. + + +### Version Settings + +The major, minor, and patch version numbers are set in the sources and +must be changed there. You can set the optional build number and an +arbitrary extension string. + + PT_VERSION_BUILD The optional build number. + + Defaults to zero (no build number). + + + PT_VERSION_EXT An arbitrary version extension string. + + Defaults to the empty string (no extension string). + + +### Dependencies + +In order to build ptxed, the location of the XED library and the XED header +files must be specified. + + XED_INCLUDE Path to the directory containing the XED header files. + + XED_LIBDIR Path to the directory containing the XED library. + + +When using XED from a PIN distribution, the respective directories are located +in `extras/xed2-/`. + +When using XED from github, the respective directories are located in the +install directory (default: kits/xed-install-date-os-cpu) and the header +files are located in include/xed. Please refer to the README in the XED +tree on how to build XED. + + +## Building on Linux``*`` and OS X``*`` + +We recommend out-of-tree builds. Start by creating the destination directory +and navigating into it: + + $ mkdir -p /path/to/dest + $ cd /path/to/dest + + +From here, call cmake with the top-level source directory as argument. You may +already pass some or all of the cmake variables as arguments to cmake. Without +arguments, cmake uses default values. + + $ cmake /path/to/src + + +If you have not passed values for XED_INCLUDE or XED_LIBDIR, you need to +configure them now if you want to build ptxed. You may also use this command to +change the configuration at any time later on. + + $ make edit_cache + + +After configuring the cmake cache, you can build either specific targets or +everything using one of: + + $ make + $ make + + +Use the help make target to learn about available make targets: + + $ make help + + + +## Building on Windows``*`` + +We recommend using the cmake GUI. After starting the cmake GUI, fill in the +following fields: + + Where is the source code: Path to the top-level source directory. + + Where to build the binaries: Path to the destination directory. + + +We recommend out-of-tree builds, so the build directory should not be the same +as or below the source directory. After this first configuration step, press +the + + Configure + +button and select the builder you want to use. + +Cmake will now populate the remainder of the window with configuration options. +Please make sure to specify at least XED_INCLUDE and XED_LIBDIR if you want to +build ptxed. After completing the configuration, press the + + Generate + +button. If you selected a Visual Studio generator in the first step, cmake will +now generate a Visual Studio solution. You can repeat this step if you want to +change the configuration later on. Beware that you always need to press the +Generate button after changing the configuration. + +In the case of a Visual Studio generator, you may now open the generated Visual +Studio solution and build the library and samples. Added: vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_capture.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b/doc/howto_capture.md Thu Oct 10 12:20:25 2019 (r353389) @@ -0,0 +1,628 @@ +Capturing Intel(R) Processor Trace (Intel PT) {#capture} +============================================= + + + +This chapter describes how to capture Intel PT for processing with libipt. For +illustration, we use the sample tools ptdump and ptxed. We assume that they are +configured with: + + * PEVENT=ON + * FEATURE_ELF=ON + + +## Capturing Intel PT on Linux + +Starting with version 4.1, the Linux kernel supports Intel PT via the perf_event +kernel interface. Starting with version 4.3, the perf user-space tool will +support Intel PT as well. + + +### Capturing Intel PT via Linux perf_event + +We start with setting up a perf_event_attr object for capturing Intel PT. The +structure is declared in `/usr/include/linux/perf_event.h`. + +The Intel PT PMU type is dynamic. Its value can be read from +`/sys/bus/event_source/devices/intel_pt/type`. + +~~~{.c} + struct perf_event_attr attr; + + memset(&attr, 0, sizeof(attr)); + attr.size = sizeof(attr); + attr.type = (); + + attr.exclude_kernel = 1; + ... +~~~ + + +Once all desired fields have been set, we can open a perf_event counter for +Intel PT. See `perf_event_open(2)` for details. In our example, we configure +it for tracing a single thread. + +The system call returns a file descriptor on success, `-1` otherwise. + +~~~{.c} + int fd; + + fd = syscall(SYS_perf_event_open, &attr, , -1, -1, 0); +~~~ + + +The Intel PT trace is captured in the AUX area, which has been introduced with +kernel 4.1. The DATA area contains sideband information such as image changes +that are necessary for decoding the trace. + +In theory, both areas can be configured as circular buffers or as linear buffers +by mapping them read-only or read-write, respectively. When configured as +circular buffer, new data will overwrite older data. When configured as linear +buffer, the user is expected to continuously read out the data and update the +buffer's tail pointer. New data that do not fit into the buffer will be +dropped. + +When using the AUX area, its size and offset have to be filled into the +`perf_event_mmap_page`, which is mapped together with the DATA area. This +requires the DATA area to be mapped read-write and hence configured as linear +buffer. In our example, we configure the AUX area as circular buffer. + +Note that the size of both the AUX and the DATA area has to be a power of two +pages. The DATA area needs one additional page to contain the +`perf_event_mmap_page`. + +~~~{.c} + struct perf_event_mmap_page *header; + void *base, *data, *aux; + + base = mmap(NULL, (1+2**n) * PAGE_SIZE, PROT_WRITE, MAP_SHARED, fd, 0); + if (base == MAP_FAILED) + return (); + + header = base; + data = base + header->data_offset; + + header->aux_offset = header->data_offset + header->data_size; + header->aux_size = (2**m) * PAGE_SIZE; + + aux = mmap(NULL, header->aux_size, PROT_READ, MAP_SHARED, fd, + header->aux_offset); + if (aux == MAP_FAILED) + return (); +~~~ + + +### Capturing Intel PT via the perf user-space tool + +Starting with kernel 4.3, the perf user-space tool can be used to capture Intel +PT with the `intel_pt` event. See tools/perf/Documentation in the Linux kernel +tree for further information. In this text, we describe how to use the captured +trace with the ptdump and ptxed sample tools. + +We start with capturing some Intel PT trace using the `intel_pt` event. Note +that when collecting system-wide (`-a`) trace, we need context switch events +(`--switch-events`) to decode the trace. See `perf-record(1)` for details. + +~~~{.sh} + $ perf record -e intel_pt//[uk] [--per-thread] [-a --switch-events] -T -- ls + [ perf record: Woken up 1 times to write data ] + [ perf record: Captured and wrote 0.384 MB perf.data ] +~~~ + + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Oct 10 13:19:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5A86B13720F; Thu, 10 Oct 2019 13:19:23 +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 46psB31HqHz3xZ6; Thu, 10 Oct 2019 13:19:23 +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 106E526FD; Thu, 10 Oct 2019 13:19:23 +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 x9ADJNXZ012796; Thu, 10 Oct 2019 13:19:23 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ADJLST012790; Thu, 10 Oct 2019 13:19:22 GMT (envelope-from br@FreeBSD.org) Message-Id: <201910101319.x9ADJLST012790@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:19:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r353391 - in vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca: . decoder decoder/build decoder/build/linux decoder/build/linux/rctdl_c_api_lib decoder/build/linux/ref_trace_decod... X-SVN-Group: vendor X-SVN-Commit-Author: br X-SVN-Commit-Paths: in vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca: . decoder decoder/build decoder/build/linux decoder/build/linux/rctdl_c_api_lib decoder/build/linux/ref_trace_decode_lib decoder/build/win-v... X-SVN-Commit-Revision: 353391 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 13:19:23 -0000 Author: br Date: Thu Oct 10 13:19:21 2019 New Revision: 353391 URL: https://svnweb.freebsd.org/changeset/base/353391 Log: Import OpenCSD -- an ARM CoreSight Trace Decode library. Git ID a1961c91b02a92f3c6ed8b145c636ac4c5565aca Sponsored by: DARPA, AFRL Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/.gitignore vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/HOWTO.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/LICENSE vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/README.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/TODO vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/makefile.dev (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/rctdl_c_api_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/rctdl_c_api_lib/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/ref_trace_decode_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/ref_trace_decode_lib/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/opencsd.props vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/rctdl_c_api_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/ref_trace_decode_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.sln vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/build_libs.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/doxygen_config.dox vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/external_custom.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/cs_trace_hw.jpg (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/decode_data_path_resp.jpg (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/dt_components.jpg (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/lib_usage.jpg (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/memacc_objs.jpg (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/prog_guide_generic_pkts.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/prog_guide/prog_guide_main.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/specs/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/specs/ARM Trace and Debug Snapshot file format 0v2.pdf (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/docs/test_progs.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/comp_attach_notifier_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/comp_attach_pt_t.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_code_follower.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_dcd_mngr.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_dcd_mngr_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_dcd_tree.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_dcd_tree_elem.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_error.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_error_logger.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_gen_elem_list.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_lib_dcd_register.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_msg_logger.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_pe_context.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/ocsd_version.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_component.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_core_arch_map.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_cs_config.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_frame_deformatter.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_gen_elem.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_pkt_decode_base.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_pkt_elem_base.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_pkt_proc_base.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_printable_elem.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/common/trc_ret_stack.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/i_dec/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/i_dec/trc_i_decode.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/i_dec/trc_idec_arminst.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_abs_typed_base_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_data_raw_in_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_data_rawframe_in_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_error_log_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_gen_elem_in_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_indexer_pkt_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_indexer_src_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_instr_decode_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_pkt_in_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_pkt_raw_in_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/interfaces/trc_tgt_mem_access_i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_base.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_bufptr.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_cache.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_cb.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_cb_if.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_file.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/mem_acc/trc_mem_acc_mapper.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/ocsd_c_api_cust_fact.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/ocsd_c_api_cust_impl.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/ocsd_c_api_custom.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/ocsd_c_api_types.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/c_api/opencsd_c_api.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/etmv3_decoder.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_cmp_cfg_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_dcd_mngr_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_pkt_decode_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_pkt_elem_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_pkt_proc_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv3/trc_pkt_types_etmv3.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/etmv4_decoder.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_dcd_mngr_etmv4i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4d.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_pkt_proc_etmv4.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ocsd_if_types.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ocsd_if_version.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/ptm_decoder.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_cmp_cfg_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_dcd_mngr_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_pkt_decode_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_pkt_elem_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_pkt_proc_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/ptm/trc_pkt_types_ptm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/stm_decoder.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_cmp_cfg_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_dcd_mngr_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_pkt_decode_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_pkt_elem_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_pkt_proc_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/stm/trc_pkt_types_stm.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/trc_gen_elem_types.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/opencsd/trc_pkt_types.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/gen_elem_printer.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/item_printer.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/pkt_printer_t.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/raw_frame_printer.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/trc_pkt_printers.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/include/pkt_printers/trc_print_fact.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/c_api/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/c_api/ocsd_c_api.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/c_api/ocsd_c_api_custom_obj.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/c_api/ocsd_c_api_custom_obj.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/c_api/ocsd_c_api_obj.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_cmp_cfg_etmv3.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_pkt_decode_etmv3.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_pkt_elem_etmv3.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_pkt_proc_etmv3.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_pkt_proc_etmv3_impl.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv3/trc_pkt_proc_etmv3_impl.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_etmv4_stack_elem.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_elem_etmv4d.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_proc_etmv4.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_proc_etmv4d_impl.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/i_dec/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/i_dec/trc_i_decode.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/i_dec/trc_idec_arminst.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_base.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_bufptr.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_cache.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_cb.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_file.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/mem_acc/trc_mem_acc_mapper.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_code_follower.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_dcd_tree.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_error.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_error_logger.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_gen_elem_list.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_lib_dcd_register.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_msg_logger.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ocsd_version.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/pkt_printers/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/pkt_printers/raw_frame_printer.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/pkt_printers/trc_print_fact.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ptm/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ptm/trc_cmp_cfg_ptm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ptm/trc_pkt_decode_ptm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ptm/trc_pkt_elem_ptm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/ptm/trc_pkt_proc_ptm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/stm/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/stm/trc_pkt_decode_stm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/stm/trc_pkt_elem_stm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/stm/trc_pkt_proc_stm.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_component.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_core_arch_map.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_frame_deformatter.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_frame_deformatter_impl.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_gen_elem.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_printable_elem.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/source/trc_ret_stack.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/auto-fdo/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/auto-fdo/autofdo.md vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/auto-fdo/record.sh (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/c_api_pkt_print_test/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/c_api_pkt_print_test/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/echo_test_dcd_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/echo_test_dcd_lib/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/mem_buffer_eg/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/mem_buffer_eg/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/snapshot_parser_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/snapshot_parser_lib/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/trc_pkt_lister/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/linux/trc_pkt_lister/makefile (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/c_api_pkt_print_test/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/ext_dcd_echo_test/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/mem-buffer-eg/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/mem-buffer-eg/mem-buffer-eg.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/mem-buffer-eg/mem-buffer-eg.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/snapshot_parser_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/snapshot_parser_lib/snapshot_parser_lib.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/snapshot_parser_lib/snapshot_parser_lib.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/trc_pkt_lister/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/trc_pkt_lister/trc_pkt_lister.vcxproj vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/build/win-vs2015/trc_pkt_lister/trc_pkt_lister.vcxproj.filters vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/c_api_echo_test/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/c_api_echo_test/ext_dcd_echo_test.c (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/c_api_echo_test/ext_dcd_echo_test.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/c_api_echo_test/ext_dcd_echo_test_fact.c (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/ext_dcd_test_eg/c_api_echo_test/ext_dcd_echo_test_fact.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/perf-test-scripts/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/perf-test-scripts/perf-setup-env.bash (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/perf-test-scripts/perf-test-report.bash (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/perf-test-scripts/perf-test-script.bash (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/run_pkt_decode_tests.bash (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/device_info.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/device_parser.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/ini_section_names.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/snapshot_info.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/snapshot_parser.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/snapshot_parser_util.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/snapshot_reader.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/ss_key_value_names.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/ss_to_dcdtree.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/include/trace_snapshots.h (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/device_info.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/device_parser.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/snapshot_parser.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/snapshot_parser_util.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/snapshot_reader.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/source/ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/source/c_api_pkt_print_test.c (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/source/mem_buff_demo.cpp (contents, props changed) vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/tests/source/trc_pkt_lister.cpp (contents, props changed) Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/.gitignore ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/.gitignore Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,76 @@ +# Object files +*.o +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ + +# Vc++ build files +*tlog +Debug/ +ipch/ +*.opensdf +*.sdf +*.suo +*.user +*.idb +*.pdb +*.exp +*.ilk + +# ignore emacs backup saves +*~ + +# ignore bin test directory +bin/ +*.log +ref_trace_decoder/build/win/rctdl_c_api_lib/Release/* +ref_trace_decoder/build/win/rctdl_c_api_lib/x64/Release/* +ref_trace_decoder/build/win/ref_trace_decode_lib/Release/* +ref_trace_decoder/build/win/ref_trace_decode_lib/x64/Release/* +ref_trace_decoder/tests/build/win/simple_pkt_print_c_api/Release/* +ref_trace_decoder/tests/build/win/simple_pkt_print_c_api/x64/Release/* +*.lastbuildstate +*.manifest +*.cache +ref_trace_decoder/docs/html/* +ref_trace_decoder/tests/build/win/simple_pkt_print_c_api/Debug-dll/* +ref_trace_decoder/tests/build/win/simple_pkt_print_c_api/x64/Debug-dll/* +ref_trace_decoder/tests/build/win/trc_pkt_lister/Debug-dll/* +ref_trace_decoder/tests/build/win/trc_pkt_lister/Release-dll/* +ref_trace_decoder/tests/build/win/trc_pkt_lister/x64/Debug-dll/* +ref_trace_decoder/tests/build/win/trc_pkt_lister/x64/Release-dll/* +*.bak +*.orig +decoder/docs/html/* +*.orig +*.VC.db +*.VC.VC.opendb +*.iobj +*.ipdb Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/HOWTO.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/HOWTO.md Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,636 @@ +HOWTO - using the library with perf {#howto_perf} +=================================== + +@brief Using command line perf and OpenCSD to collect and decode trace. + +This HOWTO explains how to use the perf cmd line tools and the openCSD +library to collect and extract program flow traces generated by the +CoreSight IP blocks on a Linux system. The examples have been generated using +an aarch64 Juno-r0 platform. All information is considered accurate and tested +using the latest version of the library and the `master` branch on the +[perf-opencsd github repository][1]. + + +On Target Trace Acquisition - Perf Record +----------------------------------------- +All the enhancement to the Perf tools that support the new `cs_etm` pmu have +not been upstreamed yet. To get the required functionality branch +`perf-opencsd-master` needs to be downloaded to the target system where +traces are to be collected. This branch is a vanilla upstream kernel +supplemented with modifications to the CoreSight framework and drivers to be +usable by the Perf core. The remaining out of tree patches are being +upstreamed incrementally. + +From there compiling the perf tools with `make -C tools/perf CORESIGHT=1` will +yield a `perf` executable that will support CoreSight trace collection. Note +that if traces are to be decompressed *off* target, there is no need to download +and compile the openCSD library (on the target). + +Before launching a trace run a sink that will collect trace data needs to be +identified. All CoreSight blocks identified by the framework are registed in +sysFS: + + + linaro@linaro-nano:~$ ls /sys/bus/coresight/devices/ + 20010000.etf 20040000.main_funnel 22040000.etm 22140000.etm + 230c0000.A53_funnel 23240000.etm replicator@20020000 20030000.tpiu + 20070000.etr 220c0000.A57_funnel 23040000.etm 23140000.etm 23340000.etm + + +CoreSight blocks are listed in the device tree for a specific system and +discovered at boot time. Since tracers can be linked to more than one sink, +the sink that will recieve trace data needs to be identified and given as an +option on the perf command line. Once a sink has been identify trace collection +can start. An easy and yet interesting example is the `uname` command: + + linaro@linaro-nano:~/kernel$ ./tools/perf/perf record -e cs_etm/@20070000.etr/ --per-thread uname + +This will generate a `perf.data` file where execution has been traced for both +user and kernel space. To narrow the field to either user or kernel space the +`u` and `k` options can be specified. For example the following will limit +traces to user space: + + + linaro@linaro-nano:~/kernel$ ./tools/perf/perf record -vvv -e cs_etm/@20070000.etr/u --per-thread uname + Problems setting modules path maps, continuing anyway... + ----------------------------------------------------------- + perf_event_attr: + type 8 + size 112 + { sample_period, sample_freq } 1 + sample_type IP|TID|IDENTIFIER + read_format ID + disabled 1 + exclude_kernel 1 + exclude_hv 1 + enable_on_exec 1 + sample_id_all 1 + ------------------------------------------------------------ + sys_perf_event_open: pid 11375 cpu -1 group_fd -1 flags 0x8 + ------------------------------------------------------------ + perf_event_attr: + type 1 + size 112 + config 0x9 + { sample_period, sample_freq } 1 + sample_type IP|TID|IDENTIFIER + read_format ID + disabled 1 + exclude_kernel 1 + exclude_hv 1 + mmap 1 + comm 1 + enable_on_exec 1 + task 1 + sample_id_all 1 + mmap2 1 + comm_exec 1 + ------------------------------------------------------------ + sys_perf_event_open: pid 11375 cpu -1 group_fd -1 flags 0x8 + mmap size 266240B + AUX area mmap length 131072 + perf event ring buffer mmapped per thread + Synthesizing auxtrace information + Linux + auxtrace idx 0 old 0 head 0x11ea0 diff 0x11ea0 + [ perf record: Woken up 1 times to write data ] + overlapping maps: + 7f99daf000-7f99db0000 0 [vdso] + 7f99d84000-7f99db3000 0 /lib/aarch64-linux-gnu/ld-2.21.so + 7f99d84000-7f99daf000 0 /lib/aarch64-linux-gnu/ld-2.21.so + 7f99db0000-7f99db3000 0 /lib/aarch64-linux-gnu/ld-2.21.so + failed to write feature 8 + failed to write feature 9 + failed to write feature 14 + [ perf record: Captured and wrote 0.072 MB perf.data ] + + linaro@linaro-nano:~/kernel$ ls -l ~/.debug/ perf.data + _-rw------- 1 linaro linaro 77888 Mar 2 20:41 perf.data + + /home/linaro/.debug/: + total 16 + drwxr-xr-x 2 linaro linaro 4096 Mar 2 20:40 [kernel.kallsyms] + drwxr-xr-x 2 linaro linaro 4096 Mar 2 20:40 [vdso] + drwxr-xr-x 3 linaro linaro 4096 Mar 2 20:40 bin + drwxr-xr-x 3 linaro linaro 4096 Mar 2 20:40 lib + +Trace data filtering +-------------------- +The amount of traces generated by CoreSight tracers is staggering, event for +the most simple trace scenario. Reducing trace generation to specific areas +of interest is desirable to save trace buffer space and avoid getting lost in +the trace data that isn't relevant. Supplementing the 'k' and 'u' options +described above is the notion of address filters. + +On CoreSight two types of address filter have been implemented - address range +and start/stop filter: + +**Address range filters:** +With address range filters traces are generated if the instruction pointer +falls within the specified range. Any work done by the CPU outside of that +range will not be traced. Address range filters can be specified for both +user and kernel space session: + + perf record -e cs_etm/@20070000.etr/k --filter 'filter 0xffffff8008562d0c/0x48' --per-thread uname + + perf record -e cs_etm/@20070000.etr/u --filter 'filter 0x72c/0x40@/opt/lib/libcstest.so.1.0' --per-thread ./main + +When dealing with kernel space trace addresses are typically taken in the +'System.map' file. In user space addresses are relocatable and can be +extracted from an objdump output: + + $ aarch64-linux-gnu-objdump -d libcstest.so.1.0 + ... + ... + 000000000000072c : <------------ Beginning of traces + 72c: d10083ff sub sp, sp, #0x20 + 730: b9000fe0 str w0, [sp,#12] + 734: b9001fff str wzr, [sp,#28] + 738: 14000007 b 754 + 73c: b9400fe0 ldr w0, [sp,#12] + 740: 11000800 add w0, w0, #0x2 + 744: b9000fe0 str w0, [sp,#12] + 748: b9401fe0 ldr w0, [sp,#28] + 74c: 11000400 add w0, w0, #0x1 + 750: b9001fe0 str w0, [sp,#28] + 754: b9401fe0 ldr w0, [sp,#28] + 758: 7100101f cmp w0, #0x4 + 75c: 54ffff0d b.le 73c + 760: b9400fe0 ldr w0, [sp,#12] + 764: 910083ff add sp, sp, #0x20 + 768: d65f03c0 ret + ... + ... + +Following the address the amount of byte is specified and if tracing in user +space, the full path to the binary (or library) being traced. + +**Start/Stop filters:** +With start/stop filters traces are generated when the instruction pointer is +equal to the start address. Incidentally traces stop being generated when the +insruction pointer is equal to the stop address. Anything that happens between +there to events is traced: + + perf record -e cs_etm/@20070000.etr/k --filter 'start 0xffffff800856bc50,stop 0xffffff800856bcb0' --per-thread uname + + perf record -vvv -e cs_etm/@20070000.etr/u --filter 'start 0x72c@/opt/lib/libcstest.so.1.0, \ + stop 0x40082c@/home/linaro/main' \ + --per-thread ./main + +**Limitation on address filters:** +The only limitation on address filters is the amount of address comparator +found on an implementation and the mutual exclusion between range and +start stop filters. As such the following example would _not_ work: + + perf record -e cs_etm/@20070000.etr/k --filter 'start 0xffffff800856bc50,stop 0xffffff800856bcb0, \ // start/stop + filter 0x72c/0x40@/opt/lib/libcstest.so.1.0' \ // address range + --per-thread uname + +Additional Trace Options +------------------------ +Additional options can be used during trace collection that add information to the captured trace. + +- Timestamps: These packets are added to the trace streams to allow correlation of different sources where tools support this. +- Cycle Counts: These packets are added to get a count of cycles for blocks of executed instructions. Adding cycle counts will considerably increase the amount of generated trace. +The relationship between cycle counts and executed instructions differs according to the trace protocol. +For example, the ETMv4 protocol will emit counts for groups of instructions according to a minimum count threshold. +Presently this threshold is fixed at 256 cycles for `perf record`. + +Command line options in `perf record` to use these features are part of the options for the `cs_etm` event: + + perf record -e cs_etm/timestamp,cycacc,@20070000.etr/ --per-thread uname + +At current version, `perf record` and `perf script` do not use this additional information. + +On Target Trace Collection +-------------------------- +The entire program flow will have been recorded in the `perf.data` file. +Information about libraries and executable is stored under `$HOME/.debug`: + + linaro@linaro-nano:~/kernel$ tree ~/.debug + .debug + ├── [kernel.kallsyms] + │   └── 0542921808098d591a7acba5a1163e8991897669 + │   └── kallsyms + ├── [vdso] + │   └── 551fbbe29579eb63be3178a04c16830b8d449769 + │   └── vdso + ├── bin + │   └── uname + │   └── ed95e81f97c4471fb2ccc21e356b780eb0c92676 + │   └── elf + └── lib + └── aarch64-linux-gnu + ├── ld-2.21.so + │   └── 94912dc5a1dc8c7ef2c4e4649d4b1639b6ebc8b7 + │   └── elf + └── libc-2.21.so + └── 169a143e9c40cfd9d09695333e45fd67743cd2d6 + └── elf + + 13 directories, 5 files + linaro@linaro-nano:~/kernel$ + + +All this information needs to be collected in order to successfully decode +traces off target: + + linaro@linaro-nano:~/kernel$ tar czf uname.trace.tgz perf.data ~/.debug + + +Note that file `vmlinux` should also be added to the bundle if kernel traces +have also been collected. + + +Off Target OpenCSD Compilation +------------------------------ +The openCSD library is not part of the perf tools. It is available on +[github][1] and needs to be compiled before the perf tools. Checkout the +required branch/tag version into a local directory. + + linaro@t430:~/linaro/coresight$ git clone -b v0.8 https://github.com/Linaro/OpenCSD.git my-opencsd + Cloning into 'OpenCSD'... + remote: Counting objects: 2063, done. + remote: Total 2063 (delta 0), reused 0 (delta 0), pack-reused 2063 + Receiving objects: 100% (2063/2063), 2.51 MiB | 1.24 MiB/s, done. + Resolving deltas: 100% (1399/1399), done. + Checking connectivity... done. + linaro@t430:~/linaro/coresight$ ls my-opencsd + decoder LICENSE README.md HOWTO.md TODO + +Once the source code has been acquired compilation of the openCSD library can +take place. For Linux two options are available, LINUX and LINUX64, based on +the host's (which has nothing to do with the target) architecture: + + linaro@t430:~/linaro/coresight/$ cd my-opencsd/decoder/build/linux/ + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ ls + makefile rctdl_c_api_lib ref_trace_decode_lib + + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ make LINUX64=1 DEBUG=1 + ... + ... + + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ ls ../../lib/linux64/dbg/ + libopencsd.a libopencsd_c_api.a libopencsd_c_api.so libopencsd.so + +From there the header file and libraries need to be installed on the system, +something that requires root privileges. The default installation path is +/usr/include/opencsd for the header files and /usr/lib/ for the libraries: + + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ sudo make install + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ ls -l /usr/include/opencsd + total 60 + drwxr-xr-x 2 root root 4096 Dec 12 10:19 c_api + drwxr-xr-x 2 root root 4096 Dec 12 10:19 etmv3 + drwxr-xr-x 2 root root 4096 Dec 12 10:19 etmv4 + -rw-r--r-- 1 root root 28049 Dec 12 10:19 ocsd_if_types.h + drwxr-xr-x 2 root root 4096 Dec 12 10:19 ptm + drwxr-xr-x 2 root root 4096 Dec 12 10:19 stm + -rw-r--r-- 1 root root 7264 Dec 12 10:19 trc_gen_elem_types.h + -rw-r--r-- 1 root root 3972 Dec 12 10:19 trc_pkt_types.h + + linaro@t430:~/linaro/coresight/my-opencsd/decoder/build/linux$ ls -l /usr/lib/libopencsd* + -rw-r--r-- 1 root root 598720 Dec 12 10:19 /usr/lib/libopencsd_c_api.so + -rw-r--r-- 1 root root 4692200 Dec 12 10:19 /usr/lib/libopencsd.so + +A "clean_install" target is also available so that openCSD installed files can +be removed from a system. Going forward the goal is to have the openCSD library +packaged as a Debian or RPM archive so that it can be installed from a +distribution without having to be compiled. + + +Off Target Perf Tools Compilation +--------------------------------- +As mentionned above the openCSD library is not part of the perf tools' code base +and needs to be installed on a system prior to compilation. Information about +the status of the openCSD library on a system is given at compile time by the +perf tools build script: + + linaro@t430:~/linaro/linux-kernel$ make CORESIGHT=1 VF=1 -C tools/perf + Auto-detecting system features: + ... dwarf: [ on ] + ... dwarf_getlocations: [ on ] + ... glibc: [ on ] + ... gtk2: [ on ] + ... libaudit: [ on ] + ... libbfd: [ OFF ] + ... libelf: [ on ] + ... libnuma: [ OFF ] + ... numa_num_possible_cpus: [ OFF ] + ... libperl: [ on ] + ... libpython: [ on ] + ... libslang: [ on ] + ... libcrypto: [ on ] + ... libunwind: [ OFF ] + ... libdw-dwarf-unwind: [ on ] + ... zlib: [ on ] + ... lzma: [ OFF ] + ... get_cpuid: [ on ] + ... bpf: [ on ] + ... libopencsd: [ on ] <------- + + +At the end of the compilation a new perf binary is available in `tools/perf/`: + + linaro@t430:~/linaro/linux-kernel$ ldd tools/perf/perf + linux-vdso.so.1 => (0x00007fff135db000) + libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f15f9176000) + librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f15f8f6e000) + libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f15f8c64000) + libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f15f8a60000) + libopencsd_c_api.so => /usr/lib/libopencsd_c_api.so (0x00007f15f884e000) <------- + libelf.so.1 => /usr/lib/x86_64-linux-gnu/libelf.so.1 (0x00007f15f8635000) + libdw.so.1 => /usr/lib/x86_64-linux-gnu/libdw.so.1 (0x00007f15f83ec000) + libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f15f81c5000) + libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007f15f7e38000) + libperl.so.5.22 => /usr/lib/x86_64-linux-gnu/libperl.so.5.22 (0x00007f15f7a5d000) + libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f15f7693000) + libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f15f7104000) + libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f15f6eea000) + /lib64/ld-linux-x86-64.so.2 (0x0000559b88038000) + libopencsd.so => /usr/lib/libopencsd.so (0x00007f15f6c62000) <------- + libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f15f68df000) + libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f15f66c9000) + liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f15f64a6000) + libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f15f6296000) + libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f15f605e000) + libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f15f5e5a000) + + +Additional debug output from the decoder can be compiled in by setting the +`CSTRACE_RAW` environment variable. Setting this to `packed` gets trace frame +output as follows:- + + Frame Data; Index 576; RAW_PACKED; d6 d6 d6 d6 d6 d6 d6 d6 fc fb d6 d6 d6 d6 e0 7f + Frame Data; Index 576; ID_DATA[0x14]; d7 d6 d7 d6 d7 d6 d7 d6 fd fb d7 d6 d7 d6 e0 + +Set to any other value will remove the RAW_PACKED lines. + +Working with a debug version of the openCSD library +--------------------------------------------------- +When compiling the perf tools it is possible to reference another version of +the openCSD library than the one installed on the system. This is useful when +working with multiple development trees or having the desire to keep system +libraries intact. Two environment variable are available to tell the perf tools +build script where to get the header file and libraries, namely CSINCLUDES and +CSLIBS: + + linaro@t430:~/linaro/linux-kernel$ export CSINCLUDES=~/linaro/coresight/my-opencsd/decoder/include/ + linaro@t430:~/linaro/linux-kernel$ export CSLIBS=~/linaro/coresight/my-opencsd/decoder/lib/builddir/ + linaro@t430:~/linaro/linux-kernel$ make CORESIGHT=1 VF=1 -C tools/perf + +This will have the effect of compiling and linking against the provided library. +Since the system's openCSD library is in the loader's search patch the +LD_LIBRARY_PATH environment variable needs to be set. + + linaro@t430:~/linaro/linux-kernel$ export LD_LIBRARY_PATH=$CSLIBS + + +Trace Decoding with Perf Report +------------------------------- +Before working with custom traces it is suggested to use a trace bundle that +is known to be working properly. A sample bundle has been made available +here [2]. Trace bundles can be extracted anywhere and have no dependencies on +where the perf tools and openCSD library have been compiled. + + linaro@t430:~/linaro/coresight$ mkdir sept20 + linaro@t430:~/linaro/coresight$ cd sept20 + linaro@t430:~/linaro/coresight/sept20$ wget http://people.linaro.org/~mathieu.poirier/openCSD/uname.v4.user.sept20.tgz + linaro@t430:~/linaro/coresight/sept20$ md5sum uname.v4.user.sept20.tgz + f53f11d687ce72bdbe9de2e67e960ec6 uname.v4.user.sept20.tgz + linaro@t430:~/linaro/coresight/sept20$ tar xf uname.v4.user.sept20.tgz + linaro@t430:~/linaro/coresight/sept20$ ls -la + total 1312 + drwxrwxr-x 3 linaro linaro 4096 Mar 3 10:26 . + drwxrwxr-x 5 linaro linaro 4096 Mar 3 10:13 .. + drwxr-xr-x 7 linaro linaro 4096 Feb 24 12:21 .debug + -rw------- 1 linaro linaro 78016 Feb 24 12:21 perf.data + -rw-rw-r-- 1 linaro linaro 1245881 Feb 24 12:25 uname.v4.user.sept20.tgz + +Perf is expecting files related to the trace capture (`perf.data`) to be located +under `~/.debug` [3]. This example will remove the current `~/.debug` directory +to be sure everything is clean. + + linaro@t430:~/linaro/coresight/sept20$ rm -rf ~/.debug + linaro@t430:~/linaro/coresight/sept20$ cp -dpR .debug ~/ + linaro@t430:~/linaro/coresight/sept20$ ../perf-opencsd-master/tools/perf/perf report --stdio + + # To display the perf.data header info, please use --header/--header-only options. + # + # + # Total Lost Samples: 0 + # + # Samples: 0 of event 'cs_etm//u' + # Event count (approx.): 0 + # + # Children Self Command Shared Object Symbol + # ........ ........ ....... ............. ...... + # + + + # Samples: 0 of event 'dummy:u' + # Event count (approx.): 0 + # + # Children Self Command Shared Object Symbol + # ........ ........ ....... ............. ...... + # + + + # Samples: 115K of event 'instructions:u' + # Event count (approx.): 522009 + # + # Children Self Command Shared Object Symbol + # ........ ........ ....... ................ ...................... + # + 4.13% 4.13% uname libc-2.21.so [.] 0x0000000000078758 + 3.81% 3.81% uname libc-2.21.so [.] 0x0000000000078e50 + 2.06% 2.06% uname libc-2.21.so [.] 0x00000000000fcaf4 + 1.65% 1.65% uname libc-2.21.so [.] 0x00000000000fcae4 + 1.59% 1.59% uname ld-2.21.so [.] 0x000000000000a7f4 + 1.50% 1.50% uname libc-2.21.so [.] 0x0000000000078e40 + 1.43% 1.43% uname libc-2.21.so [.] 0x00000000000fcac4 + 1.31% 1.31% uname libc-2.21.so [.] 0x000000000002f0c0 + 1.26% 1.26% uname ld-2.21.so [.] 0x0000000000016888 + 1.24% 1.24% uname libc-2.21.so [.] 0x0000000000078e7c + 1.24% 1.24% uname libc-2.21.so [.] 0x00000000000fcab8 + ... + +Additional data can be obtained, which contains a dump of the trace packets received using the command + + mjl@ubuntu-vbox:./perf-opencsd-master/coresight/tools/perf/perf report --stdio --dump + +resulting a large amount of data, trace looking like:- + + 0x618 [0x30]: PERF_RECORD_AUXTRACE size: 0x11ef0 offset: 0 ref: 0x4d881c1f13216016 idx: 0 tid: 15244 cpu: -1 + + . ... CoreSight ETM Trace data: size 73456 bytes + + 0: I_ASYNC : Alignment Synchronisation. + 12: I_TRACE_INFO : Trace Info. + 17: I_TRACE_ON : Trace On. + 18: I_ADDR_CTXT_L_64IS0 : Address & Context, Long, 64 bit, IS0.; Addr=0x0000007F89F24D80; Ctxt: AArch64,EL0, NS; + 28: I_ATOM_F6 : Atom format 6.; EEEEEEEEEEEEEEEEEEEEEEEE + 29: I_ATOM_F6 : Atom format 6.; EEEEEEEEEEEEEEEEEEEEEEEE + 30: I_ATOM_F6 : Atom format 6.; EEEEEEEEEEEEEEEEEEEEEEEE + 32: I_ATOM_F6 : Atom format 6.; EEEEN + 33: I_ATOM_F1 : Atom format 1.; E + 34: I_EXCEPT : Exception.; Data Fault; Ret Addr Follows; + 36: I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0x0000007F89F2832C; + 45: I_ADDR_CTXT_L_64IS0 : Address & Context, Long, 64 bit, IS0.; Addr=0xFFFFFFC000083400; Ctxt: AArch64,EL1, NS; + 56: I_TRACE_ON : Trace On. + 57: I_ADDR_CTXT_L_64IS0 : Address & Context, Long, 64 bit, IS0.; Addr=0x0000007F89F2832C; Ctxt: AArch64,EL0, NS; + 68: I_ATOM_F3 : Atom format 3.; NEE + 69: I_ATOM_F3 : Atom format 3.; NEN + 70: I_ATOM_F3 : Atom format 3.; NNE + 71: I_ATOM_F5 : Atom format 5.; ENENE + 72: I_ATOM_F5 : Atom format 5.; NENEN + 73: I_ATOM_F5 : Atom format 5.; ENENE + 74: I_ATOM_F5 : Atom format 5.; NENEN + 75: I_ATOM_F5 : Atom format 5.; ENENE + 76: I_ATOM_F3 : Atom format 3.; NNE + 77: I_ATOM_F3 : Atom format 3.; NNE + 78: I_ATOM_F3 : Atom format 3.; NNE + 80: I_ATOM_F3 : Atom format 3.; NNE + 81: I_ATOM_F3 : Atom format 3.; ENN + 82: I_EXCEPT : Exception.; Data Fault; Ret Addr Follows; + 84: I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0x0000007F89F283F0; + 93: I_ADDR_CTXT_L_64IS0 : Address & Context, Long, 64 bit, IS0.; Addr=0xFFFFFFC000083400; Ctxt: AArch64,EL1, NS; + 104: I_TRACE_ON : Trace On. + 105: I_ADDR_CTXT_L_64IS0 : Address & Context, Long, 64 bit, IS0.; Addr=0x0000007F89F283F0; Ctxt: AArch64,EL0, NS; + 116: I_ATOM_F5 : Atom format 5.; NNNNN + 117: I_ATOM_F5 : Atom format 5.; NNNNN + + +Trace Decoding with Perf Script +------------------------------- +Working with perf scripts needs more command line options but yields +interesting results. + + linaro@t430:~/linaro/coresight/sept20$ export EXEC_PATH=/home/linaro/coresight/perf-opencsd-master/tools/perf/ + linaro@t430:~/linaro/coresight/sept20$ export SCRIPT_PATH=$EXEC_PATH/scripts/python/ + linaro@t430:~/linaro/coresight/sept20$ export XTOOL_PATH=/your/aarch64/toolchain/path/bin/ + linaro@t430:~/linaro/coresight/sept20$ ../perf-opencsd-master/tools/perf/perf --exec-path=${EXEC_PATH} script --script=python:${SCRIPT_PATH}/cs-trace-disasm.py -- -d ${XTOOL_PATH}/aarch64-linux-gnu-objdump + + 7f89f24d80: 910003e0 mov x0, sp + 7f89f24d84: 94000d53 bl 7f89f282d0 + 7f89f282d0: d11203ff sub sp, sp, #0x480 + 7f89f282d4: a9ba7bfd stp x29, x30, [sp,#-96]! + 7f89f282d8: 910003fd mov x29, sp + 7f89f282dc: a90363f7 stp x23, x24, [sp,#48] + 7f89f282e0: 9101e3b7 add x23, x29, #0x78 + 7f89f282e4: a90573fb stp x27, x28, [sp,#80] + 7f89f282e8: a90153f3 stp x19, x20, [sp,#16] + 7f89f282ec: aa0003fb mov x27, x0 + 7f89f282f0: 910a82e1 add x1, x23, #0x2a0 + 7f89f282f4: a9025bf5 stp x21, x22, [sp,#32] + 7f89f282f8: a9046bf9 stp x25, x26, [sp,#64] + 7f89f282fc: 910102e0 add x0, x23, #0x40 + 7f89f28300: f800841f str xzr, [x0],#8 + 7f89f28304: eb01001f cmp x0, x1 + 7f89f28308: 54ffffc1 b.ne 7f89f28300 + 7f89f28300: f800841f str xzr, [x0],#8 + 7f89f28304: eb01001f cmp x0, x1 + 7f89f28308: 54ffffc1 b.ne 7f89f28300 + 7f89f28300: f800841f str xzr, [x0],#8 + 7f89f28304: eb01001f cmp x0, x1 + 7f89f28308: 54ffffc1 b.ne 7f89f28300 + +Kernel Trace Decoding +--------------------- + +When dealing with kernel space traces the vmlinux file has to be communicated +explicitely to perf using the "--vmlinux" command line option: + + linaro@t430:~/linaro/coresight/sept20$ ../perf-opencsd-master/tools/perf/perf report --stdio --vmlinux=./vmlinux + ... + ... + linaro@t430:~/linaro/coresight/sept20$ ../perf-opencsd-master/tools/perf/perf script --vmlinux=./vmlinux + +When using scripts things get a little more convoluted. Using the same example +an above but for traces but for kernel traces, the command line becomes: + + linaro@t430:~/linaro/coresight/sept20$ export EXEC_PATH=/home/linaro/coresight/perf-opencsd-master/tools/perf/ + linaro@t430:~/linaro/coresight/sept20$ export SCRIPT_PATH=$EXEC_PATH/scripts/python/ + linaro@t430:~/linaro/coresight/sept20$ export XTOOL_PATH=/your/aarch64/toolchain/path/bin/ + linaro@t430:~/linaro/coresight/sept20$ ../perf-opencsd-master/tools/perf/perf --exec-path=${EXEC_PATH} script \ + --vmlinux=./vmlinux \ + --script=python:${SCRIPT_PATH}/cs-trace-disasm.py -- \ + -d ${XTOOLS_PATH}/aarch64-linux-gnu-objdump \ + -k ./vmlinux + ... + ... + +The option "--vmlinux=./vmlinux" is interpreted by the "perf script" command +the same way it if for "perf report". The option "-k ./vmlinux" is dependant +on the script being executed and has no related to the "--vmlinux", though it +is highly advised to keep them synchronized. + + +Perf Test Environment Scripts +----------------------------- + +The decoder library comes with a number of `bash` scripts that ease the setting up of the +offline build and test environment for perf, and executing tests. + +These scripts can be found in + + decoder/tests/perf-test-scripts + +There are three scripts provided: + +- `perf-setup-env.bash` : this sets up all the environment variables mentioned above. +- `perf-test-report.bash` : this runs `perf report` - using the environment setup by `perf-setup-env.bash` +- `perf-test-script.bash` : this runs `perf script` - using the environment setup by `perf-setup-env.bash` + +Use as follows:- + +1. Prior to building perf, edit `perf-setup-env.bash` to conform to your environment. There are four lines at the top of the file that will require editing. + +2. Execute the script using the command + + source perf-setup-env.bash + + This will set up all the environment variables mentioned in the sections on building and running + perf above, and these are used by the `perf-test...` scripts to run the tests. + +3. Build perf as described above. +4. Follow the instructions for downloading the test capture, or create a capture from your target. +5. Copy the `perf-test...` scripts into the capture data directory -> the one that contains `perf.data`. + +6. The scripts can now be run. No options are required for the default operation, but any command line options will be added to the perf report / perf script command line. + +e.g. + + ./perf-test-report.bash --dump + +will add the --dump option to the end of the command line and run + + ${PERF_EXEC_PATH}/perf report --stdio --dump + + +Generating coverage files for Feedback Directed Optimization: AutoFDO +--------------------------------------------------------------------- + +See autofdo.md (@ref AutoFDO) for details and scripts. + + +The Linaro CoreSight Team +------------------------- +- Mike Leach +- Mathieu Poirier + + +One Last Thing +-------------- +We welcome help on this project. If you would like to add features or help +improve the way things work, we want to hear from you. + +Best regards, +*The Linaro CoreSight Team* + +-------------------------------------- +[1]: https://github.com/Linaro/perf-opencsd "perf-opencsd Github" + +[2]: http://people.linaro.org/~mathieu.poirier/openCSD/uname.v4.user.sept20.tgz + +[3]: Get in touch with us if you know a way to change this. Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/LICENSE ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/LICENSE Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,30 @@ + BSD 3Clause License + http://directory.fsf.org/wiki/License:BSD_3Clause + +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)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 ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/README.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/README.md Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,182 @@ +OpenCSD - An open source CoreSight(tm) Trace Decode library {#mainpage} +=========================================================== + +This library provides an API suitable for the decode of ARM(r) CoreSight(tm) trace streams. + +The library will decode formatted trace in three stages: + +1. *Frame Deformatting* : Removal CoreSight frame formatting from individual trace streams. +2. *Packet Processing* : Separate individual trace streams into discrete packets. +3. *Packet Decode* : Convert the packets into fully decoded trace describing the program flow on a core. + +The library is implemented in C++ with an optional "C" API. + +Library Versioning +------------------ + +From version 0.4, library versioning will use a semantic versioning format +(per http://semver.org) of the form _Major.minor.patch_ (M.m.p). + +Internal library version calls, documentation and git repository will use this format moving forwards. +Where a patch version is not quoted, or quoted as .x then comments will apply to the entire release. + +Releases will be at M.m.0, with patch version incremented for bugfixes or documentation updates. + +Releases will appear on the master branch in the git repository with an appropriate version tag. + +CoreSight Trace Component Support. +---------------------------------- + +_Current Version 0.12.0_ + +### Current support: + +- ETMv4 (v4.4) instruction trace - packet processing and packet decode. +- PTM (v1.1) instruction trace - packet processing and packet decode. +- ETMv3 (v3.5) instruction trace - packet processing and packet decode. +- ETMv3 (v3.5) data trace - packet processing. +- STM (v1.1) software trace - packet processing and packet decode. + +- External Decoders - support for addition of external / custom decoders into the library. + +### Support to be added: + +- ITM software trace - packet processing and decode. +- ETMv3 data trace - packet decode. +- ETMv4 data trace - packet processing and decode. + +Note: for ITM and STM, packet decode is combining Master+Channel+Marker+Payload packets into a single generic +output packet. + + +Note on the Git Repository. +--------------------------- + +This git repository for OpenCSD contains only source for the OpenCSD decoder library. +From version 0.4, releases appear as versioned tags on the master branch. + +From version 0.7.4, the required updates to CoreSight drivers and perf, that are not +currently upstream in the linux kernel tree, are now contained in a separate +repository to be found at: + +https://github.com/Linaro/perf-opencsd + + +Documentation +------------- + +API Documentation is provided inline in the source header files, which use the __doxygen__ standard mark-up. +Run `doxygen` on the `./doxygen_config.dox` file located in the `./docs` directory.. + + doxygen ./doxygen_config.dox + +This will produce the documentation in the `./docs/html` directory. The doxygen configuration also includes +the `*.md` files as part of the documentation. + +Application Programming using the Library +----------------------------------------- + +See the [programmers guide](@ref prog_guide) for details on usage of the library in custom applications. +(`./docs/prog_guide/prog_guide_main.md`). + + +Building and Installing the Library +----------------------------------- + +See [build_libs.md](@ref build_lib) in the `./docs` directory for build details. + +The linux build makefile now contains options to install the library for a linux environment. + + +How the Library is used in Linux `perf` +--------------------------------------- +The library and additional infrastructure for programming CoreSight components has been integrated +with the standard linux perfomance analysis tool `perf`. + + +See [HOWTO.md](@ref howto_perf) for details. + +How to use the Library, perf and Trace for AutoFDO +-------------------------------------------------- +Capturing trace using perf and decoding using the library can +generate profiles for AutoFDO. + +See [autofdo.md](@ref AutoFDO) for details and scripts. + +(`./tests/auto-fdo/autofdo.md`). + + +Version and Modification Information +==================================== + +- _Version 0.001_: Library development - tested with `perf` tools integration - BKK16, 8th March 2016 +- _Version 0.002_: Library development - added in PTM decoder support. Restructure header dir, replaced ARM rctdl prefix with opencsd/ocsd. +- _Version 0.003_: Library development - added in ETMv3 instruction decoder support. +- _Version 0.4_ : Library development - updated decode tree and C-API for generic decoder handling. Switch to semantic versioning. +- _Version 0.4.1_: Minor Update & Bugfixes - fix to PTM decoder, ID checking on test program, adds NULL_TS support in STM packet processor. +- _Version 0.4.2_: Minor Update - Update to documentation for perf usage in 4.8 kernel branch. +- _Version 0.5.0_: Library Development - external decoder support. STM full decode. +- _Version 0.5.1_: Minor Update & Bugfixes - Update HOWTO for kernel 4.9. Build fixes for parallel builds +- _Version 0.5.2_: Minor Update & Bugfixes - Update trace info packet string o/p + Cycle count packet bugfixes. +- _Version 0.5.3_: Doc update for using AutoFDO with ETM and additional timestamp and cycle count options. +- _Version 0.5.4_: Updates: X-compile for arm/arm64. Remove deprecated VS2010 builds. Bugfix: GCC inline semantics in debug build. +- _Version 0.6.0_: Packet printers moved from tests into the main library. C++ and C APIs updated to allow clients to use them. + Update to allow perf to insert barrier packets (4xFSYNC) which the decoder can be made to use to reset the decode state. +- _Version 0.6.1_: Bugfix: instruction follower bug on A32 branch to T32. +- _Version 0.7.0_: Add handling for trace return stack feature to ETMv4 and PTM trace. +- _Version 0.7.1_: Bugfix: ETMv3 packet processor. +- _Version 0.7.2_: Bugfix: ETMv4 decoder - fix exact match packet address follower. +- _Version 0.7.3_: Bugfix: PTM decoder - issues with initialisation and ASYNC detection. +- _Version 0.7.4_: Notification of change of repository for perf extensions. gcc 6.x build fixes. +- _Version 0.7.5_: Bugfix: ETMv4 decoder memory leak. Linux build update - header dependencies force rebuild. +- _Version 0.8.0_: Header restructure and build update to enable linux version to install library and C-API headers in standard locations. + Library output naming changed from 'cstraced' to 'opencsd'. +- _Version 0.8.1_: Minor updates: Use install tool to copy headers. Changes to HOWTO for perf usage. +- _Version 0.8.2_: Bugfix: C++ init errors fixed for CLANG build process. +- _Version 0.8.3_: Bugfix: ETMv4 decoder issues fixed. +- _Version 0.8.4_: build: makefile updates and improvements to get build process compatible with Debian packaging. +- _Version 0.9.0_: Performance improvements for perf: Additional info in instruction range output packet. Caching memory accesses. + Added Programmers guide to documentation. +- _Version 0.9.1_: Bugfix: Crash during decode when first memory access is to address where no image provided. +- _Version 0.9.2_: Bugfix: ETMv4: Incorrect Exception number output for Genric exception packets. + AutoFDO: update documentation for AutoFDO usage and add in "record.sh" script +- _Version 0.9.3_: Bugfix: Test snapshot library not handling 'offset' parameters in dump file sections. + Install: ocsd_if_version.h moved to opencsd/include to allow installation on OS & use in compiling client apps. +- _Version 0.10.0_: __Updates__: Add additional information about the last instruction to the generic output packet. + __Docs__: update docs for updated output packet. + __Bugfix__: typecast removed from OCSD_VER_NUM in ocsd_if_version.h to allow use in C pre-processor. + __Bugfix__: ETMV4: Interworking ISA change between A32-T32 occasionally missed during instruction decode. +- _Version 0.10.1_: __Updates__: Build update - allow multi-thread make (make -j). + __Docs__: Minor update to AutoFDO documentation. +- _Version 0.11.0_: __Update__: ETM v4 decoder updated to support ETM version up to v4.4 + __Update__: Memory access callback function - added new callback signature to provide TraceID to client when requesting memory. + __Update__: Created new example program to demonstrate using memory buffer in APIs. + __Bugfix__: Typos in docs and source. + __Bugfix__: Memory accessor - validate callback return values. +- _Version 0.11.1_: __Update__: build:- change -fpic to -fPIC to allow Debian build on sparc. + __Bugfix__: build:- remove unused variable +- _Version 0.11.2_: __Update__: docs:- HOWTO.md update to match new perf build requirements. + __Bugfix__: Minor spelling typos fixed. +- _Version 0.12.0_: __Update__: Frame deformatter - TPIU FSYNC and HSYNC support added. + __Update__: ETM v4: Bugfix & clarification on Exception trace handling. Where exception occurs at a branch target before any instructions + have been executed, the preferred return address is also the target address of the branch instruction. This case now includes as specific flag in + the packet. Additionally any context change associated with this target address was being applied incorrectly. + __Update__: Core / Architecture mapping to core names as used by test programs / snapshots updated to include additional recent ARM cores. + __Update__: Docs: Update to reflect new exception flag. Update test program example to reflect latest output. + __Bugfix__: ETM v4: Valid trace info packet was not handled correctly (0x01, 0x00). + __Bugfix__: ETM v4: Error messaging on commit stack overflow. + + +Licence Information +=================== + +This library is licensed under the [BSD three clause licence.](http://directory.fsf.org/wiki/License:BSD_3Clause) + +A copy of this license is in the `LICENCE` file included with the source code. + +Contact +======= + +Using the github site: https://github.com/Linaro/OpenCSD + +Mailing list: coresight@lists.linaro.org Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/TODO ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/TODO Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,19 @@ +* ETMv4/PTM - decoder updates to handle advanced configuration. +-> Certain (currently unused by perf / current hardware) configuration settings + can alter the format of the trace output. One example is Return Stack - + settable in the control registers for PTM/ETMv4, and removes some inline + addresses. Decoder must use a follower to correctly trace when this is set. + +* ITM packet processing and decode. +-> ITM is primarily an M class SW trace module. I wouldn't expect to see it on + systems with STM, unless a companion M class was present. + +*Data trace - ETMv4 / ETMv3 +-> Differing solutions to data trace in v4/v3 - v4 is separate trace stream + completely, output at trace ID +1. ETMv3 is inline with + the instruction trace. + +Cortex-A cores do not support this architecturally. On R and M profile cores it +is an option. There are scenarios in future that could see linux on R cores, plus +on something like Juno it is possible to switch on trace for the SCP +(M class processor). So at some point data trace may be required. Added: vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/opencsd/a1961c91b02a92f3c6ed8b145c636ac4c5565aca/decoder/build/linux/makefile Thu Oct 10 13:19:21 2019 (r353391) @@ -0,0 +1,200 @@ +######################################################## +# Copyright 2015 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. +# +################################################################################# +# OpenCSD - master makefile for libraries and tests +# +# command line options +# DEBUG=1 create a debug build +# + +# Set project root - relative to build makefile +ifeq ($(OCSD_ROOT),) +OCSD_ROOT := $(shell echo $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) | sed 's,/build/linux.*,,') +export OCSD_ROOT *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Oct 10 13:30:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E114113D77E; Thu, 10 Oct 2019 14:50:44 +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 46pvCS5fmzz47GY; Thu, 10 Oct 2019 14:50:44 +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 A3E373849; Thu, 10 Oct 2019 14:50:44 +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 x9AEoipq066548; Thu, 10 Oct 2019 14:50:44 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEoiwh066536; Thu, 10 Oct 2019 14:50:44 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101450.x9AEoiwh066536@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:50:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353399 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353399 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:50:45 -0000 Author: tuexen Date: Thu Oct 10 14:50:44 2019 New Revision: 353399 URL: https://svnweb.freebsd.org/changeset/base/353399 Log: MFC r353122: Plumb an mbuf leak found by Mark Wodrich from Google by fuzz testing the userland stack and reporting it in: https://github.com/sctplab/usrsctp/issues/396 Modified: stable/12/sys/netinet/sctp_input.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_input.c ============================================================================== --- stable/12/sys/netinet/sctp_input.c Thu Oct 10 14:49:49 2019 (r353398) +++ stable/12/sys/netinet/sctp_input.c Thu Oct 10 14:50:44 2019 (r353399) @@ -465,6 +465,10 @@ sctp_process_init_ack(struct mbuf *m, int iphlen, int if (!cookie_found) { uint16_t len; + /* Only report the missing cookie parameter */ + if (op_err != NULL) { + sctp_m_freem(op_err); + } len = (uint16_t)(sizeof(struct sctp_error_missing_param) + sizeof(uint16_t)); /* We abort with an error of missing mandatory param */ op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA); From owner-svn-src-all@freebsd.org Thu Oct 10 14:46:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7643613CE16; Thu, 10 Oct 2019 14:46:00 +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 46pv602XsXz45w4; Thu, 10 Oct 2019 14:46:00 +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 21614382B; Thu, 10 Oct 2019 14:46:00 +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 x9AEk0P3065458; Thu, 10 Oct 2019 14:46:00 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEk0Jl065457; Thu, 10 Oct 2019 14:46:00 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101446.x9AEk0Jl065457@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:46:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353395 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353395 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:46:00 -0000 Author: tuexen Date: Thu Oct 10 14:45:59 2019 New Revision: 353395 URL: https://svnweb.freebsd.org/changeset/base/353395 Log: MFC r353060: Add missing input validation. This could result in reading from uninitialized memory. The issue was found by OSS-Fuzz for usrsctp and reported in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17780 Modified: stable/12/sys/netinet/sctp_asconf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_asconf.c ============================================================================== --- stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 13:44:12 2019 (r353394) +++ stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:45:59 2019 (r353395) @@ -169,10 +169,16 @@ sctp_process_asconf_add_ip(struct sockaddr *src, struc #endif aparam_length = ntohs(aph->ph.param_length); + 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) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { @@ -325,8 +331,14 @@ sctp_process_asconf_delete_ip(struct sockaddr *src, 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); + } #if defined(INET) || defined(INET6) param_length = ntohs(ph->param_length); + if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { @@ -454,10 +466,16 @@ sctp_process_asconf_set_primary(struct sockaddr *src, #endif aparam_length = ntohs(aph->ph.param_length); + 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) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { From owner-svn-src-all@freebsd.org Thu Oct 10 14:54:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8BCA513DC17; Thu, 10 Oct 2019 14:54:23 +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 46pvHg39FGz482T; Thu, 10 Oct 2019 14:54:23 +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 511DA3A15; Thu, 10 Oct 2019 14:54:23 +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 x9AEsNBj071512; Thu, 10 Oct 2019 14:54:23 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEsMKs071511; Thu, 10 Oct 2019 14:54:22 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101454.x9AEsMKs071511@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:54:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353402 - in stable/12: share/man/man4 sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/netinet X-SVN-Commit-Revision: 353402 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:54:23 -0000 Author: tuexen Date: Thu Oct 10 14:54:22 2019 New Revision: 353402 URL: https://svnweb.freebsd.org/changeset/base/353402 Log: MFC r353290: 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 Differential Revision: https://reviews.freebsd.org/D21619 Modified: stable/12/share/man/man4/siftr.4 stable/12/sys/netinet/siftr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/siftr.4 ============================================================================== --- stable/12/share/man/man4/siftr.4 Thu Oct 10 14:52:48 2019 (r353401) +++ stable/12/share/man/man4/siftr.4 Thu Oct 10 14:54:22 2019 (r353402) @@ -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: stable/12/sys/netinet/siftr.c ============================================================================== --- stable/12/sys/netinet/siftr.c Thu Oct 10 14:52:48 2019 (r353401) +++ stable/12/sys/netinet/siftr.c Thu Oct 10 14:54:22 2019 (r353402) @@ -916,7 +916,7 @@ siftr_chkpkt(void *arg, struct mbuf **m, struct ifnet * 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-all@freebsd.org Thu Oct 10 13:44:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 14:47:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 04FA013CFCA; Thu, 10 Oct 2019 14:47:40 +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 46pv7v6M34z46NB; Thu, 10 Oct 2019 14:47:39 +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 BEB27382C; Thu, 10 Oct 2019 14:47:39 +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 x9AEldq8065594; Thu, 10 Oct 2019 14:47:39 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AElddG065593; Thu, 10 Oct 2019 14:47:39 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101447.x9AElddG065593@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:47:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353396 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353396 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:47:40 -0000 Author: tuexen Date: Thu Oct 10 14:47:39 2019 New Revision: 353396 URL: https://svnweb.freebsd.org/changeset/base/353396 Log: MFC r353069: Cleanup sctp_asconf_error_response() and ensure that the parameter is padded as required. This fixes the followig bug reported by OSS-Fuzz for the usersctp stack: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17790 Modified: stable/12/sys/netinet/sctp_asconf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_asconf.c ============================================================================== --- stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:45:59 2019 (r353395) +++ stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:47:39 2019 (r353396) @@ -105,42 +105,47 @@ sctp_asconf_error_response(uint32_t id, uint16_t cause struct mbuf *m_reply = NULL; struct sctp_asconf_paramhdr *aph; struct sctp_error_cause *error; + size_t buf_len; + uint16_t i, param_length, cause_length, padding_length; uint8_t *tlv; - m_reply = sctp_get_mbuf_for_msg((sizeof(struct sctp_asconf_paramhdr) + - tlv_length + - sizeof(struct sctp_error_cause)), - 0, M_NOWAIT, 1, MT_DATA); + if (error_tlv == NULL) { + tlv_length = 0; + } + cause_length = sizeof(struct sctp_error_cause) + tlv_length; + param_length = sizeof(struct sctp_asconf_paramhdr) + cause_length; + padding_length = tlv_length % 4; + if (padding_length != 0) { + padding_length = 4 - padding_length; + } + buf_len = param_length + padding_length; + if (buf_len > MLEN) { + SCTPDBG(SCTP_DEBUG_ASCONF1, + "asconf_error_response: tlv_length (%xh) too big\n", + tlv_length); + return (NULL); + } + m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA); if (m_reply == NULL) { SCTPDBG(SCTP_DEBUG_ASCONF1, "asconf_error_response: couldn't get mbuf!\n"); return (NULL); } aph = mtod(m_reply, struct sctp_asconf_paramhdr *); - error = (struct sctp_error_cause *)(aph + 1); - - aph->correlation_id = id; aph->ph.param_type = htons(SCTP_ERROR_CAUSE_IND); + aph->ph.param_length = htons(param_length); + aph->correlation_id = id; + error = (struct sctp_error_cause *)(aph + 1); error->code = htons(cause); - error->length = tlv_length + sizeof(struct sctp_error_cause); - aph->ph.param_length = error->length + - sizeof(struct sctp_asconf_paramhdr); - - if (aph->ph.param_length > MLEN) { - SCTPDBG(SCTP_DEBUG_ASCONF1, - "asconf_error_response: tlv_length (%xh) too big\n", - tlv_length); - sctp_m_freem(m_reply); /* discard */ - return (NULL); - } + error->length = htons(cause_length); if (error_tlv != NULL) { tlv = (uint8_t *)(error + 1); memcpy(tlv, error_tlv, tlv_length); + for (i = 0; i < padding_length; i++) { + tlv[tlv_length + i] = 0; + } } - SCTP_BUF_LEN(m_reply) = aph->ph.param_length; - error->length = htons(error->length); - aph->ph.param_length = htons(aph->ph.param_length); - + SCTP_BUF_LEN(m_reply) = buf_len; return (m_reply); } @@ -780,8 +785,6 @@ sctp_handle_asconf(struct mbuf *m, unsigned int offset if (m_result != NULL) { SCTP_BUF_NEXT(m_tail) = m_result; m_tail = m_result; - /* update lengths, make sure it's aligned too */ - SCTP_BUF_LEN(m_result) = SCTP_SIZE32(SCTP_BUF_LEN(m_result)); ack_cp->ch.chunk_length += SCTP_BUF_LEN(m_result); /* set flag to force success reports */ error = 1; From owner-svn-src-all@freebsd.org Thu Oct 10 14:48:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8CEC613D30B; Thu, 10 Oct 2019 14:48:49 +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 46pv9F2Gkmz46wt; Thu, 10 Oct 2019 14:48:49 +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 32091382F; Thu, 10 Oct 2019 14:48:49 +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 x9AEmnaT065698; Thu, 10 Oct 2019 14:48:49 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEmnZ2065697; Thu, 10 Oct 2019 14:48:49 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101448.x9AEmnZ2065697@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:48:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353397 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353397 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:48:49 -0000 Author: tuexen Date: Thu Oct 10 14:48:48 2019 New Revision: 353397 URL: https://svnweb.freebsd.org/changeset/base/353397 Log: MFC r353071: When skipping the address parameter, take the padding into account. Modified: stable/12/sys/netinet/sctp_asconf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_asconf.c ============================================================================== --- stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:47:39 2019 (r353396) +++ stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:48:48 2019 (r353397) @@ -699,8 +699,8 @@ sctp_handle_asconf(struct mbuf *m, unsigned int offset sctp_m_freem(m_ack); return; } - /* param_length is already validated in process_control... */ - offset += ntohs(p_addr->ph.param_length); /* skip lookup addr */ + /* skip lookup addr */ + offset += SCTP_SIZE32(ntohs(p_addr->ph.param_length)); /* get pointer to first asconf param in ASCONF */ aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, sizeof(struct sctp_asconf_paramhdr), (uint8_t *)&aparam_buf); if (aph == NULL) { From owner-svn-src-all@freebsd.org Thu Oct 10 14:51:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 494DB13D896; Thu, 10 Oct 2019 14:51:39 +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 46pvDW0g28z47RG; Thu, 10 Oct 2019 14:51:39 +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 EE2E939B1; Thu, 10 Oct 2019 14:51:38 +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 x9AEpcbE068838; Thu, 10 Oct 2019 14:51:38 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEpcOK068837; Thu, 10 Oct 2019 14:51:38 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101451.x9AEpcOK068837@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:51:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353400 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353400 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:51:39 -0000 Author: tuexen Date: Thu Oct 10 14:51:38 2019 New Revision: 353400 URL: https://svnweb.freebsd.org/changeset/base/353400 Log: MFC r353123: Fix a use after free bug when removing remote addresses. This bug was found by OSS-Fuzz and reported in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18004 Modified: stable/12/sys/netinet/sctp_asconf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_asconf.c ============================================================================== --- stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:50:44 2019 (r353399) +++ stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:51:38 2019 (r353400) @@ -283,7 +283,7 @@ sctp_process_asconf_add_ip(struct sockaddr *src, struc static int sctp_asconf_del_remote_addrs_except(struct sctp_tcb *stcb, struct sockaddr *src) { - struct sctp_nets *src_net, *net; + struct sctp_nets *src_net, *net, *nnet; /* make sure the source address exists as a destination net */ src_net = sctp_findnet(stcb, src); @@ -293,10 +293,9 @@ sctp_asconf_del_remote_addrs_except(struct sctp_tcb *s } /* delete all destination addresses except the source */ - TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { + TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) { if (net != src_net) { /* delete this address */ - sctp_remove_net(stcb, net); SCTPDBG(SCTP_DEBUG_ASCONF1, "asconf_del_remote_addrs_except: deleting "); SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, @@ -304,6 +303,7 @@ sctp_asconf_del_remote_addrs_except(struct sctp_tcb *s /* notify upper layer */ sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, (struct sockaddr *)&net->ro._l_addr, SCTP_SO_NOT_LOCKED); + sctp_remove_net(stcb, net); } } return (0); From owner-svn-src-all@freebsd.org Thu Oct 10 08:33:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF96314E52D; Thu, 10 Oct 2019 08:33:14 +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 46pkqt5YnWz4nY1; Thu, 10 Oct 2019 08:33:14 +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 A35C027484; Thu, 10 Oct 2019 08:33:14 +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 x9A8XEdB047501; Thu, 10 Oct 2019 08:33:14 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9A8XEBJ047500; Thu, 10 Oct 2019 08:33:14 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910100833.x9A8XEBJ047500@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 08:33:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353385 - stable/12/sys/fs/tmpfs X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/fs/tmpfs X-SVN-Commit-Revision: 353385 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 08:33:14 -0000 Author: kib Date: Thu Oct 10 08:33:14 2019 New Revision: 353385 URL: https://svnweb.freebsd.org/changeset/base/353385 Log: MFC r353065: tmpfs_readdir(): unlock the locked node. Modified: stable/12/sys/fs/tmpfs/tmpfs_subr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- stable/12/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 08:30:50 2019 (r353384) +++ stable/12/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 08:33:14 2019 (r353385) @@ -1149,8 +1149,9 @@ static int tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct tmpfs_node *node, struct uio *uio) { - int error; + struct tmpfs_node *parent; struct dirent dent; + int error; TMPFS_VALIDATE_DIR(node); MPASS(uio->uio_offset == TMPFS_DIRCOOKIE_DOTDOT); @@ -1159,12 +1160,13 @@ tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct * Return ENOENT if the current node is already removed. */ TMPFS_ASSERT_LOCKED(node); - if (node->tn_dir.tn_parent == NULL) + parent = node->tn_dir.tn_parent; + if (parent == NULL) return (ENOENT); - TMPFS_NODE_LOCK(node->tn_dir.tn_parent); - dent.d_fileno = node->tn_dir.tn_parent->tn_id; - TMPFS_NODE_UNLOCK(node->tn_dir.tn_parent); + TMPFS_NODE_LOCK(parent); + dent.d_fileno = parent->tn_id; + TMPFS_NODE_UNLOCK(parent); dent.d_type = DT_DIR; dent.d_namlen = 2; From owner-svn-src-all@freebsd.org Thu Oct 10 12:46:44 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 14:49:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6894B13D3B5; Thu, 10 Oct 2019 14:49:50 +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 46pvBQ1ytqz473X; Thu, 10 Oct 2019 14:49:50 +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 26FB23831; Thu, 10 Oct 2019 14:49:50 +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 x9AEnonT065795; Thu, 10 Oct 2019 14:49:50 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEno70065794; Thu, 10 Oct 2019 14:49:50 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101449.x9AEno70065794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:49:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353398 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353398 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:49:50 -0000 Author: tuexen Date: Thu Oct 10 14:49:49 2019 New Revision: 353398 URL: https://svnweb.freebsd.org/changeset/base/353398 Log: MFC r353119: Fix the adding of padding to COOKIE-ECHO chunks. Thanks to Mark Wodrich who found this issue while fuzz testing the usrsctp stack and reported the issue in https://github.com/sctplab/usrsctp/issues/382 Modified: stable/12/sys/netinet/sctp_output.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_output.c ============================================================================== --- stable/12/sys/netinet/sctp_output.c Thu Oct 10 14:48:48 2019 (r353397) +++ stable/12/sys/netinet/sctp_output.c Thu Oct 10 14:49:49 2019 (r353398) @@ -9059,8 +9059,7 @@ sctp_send_cookie_echo(struct mbuf *m, pad = 4 - pad; } if (pad > 0) { - cookie = sctp_pad_lastmbuf(cookie, pad, NULL); - if (cookie == NULL) { + if (sctp_pad_lastmbuf(cookie, pad, NULL) == NULL) { return (-8); } } From owner-svn-src-all@freebsd.org Thu Oct 10 14:52:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB9C013DA21; Thu, 10 Oct 2019 14:52:49 +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 46pvFs3HHTz47p3; Thu, 10 Oct 2019 14:52:49 +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 551113A0B; Thu, 10 Oct 2019 14:52:49 +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 x9AEqnLx071391; Thu, 10 Oct 2019 14:52:49 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEqn8o071390; Thu, 10 Oct 2019 14:52:49 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101452.x9AEqn8o071390@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:52:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353401 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353401 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:52:49 -0000 Author: tuexen Date: Thu Oct 10 14:52:48 2019 New Revision: 353401 URL: https://svnweb.freebsd.org/changeset/base/353401 Log: MFC r353145: 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 Modified: stable/12/sys/netinet/sctp_indata.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_indata.c ============================================================================== --- stable/12/sys/netinet/sctp_indata.c Thu Oct 10 14:51:38 2019 (r353400) +++ stable/12/sys/netinet/sctp_indata.c Thu Oct 10 14:52:48 2019 (r353401) @@ -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-all@freebsd.org Thu Oct 10 14:56:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 326FC13DE3A; Thu, 10 Oct 2019 14:56:30 +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 46pvL60gy3z48FM; Thu, 10 Oct 2019 14:56:30 +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 EEF083A1A; Thu, 10 Oct 2019 14:56:29 +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 x9AEuThi071688; Thu, 10 Oct 2019 14:56:29 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AEuTW0071687; Thu, 10 Oct 2019 14:56:29 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101456.x9AEuTW0071687@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 14:56:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353403 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 353403 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 14:56:30 -0000 Author: tuexen Date: Thu Oct 10 14:56:29 2019 New Revision: 353403 URL: https://svnweb.freebsd.org/changeset/base/353403 Log: MFC r353303: 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 Modified: stable/12/sys/netinet/sctp_asconf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/sctp_asconf.c ============================================================================== --- stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:54:22 2019 (r353402) +++ stable/12/sys/netinet/sctp_asconf.c Thu Oct 10 14:56:29 2019 (r353403) @@ -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-all@freebsd.org Thu Oct 10 15:19:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD986141341; Thu, 10 Oct 2019 15:19:50 +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 46pvs24Pktz4D0n; Thu, 10 Oct 2019 15:19:50 +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 761763DE3; Thu, 10 Oct 2019 15:19:50 +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 x9AFJoUf083565; Thu, 10 Oct 2019 15:19:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AFJogZ083564; Thu, 10 Oct 2019 15:19:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201910101519.x9AFJogZ083564@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 15:19:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353404 - releng/12.1/sys/fs/tmpfs X-SVN-Group: releng X-SVN-Commit-Author: kib X-SVN-Commit-Paths: releng/12.1/sys/fs/tmpfs X-SVN-Commit-Revision: 353404 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 15:19:50 -0000 Author: kib Date: Thu Oct 10 15:19:49 2019 New Revision: 353404 URL: https://svnweb.freebsd.org/changeset/base/353404 Log: MFC r353065, MFS12 353385: tmpfs_readdir(): unlock the locked node. Approved by: re (gjb) Modified: releng/12.1/sys/fs/tmpfs/tmpfs_subr.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- releng/12.1/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 14:56:29 2019 (r353403) +++ releng/12.1/sys/fs/tmpfs/tmpfs_subr.c Thu Oct 10 15:19:49 2019 (r353404) @@ -1149,8 +1149,9 @@ static int tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct tmpfs_node *node, struct uio *uio) { - int error; + struct tmpfs_node *parent; struct dirent dent; + int error; TMPFS_VALIDATE_DIR(node); MPASS(uio->uio_offset == TMPFS_DIRCOOKIE_DOTDOT); @@ -1159,12 +1160,13 @@ tmpfs_dir_getdotdotdent(struct tmpfs_mount *tm, struct * Return ENOENT if the current node is already removed. */ TMPFS_ASSERT_LOCKED(node); - if (node->tn_dir.tn_parent == NULL) + parent = node->tn_dir.tn_parent; + if (parent == NULL) return (ENOENT); - TMPFS_NODE_LOCK(node->tn_dir.tn_parent); - dent.d_fileno = node->tn_dir.tn_parent->tn_id; - TMPFS_NODE_UNLOCK(node->tn_dir.tn_parent); + TMPFS_NODE_LOCK(parent); + dent.d_fileno = parent->tn_id; + TMPFS_NODE_UNLOCK(parent); dent.d_type = DT_DIR; dent.d_namlen = 2; From owner-svn-src-all@freebsd.org Thu Oct 10 15:36:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 502DC141E1E; Thu, 10 Oct 2019 15:36:46 +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 46pwDZ0jYNz4FQH; Thu, 10 Oct 2019 15:36:46 +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 EDFA54186; Thu, 10 Oct 2019 15:36:45 +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 x9AFajx7094978; Thu, 10 Oct 2019 15:36:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AFajUf094977; Thu, 10 Oct 2019 15:36:45 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910101536.x9AFajUf094977@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 10 Oct 2019 15:36:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353405 - stable/12/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353405 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 15:36:46 -0000 Author: hselasky Date: Thu Oct 10 15:36:45 2019 New Revision: 353405 URL: https://svnweb.freebsd.org/changeset/base/353405 Log: MFC r353321: 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@ Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 15:19:49 2019 (r353404) +++ stable/12/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 15:36:45 2019 (r353405) @@ -747,6 +747,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 @@ -768,7 +769,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 { @@ -793,6 +793,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 @@ -811,7 +812,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-all@freebsd.org Thu Oct 10 15:38:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EC8C8141EEC; Thu, 10 Oct 2019 15:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pwG85zpxz4FY4; Thu, 10 Oct 2019 15:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B0B734187; Thu, 10 Oct 2019 15:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9AFc8cL095094; Thu, 10 Oct 2019 15:38:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AFc8Fw095093; Thu, 10 Oct 2019 15:38:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910101538.x9AFc8Fw095093@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 10 Oct 2019 15:38:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353406 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353406 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 15:38:09 -0000 Author: hselasky Date: Thu Oct 10 15:38:08 2019 New Revision: 353406 URL: https://svnweb.freebsd.org/changeset/base/353406 Log: MFC r353321: 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@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 15:36:45 2019 (r353405) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 15:38:08 2019 (r353406) @@ -746,6 +746,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 @@ -767,7 +768,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 { @@ -787,6 +787,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 @@ -805,7 +806,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-all@freebsd.org Thu Oct 10 16:04:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BEAFF1428A2; Thu, 10 Oct 2019 16:04:43 +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 46pwrq4Y6Fz4H3d; Thu, 10 Oct 2019 16:04:43 +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 7C0BC4698; Thu, 10 Oct 2019 16:04:43 +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 x9AG4hF6012978; Thu, 10 Oct 2019 16:04:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AG4hQB012977; Thu, 10 Oct 2019 16:04:43 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201910101604.x9AG4hQB012977@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 10 Oct 2019 16:04:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353407 - releng/12.1/sys/dev/mlx5/mlx5_en X-SVN-Group: releng X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: releng/12.1/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 353407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 16:04:43 -0000 Author: hselasky Date: Thu Oct 10 16:04:43 2019 New Revision: 353407 URL: https://svnweb.freebsd.org/changeset/base/353407 Log: MFS r353405: 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@ Sponsored by: Mellanox Technologies Approved by: re (gjb) Modified: releng/12.1/sys/dev/mlx5/mlx5_en/en.h Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- releng/12.1/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 15:38:08 2019 (r353406) +++ releng/12.1/sys/dev/mlx5/mlx5_en/en.h Thu Oct 10 16:04:43 2019 (r353407) @@ -747,6 +747,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 @@ -768,7 +769,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 { @@ -793,6 +793,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 @@ -811,7 +812,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-all@freebsd.org Thu Oct 10 16:29:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 17:29:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCA76144855; Thu, 10 Oct 2019 17:29:47 +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 46pykz4Vh5z4MFV; Thu, 10 Oct 2019 17:29:47 +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 799DD549F; Thu, 10 Oct 2019 17:29:47 +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 x9AHTlwN060224; Thu, 10 Oct 2019 17:29:47 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AHTlnC060223; Thu, 10 Oct 2019 17:29:47 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910101729.x9AHTlnC060223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 10 Oct 2019 17:29:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353409 - stable/12/usr.sbin/pkg X-SVN-Group: stable-12 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/12/usr.sbin/pkg X-SVN-Commit-Revision: 353409 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 17:29:47 -0000 Author: gjb Date: Thu Oct 10 17:29:47 2019 New Revision: 353409 URL: https://svnweb.freebsd.org/changeset/base/353409 Log: MFC r353320: 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. Sponsored by: Rubicon Communications, LLC (Netgate) Modified: stable/12/usr.sbin/pkg/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/pkg/Makefile ============================================================================== --- stable/12/usr.sbin/pkg/Makefile Thu Oct 10 16:29:13 2019 (r353408) +++ stable/12/usr.sbin/pkg/Makefile Thu Oct 10 17:29:47 2019 (r353409) @@ -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-all@freebsd.org Thu Oct 10 18:19:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16B62145A09; Thu, 10 Oct 2019 18:19:24 +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 46pzrC6jznz4PVT; Thu, 10 Oct 2019 18:19:23 +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 C5B9A5DBF; Thu, 10 Oct 2019 18:19:23 +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 x9AIJNTm089207; Thu, 10 Oct 2019 18:19:23 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AIJMKj089203; Thu, 10 Oct 2019 18:19:23 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101819.x9AIJMKj089203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 18:19:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353410 - releng/12.1/sys/netinet X-SVN-Group: releng X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: releng/12.1/sys/netinet X-SVN-Commit-Revision: 353410 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 18:19:24 -0000 Author: tuexen Date: Thu Oct 10 18:19:22 2019 New Revision: 353410 URL: https://svnweb.freebsd.org/changeset/base/353410 Log: MFS r353395: Add missing input validation. This could result in reading from uninitialized memory. The issue was found by OSS-Fuzz for usrsctp and reported in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17780 MFS r353396: Cleanup sctp_asconf_error_response() and ensure that the parameter is padded as required. This fixes the followig bug reported by OSS-Fuzz for the usersctp stack: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17790 MFS r353397: When skipping the address parameter, take the padding into account. MFS r353398: Fix the adding of padding to COOKIE-ECHO chunks. Thanks to Mark Wodrich who found this issue while fuzz testing the usrsctp stack and reported the issue in https://github.com/sctplab/usrsctp/issues/382 MFS r353399: Plumb an mbuf leak found by Mark Wodrich from Google by fuzz testing the userland stack and reporting it in: https://github.com/sctplab/usrsctp/issues/396 MFS r353400: Fix a use after free bug when removing remote addresses. This bug was found by OSS-Fuzz and reported in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18004 MFS r353401: 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 MFS r353403: 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 Approved by: re (gjb@) Modified: releng/12.1/sys/netinet/sctp_asconf.c releng/12.1/sys/netinet/sctp_indata.c releng/12.1/sys/netinet/sctp_input.c releng/12.1/sys/netinet/sctp_output.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/sys/netinet/sctp_asconf.c ============================================================================== --- releng/12.1/sys/netinet/sctp_asconf.c Thu Oct 10 17:29:47 2019 (r353409) +++ releng/12.1/sys/netinet/sctp_asconf.c Thu Oct 10 18:19:22 2019 (r353410) @@ -105,42 +105,47 @@ sctp_asconf_error_response(uint32_t id, uint16_t cause struct mbuf *m_reply = NULL; struct sctp_asconf_paramhdr *aph; struct sctp_error_cause *error; + size_t buf_len; + uint16_t i, param_length, cause_length, padding_length; uint8_t *tlv; - m_reply = sctp_get_mbuf_for_msg((sizeof(struct sctp_asconf_paramhdr) + - tlv_length + - sizeof(struct sctp_error_cause)), - 0, M_NOWAIT, 1, MT_DATA); + if (error_tlv == NULL) { + tlv_length = 0; + } + cause_length = sizeof(struct sctp_error_cause) + tlv_length; + param_length = sizeof(struct sctp_asconf_paramhdr) + cause_length; + padding_length = tlv_length % 4; + if (padding_length != 0) { + padding_length = 4 - padding_length; + } + buf_len = param_length + padding_length; + if (buf_len > MLEN) { + SCTPDBG(SCTP_DEBUG_ASCONF1, + "asconf_error_response: tlv_length (%xh) too big\n", + tlv_length); + return (NULL); + } + m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA); if (m_reply == NULL) { SCTPDBG(SCTP_DEBUG_ASCONF1, "asconf_error_response: couldn't get mbuf!\n"); return (NULL); } aph = mtod(m_reply, struct sctp_asconf_paramhdr *); - error = (struct sctp_error_cause *)(aph + 1); - - aph->correlation_id = id; aph->ph.param_type = htons(SCTP_ERROR_CAUSE_IND); + aph->ph.param_length = htons(param_length); + aph->correlation_id = id; + error = (struct sctp_error_cause *)(aph + 1); error->code = htons(cause); - error->length = tlv_length + sizeof(struct sctp_error_cause); - aph->ph.param_length = error->length + - sizeof(struct sctp_asconf_paramhdr); - - if (aph->ph.param_length > MLEN) { - SCTPDBG(SCTP_DEBUG_ASCONF1, - "asconf_error_response: tlv_length (%xh) too big\n", - tlv_length); - sctp_m_freem(m_reply); /* discard */ - return (NULL); - } + error->length = htons(cause_length); if (error_tlv != NULL) { tlv = (uint8_t *)(error + 1); memcpy(tlv, error_tlv, tlv_length); + for (i = 0; i < padding_length; i++) { + tlv[tlv_length + i] = 0; + } } - SCTP_BUF_LEN(m_reply) = aph->ph.param_length; - error->length = htons(error->length); - aph->ph.param_length = htons(aph->ph.param_length); - + SCTP_BUF_LEN(m_reply) = buf_len; return (m_reply); } @@ -169,10 +174,16 @@ sctp_process_asconf_add_ip(struct sockaddr *src, struc #endif aparam_length = ntohs(aph->ph.param_length); + 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) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { @@ -272,7 +283,7 @@ sctp_process_asconf_add_ip(struct sockaddr *src, struc static int sctp_asconf_del_remote_addrs_except(struct sctp_tcb *stcb, struct sockaddr *src) { - struct sctp_nets *src_net, *net; + struct sctp_nets *src_net, *net, *nnet; /* make sure the source address exists as a destination net */ src_net = sctp_findnet(stcb, src); @@ -282,10 +293,9 @@ sctp_asconf_del_remote_addrs_except(struct sctp_tcb *s } /* delete all destination addresses except the source */ - TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { + TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) { if (net != src_net) { /* delete this address */ - sctp_remove_net(stcb, net); SCTPDBG(SCTP_DEBUG_ASCONF1, "asconf_del_remote_addrs_except: deleting "); SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, @@ -293,6 +303,7 @@ sctp_asconf_del_remote_addrs_except(struct sctp_tcb *s /* notify upper layer */ sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, (struct sockaddr *)&net->ro._l_addr, SCTP_SO_NOT_LOCKED); + sctp_remove_net(stcb, net); } } return (0); @@ -323,10 +334,16 @@ sctp_process_asconf_delete_ip(struct sockaddr *src, #endif aparam_length = ntohs(aph->ph.param_length); + 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) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { @@ -454,10 +471,16 @@ sctp_process_asconf_set_primary(struct sockaddr *src, #endif aparam_length = ntohs(aph->ph.param_length); + 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) { + return (NULL); + } #endif sa = &store.sa; switch (param_type) { @@ -676,8 +699,8 @@ sctp_handle_asconf(struct mbuf *m, unsigned int offset sctp_m_freem(m_ack); return; } - /* param_length is already validated in process_control... */ - offset += ntohs(p_addr->ph.param_length); /* skip lookup addr */ + /* skip lookup addr */ + offset += SCTP_SIZE32(ntohs(p_addr->ph.param_length)); /* get pointer to first asconf param in ASCONF */ aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, sizeof(struct sctp_asconf_paramhdr), (uint8_t *)&aparam_buf); if (aph == NULL) { @@ -762,8 +785,6 @@ sctp_handle_asconf(struct mbuf *m, unsigned int offset if (m_result != NULL) { SCTP_BUF_NEXT(m_tail) = m_result; m_tail = m_result; - /* update lengths, make sure it's aligned too */ - SCTP_BUF_LEN(m_result) = SCTP_SIZE32(SCTP_BUF_LEN(m_result)); ack_cp->ch.chunk_length += SCTP_BUF_LEN(m_result); /* set flag to force success reports */ error = 1; Modified: releng/12.1/sys/netinet/sctp_indata.c ============================================================================== --- releng/12.1/sys/netinet/sctp_indata.c Thu Oct 10 17:29:47 2019 (r353409) +++ releng/12.1/sys/netinet/sctp_indata.c Thu Oct 10 18:19:22 2019 (r353410) @@ -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; Modified: releng/12.1/sys/netinet/sctp_input.c ============================================================================== --- releng/12.1/sys/netinet/sctp_input.c Thu Oct 10 17:29:47 2019 (r353409) +++ releng/12.1/sys/netinet/sctp_input.c Thu Oct 10 18:19:22 2019 (r353410) @@ -465,6 +465,10 @@ sctp_process_init_ack(struct mbuf *m, int iphlen, int if (!cookie_found) { uint16_t len; + /* Only report the missing cookie parameter */ + if (op_err != NULL) { + sctp_m_freem(op_err); + } len = (uint16_t)(sizeof(struct sctp_error_missing_param) + sizeof(uint16_t)); /* We abort with an error of missing mandatory param */ op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA); Modified: releng/12.1/sys/netinet/sctp_output.c ============================================================================== --- releng/12.1/sys/netinet/sctp_output.c Thu Oct 10 17:29:47 2019 (r353409) +++ releng/12.1/sys/netinet/sctp_output.c Thu Oct 10 18:19:22 2019 (r353410) @@ -9059,8 +9059,7 @@ sctp_send_cookie_echo(struct mbuf *m, pad = 4 - pad; } if (pad > 0) { - cookie = sctp_pad_lastmbuf(cookie, pad, NULL); - if (cookie == NULL) { + if (sctp_pad_lastmbuf(cookie, pad, NULL) == NULL) { return (-8); } } From owner-svn-src-all@freebsd.org Thu Oct 10 18:27:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CBF6C145D55; Thu, 10 Oct 2019 18:27:05 +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 46q01550p8z4Q6d; Thu, 10 Oct 2019 18:27:05 +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 8A7965F79; Thu, 10 Oct 2019 18:27:05 +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 x9AIR5W8095707; Thu, 10 Oct 2019 18:27:05 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AIR5ia095706; Thu, 10 Oct 2019 18:27:05 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910101827.x9AIR5ia095706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 10 Oct 2019 18:27:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353411 - releng/12.1/usr.sbin/pkg X-SVN-Group: releng X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: releng/12.1/usr.sbin/pkg X-SVN-Commit-Revision: 353411 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 18:27:05 -0000 Author: gjb Date: Thu Oct 10 18:27:05 2019 New Revision: 353411 URL: https://svnweb.freebsd.org/changeset/base/353411 Log: MFS r353409: MFC r353320: 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. Approved by: re (kib) Sponsored by: Rubicon Communications, LLC (Netgate) Modified: releng/12.1/usr.sbin/pkg/Makefile Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/usr.sbin/pkg/Makefile ============================================================================== --- releng/12.1/usr.sbin/pkg/Makefile Thu Oct 10 18:19:22 2019 (r353410) +++ releng/12.1/usr.sbin/pkg/Makefile Thu Oct 10 18:27:05 2019 (r353411) @@ -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-all@freebsd.org Thu Oct 10 18:39:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 126831463C6; Thu, 10 Oct 2019 18:39:12 +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 46q0H36lSdz4Qs1; Thu, 10 Oct 2019 18:39:11 +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 CACF2613A; Thu, 10 Oct 2019 18:39:11 +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 x9AIdB53001627; Thu, 10 Oct 2019 18:39:11 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AIdBVZ001625; Thu, 10 Oct 2019 18:39:11 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201910101839.x9AIdBVZ001625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 10 Oct 2019 18:39:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353412 - in releng/12.1: share/man/man4 sys/netinet X-SVN-Group: releng X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: in releng/12.1: share/man/man4 sys/netinet X-SVN-Commit-Revision: 353412 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 18:39:12 -0000 Author: tuexen Date: Thu Oct 10 18:39:11 2019 New Revision: 353412 URL: https://svnweb.freebsd.org/changeset/base/353412 Log: MFS r353402: 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 Differential Revision: https://reviews.freebsd.org/D21619 Reviewed by: bcr@ Approved by: re (gjb@) Modified: releng/12.1/share/man/man4/siftr.4 releng/12.1/sys/netinet/siftr.c Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/share/man/man4/siftr.4 ============================================================================== --- releng/12.1/share/man/man4/siftr.4 Thu Oct 10 18:27:05 2019 (r353411) +++ releng/12.1/share/man/man4/siftr.4 Thu Oct 10 18:39:11 2019 (r353412) @@ -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: releng/12.1/sys/netinet/siftr.c ============================================================================== --- releng/12.1/sys/netinet/siftr.c Thu Oct 10 18:27:05 2019 (r353411) +++ releng/12.1/sys/netinet/siftr.c Thu Oct 10 18:39:11 2019 (r353412) @@ -916,7 +916,7 @@ siftr_chkpkt(void *arg, struct mbuf **m, struct ifnet * 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-all@freebsd.org Thu Oct 10 18:52:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 20:28:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 98E1C130F5A; Thu, 10 Oct 2019 20:28:35 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46q2jH3TXjz4Xy0; Thu, 10 Oct 2019 20:28:35 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D8B47507; Thu, 10 Oct 2019 20:28:35 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9AKSYJm067576; Thu, 10 Oct 2019 20:28:34 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9AKSYBg067574; Thu, 10 Oct 2019 20:28:34 GMT (envelope-from np@FreeBSD.org) Message-Id: <201910102028.x9AKSYBg067574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 10 Oct 2019 20:28:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353414 - stable/10/sys/net X-SVN-Group: stable-10 X-SVN-Commit-Author: np X-SVN-Commit-Paths: stable/10/sys/net X-SVN-Commit-Revision: 353414 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 20:28:35 -0000 Author: np Date: Thu Oct 10 20:28:34 2019 New Revision: 353414 URL: https://svnweb.freebsd.org/changeset/base/353414 Log: MFC r318147 (by erj@): Add several new media types to if_media.h These include several 25G types (for active direct attach cables and LR modules), and a missing type for 10G active direct attach. Modified: stable/10/sys/net/ieee8023ad_lacp.c stable/10/sys/net/if_media.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/net/ieee8023ad_lacp.c ============================================================================== --- stable/10/sys/net/ieee8023ad_lacp.c Thu Oct 10 18:52:24 2019 (r353413) +++ stable/10/sys/net/ieee8023ad_lacp.c Thu Oct 10 20:28:34 2019 (r353414) @@ -1091,6 +1091,7 @@ lacp_compose_key(struct lacp_port *lp) case IFM_10G_CR1: case IFM_10G_ER: case IFM_10G_SFI: + case IFM_10G_AOC: key = IFM_10G_LR; break; case IFM_20G_KR2: @@ -1115,6 +1116,9 @@ lacp_compose_key(struct lacp_port *lp) case IFM_25G_CR: case IFM_25G_KR: case IFM_25G_SR: + case IFM_25G_LR: + case IFM_25G_ACC: + case IFM_25G_AOC: key = IFM_25G_PCIE; break; case IFM_40G_CR4: Modified: stable/10/sys/net/if_media.h ============================================================================== --- stable/10/sys/net/if_media.h Thu Oct 10 18:52:24 2019 (r353413) +++ stable/10/sys/net/if_media.h Thu Oct 10 20:28:34 2019 (r353414) @@ -193,6 +193,10 @@ uint64_t ifmedia_baudrate(int); #define IFM_25G_SR IFM_X(55) /* 25GBase-SR */ #define IFM_50G_CR2 IFM_X(56) /* 50GBase-CR2 */ #define IFM_50G_KR2 IFM_X(57) /* 50GBase-KR2 */ +#define IFM_25G_LR IFM_X(58) /* 25GBase-LR */ +#define IFM_10G_AOC IFM_X(59) /* 10G active optical cable */ +#define IFM_25G_ACC IFM_X(60) /* 25G active copper cable */ +#define IFM_25G_AOC IFM_X(61) /* 25G active optical cable */ /* * Please update ieee8023ad_lacp.c:lacp_compose_key() @@ -444,6 +448,10 @@ struct ifmedia_description { { IFM_25G_SR, "25GBase-SR" }, \ { IFM_50G_CR2, "50GBase-CR2" }, \ { IFM_50G_KR2, "50GBase-KR2" }, \ + { IFM_25G_LR, "25GBase-LR" }, \ + { IFM_10G_AOC, "10GBase-AOC" }, \ + { IFM_25G_ACC, "25GBase-ACC" }, \ + { IFM_25G_AOC, "25GBase-AOC" }, \ { 0, NULL }, \ } @@ -772,6 +780,10 @@ struct ifmedia_baudrate { { IFM_ETHER | IFM_25G_SR, IF_Gbps(25ULL) }, \ { IFM_ETHER | IFM_50G_CR2, IF_Gbps(50ULL) }, \ { IFM_ETHER | IFM_50G_KR2, IF_Gbps(50ULL) }, \ + { IFM_ETHER | IFM_25G_LR, IF_Gbps(25ULL) }, \ + { IFM_ETHER | IFM_10G_AOC, IF_Gbps(10ULL) }, \ + { IFM_ETHER | IFM_25G_ACC, IF_Gbps(25ULL) }, \ + { IFM_ETHER | IFM_25G_AOC, IF_Gbps(25ULL) }, \ \ { IFM_TOKEN | IFM_TOK_STP4, IF_Mbps(4) }, \ { IFM_TOKEN | IFM_TOK_STP16, IF_Mbps(16) }, \ From owner-svn-src-all@freebsd.org Thu Oct 10 20:30:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 20:33:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 21:27:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 22:49:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:27:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 44F6C134DE2; Thu, 10 Oct 2019 23:27:04 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46q6gD0YLYz3CsB; Thu, 10 Oct 2019 23:27:04 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E5EF994FD; Thu, 10 Oct 2019 23:27:03 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9ANR3Pt072450; Thu, 10 Oct 2019 23:27:03 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9ANR3Ca072447; Thu, 10 Oct 2019 23:27:03 GMT (envelope-from np@FreeBSD.org) Message-Id: <201910102327.x9ANR3Ca072447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 10 Oct 2019 23:27:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r353418 - in stable/10/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware modules/cxgbe/t6_firmware X-SVN-Group: stable-10 X-SVN-Commit-Author: np X-SVN-Commit-Paths: in stable/10/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware modules/cxgbe/t6_firmware X-SVN-Commit-Revision: 353418 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:27:04 -0000 Author: np Date: Thu Oct 10 23:27:02 2019 New Revision: 353418 URL: https://svnweb.freebsd.org/changeset/base/353418 Log: MFC r319872, r321063, r321582, r322034, r322425, r322962, r322985, r325596, r326026, r328420, r331472, r333276, r333650, r333652, r334406, r334409-r334410, r334489, r336042, r340651, r342603, and r345083. This updates the cxgbe firmwares in stable/10 and also pulls in support for some newer boards and flash parts. r319872: cxgbe(4): Do not request an FEC setting that the port does not support. r321063: cxgbe(4): Various link/media related improvements. r321582: cxgbe(4): Some updates to the common code. r322034: cxgbe(4): Always use the first and not the last virtual interface associated with a port in begin_synchronized_op. r322425: cxgbe(4): Save the last reported link parameters and compare them with the current state to determine whether to generate a link-state change notification. This fixes a bug introduced in r321063 that caused the driver to sometimes skip these notifications. r322962: cxgbe(4): Remove write only variable from t4_port_init. r322985: cxgbe(4): Maintain one ifmedia per physical port instead of one per Virtual Interface (VI). All autonomous VIs that share a port share the same media. r325596: cxgbe(4): Do not request settings not supported by the port. r326026: cxgbe(4): Add a custom board to the device id list. r328420: cxgbe(4): Do not display harmless warning in non-debug builds. r331472: cxgbe(4): Always initialize requested_speed to a valid value. This fixes an avoidable EINVAL when the user tries to disable AN after the port is initialized but l1cfg doesn't have a valid speed to use. r333276: cxgbe(4): Update all firmwares to 1.19.1.0. r333650: cxgbe(4): Claim some more T5 and T6 boards. r333652: cxgbe(4): Add support for two more flash parts. r334406: cxgbe(4): Consider all supported speeds when building the ifmedia list for a port. Fix other related issues while here: - Require port lock for access to link_config. - Allow 100Mbps operation by tracking the speed in Mbps. Yes, really. - New port flag to indicate that the media list is immutable. It will be used in future refinements. This also fixes a bug where the driver reports incorrect media with recent firmwares. r334409: cxgbe(4): Implement ifm_change callback. r334410: cxgbe(4): Use ifm for ifmedia just like the rest of the kernel. No functional change. r334489: cxgbe(4): Include full duplex mediaopt in media that can be reported as active. Always report full duplex in active media. r336042: cxgbe(4): Assume that any unknown flash on the card is 4MB and has 64KB sectors, instead of refusing to attach to the card. r340651: cxgbe(4): Update T4/5/6 firmwares to 1.22.0.3. r342603: cxgbe(4): Attach to two T540 variants. r345083: cxgbe(4): Update T4/5/6 firmwares to 1.23.0.0. Added: stable/10/sys/dev/cxgbe/firmware/t4fw-1.23.0.0.bin.uu - copied unchanged from r345083, head/sys/dev/cxgbe/firmware/t4fw-1.23.0.0.bin.uu stable/10/sys/dev/cxgbe/firmware/t5fw-1.23.0.0.bin.uu - copied unchanged from r345083, head/sys/dev/cxgbe/firmware/t5fw-1.23.0.0.bin.uu stable/10/sys/dev/cxgbe/firmware/t6fw-1.23.0.0.bin.uu - copied unchanged from r345083, head/sys/dev/cxgbe/firmware/t6fw-1.23.0.0.bin.uu Deleted: stable/10/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu stable/10/sys/dev/cxgbe/firmware/t5fw-1.16.63.0.bin.uu stable/10/sys/dev/cxgbe/firmware/t6fw-1.16.63.0.bin.uu Modified: stable/10/sys/conf/files stable/10/sys/dev/cxgbe/adapter.h stable/10/sys/dev/cxgbe/common/common.h stable/10/sys/dev/cxgbe/common/t4_hw.c stable/10/sys/dev/cxgbe/firmware/t4fw_interface.h stable/10/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt stable/10/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt stable/10/sys/dev/cxgbe/t4_main.c stable/10/sys/dev/cxgbe/t4_sge.c stable/10/sys/modules/cxgbe/t4_firmware/Makefile stable/10/sys/modules/cxgbe/t5_firmware/Makefile stable/10/sys/modules/cxgbe/t6_firmware/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/files ============================================================================== --- stable/10/sys/conf/files Thu Oct 10 22:49:45 2019 (r353417) +++ stable/10/sys/conf/files Thu Oct 10 23:27:02 2019 (r353418) @@ -1195,7 +1195,7 @@ t4fw.fwo optional cxgbe \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t4fw-1.23.0.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" @@ -1219,7 +1219,7 @@ t5fw.fwo optional cxgbe \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t5fw-1.16.63.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t5fw-1.23.0.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" @@ -1243,7 +1243,7 @@ t6fw.fwo optional cxgbe \ no-implicit-rule \ clean "t6fw.fwo" t6fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t6fw-1.16.63.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t6fw-1.23.0.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t6fw.fw" Modified: stable/10/sys/dev/cxgbe/adapter.h ============================================================================== --- stable/10/sys/dev/cxgbe/adapter.h Thu Oct 10 22:49:45 2019 (r353417) +++ stable/10/sys/dev/cxgbe/adapter.h Thu Oct 10 23:27:02 2019 (r353418) @@ -156,6 +156,7 @@ enum { /* port flags */ HAS_TRACEQ = (1 << 3), + FIXED_IFMEDIA = (1 << 4), /* ifmedia list doesn't change. */ /* VI flags */ DOOMED = (1 << 0), @@ -180,7 +181,6 @@ struct vi_info { struct port_info *pi; struct ifnet *ifp; - struct ifmedia media; unsigned long flags; int if_flags; @@ -281,6 +281,8 @@ struct port_info { uint8_t rx_chan_map; /* rx MPS channel bitmap */ struct link_config link_cfg; + struct link_config old_link_cfg; + struct ifmedia media; struct timeval last_refreshed; struct port_stats stats; @@ -1026,10 +1028,10 @@ adap2pinfo(struct adapter *sc, int idx) } static inline void -t4_os_set_hw_addr(struct adapter *sc, int idx, uint8_t hw_addr[]) +t4_os_set_hw_addr(struct port_info *pi, uint8_t hw_addr[]) { - bcopy(hw_addr, sc->port[idx]->vi[0].hw_addr, ETHER_ADDR_LEN); + bcopy(hw_addr, pi->vi[0].hw_addr, ETHER_ADDR_LEN); } static inline bool @@ -1079,24 +1081,6 @@ port_top_speed(const struct port_info *pi) } static inline int -port_top_speed_raw(const struct port_info *pi) -{ - - if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_100G) - return (FW_PORT_CAP_SPEED_100G); - if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_40G) - return (FW_PORT_CAP_SPEED_40G); - if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_25G) - return (FW_PORT_CAP_SPEED_25G); - if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_10G) - return (FW_PORT_CAP_SPEED_10G); - if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_1G) - return (FW_PORT_CAP_SPEED_1G); - - return (0); -} - -static inline int tx_resume_threshold(struct sge_eq *eq) { @@ -1132,8 +1116,8 @@ extern device_method_t cxgbe_methods[]; int t4_os_find_pci_capability(struct adapter *, int); int t4_os_pci_save_state(struct adapter *); int t4_os_pci_restore_state(struct adapter *); -void t4_os_portmod_changed(const struct adapter *, int); -void t4_os_link_changed(struct adapter *, int, int); +void t4_os_portmod_changed(struct port_info *); +void t4_os_link_changed(struct port_info *); void t4_iterate(void (*)(struct adapter *, void *), void *); void t4_init_devnames(struct adapter *); void t4_add_adapter(struct adapter *); Modified: stable/10/sys/dev/cxgbe/common/common.h ============================================================================== --- stable/10/sys/dev/cxgbe/common/common.h Thu Oct 10 22:49:45 2019 (r353417) +++ stable/10/sys/dev/cxgbe/common/common.h Thu Oct 10 23:27:02 2019 (r353418) @@ -399,16 +399,18 @@ struct trace_params { }; struct link_config { + /* OS-specific code owns all the requested_* fields */ + unsigned char requested_aneg; /* link aneg user has requested */ + unsigned char requested_fc; /* flow control user has requested */ + unsigned char requested_fec; /* FEC user has requested */ + unsigned int requested_speed; /* speed user has requested (Mbps) */ + unsigned short supported; /* link capabilities */ unsigned short advertising; /* advertised capabilities */ unsigned short lp_advertising; /* peer advertised capabilities */ - unsigned int requested_speed; /* speed user has requested */ - unsigned int speed; /* actual link speed */ - unsigned char requested_fc; /* flow control user has requested */ + unsigned int speed; /* actual link speed (Mbps) */ unsigned char fc; /* actual link flow control */ - unsigned char requested_fec; /* FEC user has requested */ unsigned char fec; /* actual FEC */ - unsigned char autoneg; /* autonegotiating? */ unsigned char link_ok; /* link up? */ unsigned char link_down_rc; /* link down reason */ }; @@ -576,7 +578,7 @@ int t4_prep_adapter(struct adapter *adapter, u8 *buf); int t4_shutdown_adapter(struct adapter *adapter); int t4_init_devlog_params(struct adapter *adapter, int fw_attach); int t4_init_sge_params(struct adapter *adapter); -int t4_init_tp_params(struct adapter *adap); +int t4_init_tp_params(struct adapter *adap, bool sleep_ok); int t4_filter_field_shift(const struct adapter *adap, int filter_sel); int t4_port_init(struct adapter *adap, int mbox, int pf, int vf, int port_id); void t4_fatal_err(struct adapter *adapter); @@ -594,20 +596,21 @@ int t4_config_vi_rss(struct adapter *adapter, int mbox unsigned int flags, unsigned int defq, unsigned int skeyidx, unsigned int skey); int t4_read_rss(struct adapter *adapter, u16 *entries); -void t4_fw_tp_pio_rw(struct adapter *adap, u32 *vals, unsigned int nregs, - unsigned int start_index, unsigned int rw); -void t4_read_rss_key(struct adapter *adapter, u32 *key); -void t4_write_rss_key(struct adapter *adap, u32 *key, int idx); -void t4_read_rss_pf_config(struct adapter *adapter, unsigned int index, u32 *valp); -void t4_write_rss_pf_config(struct adapter *adapter, unsigned int index, u32 val); +void t4_read_rss_key(struct adapter *adapter, u32 *key, bool sleep_ok); +void t4_write_rss_key(struct adapter *adap, const u32 *key, int idx, + bool sleep_ok); +void t4_read_rss_pf_config(struct adapter *adapter, unsigned int index, + u32 *valp, bool sleep_ok); +void t4_write_rss_pf_config(struct adapter *adapter, unsigned int index, + u32 val, bool sleep_ok); void t4_read_rss_vf_config(struct adapter *adapter, unsigned int index, - u32 *vfl, u32 *vfh); + u32 *vfl, u32 *vfh, bool sleep_ok); void t4_write_rss_vf_config(struct adapter *adapter, unsigned int index, - u32 vfl, u32 vfh); -u32 t4_read_rss_pf_map(struct adapter *adapter); -void t4_write_rss_pf_map(struct adapter *adapter, u32 pfmap); -u32 t4_read_rss_pf_mask(struct adapter *adapter); -void t4_write_rss_pf_mask(struct adapter *adapter, u32 pfmask); + u32 vfl, u32 vfh, bool sleep_ok); +u32 t4_read_rss_pf_map(struct adapter *adapter, bool sleep_ok); +void t4_write_rss_pf_map(struct adapter *adapter, u32 pfmap, bool sleep_ok); +u32 t4_read_rss_pf_mask(struct adapter *adapter, bool sleep_ok); +void t4_write_rss_pf_mask(struct adapter *adapter, u32 pfmask, bool sleep_ok); int t4_mps_set_active_ports(struct adapter *adap, unsigned int port_mask); void t4_pmtx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[]); void t4_pmrx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[]); @@ -653,19 +656,24 @@ void t4_read_mtu_tbl(struct adapter *adap, u16 *mtus, void t4_read_cong_tbl(struct adapter *adap, u16 incr[NMTUS][NCCTRL_WIN]); void t4_read_pace_tbl(struct adapter *adap, unsigned int pace_vals[NTX_SCHED]); void t4_get_tx_sched(struct adapter *adap, unsigned int sched, unsigned int *kbps, - unsigned int *ipg); + unsigned int *ipg, bool sleep_ok); void t4_tp_wr_bits_indirect(struct adapter *adap, unsigned int addr, unsigned int mask, unsigned int val); void t4_tp_read_la(struct adapter *adap, u64 *la_buf, unsigned int *wrptr); -void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st); -void t4_tp_get_proxy_stats(struct adapter *adap, struct tp_proxy_stats *st); -void t4_tp_get_cpl_stats(struct adapter *adap, struct tp_cpl_stats *st); -void t4_tp_get_rdma_stats(struct adapter *adap, struct tp_rdma_stats *st); -void t4_get_usm_stats(struct adapter *adap, struct tp_usm_stats *st); +void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st, + bool sleep_ok); +void t4_tp_get_proxy_stats(struct adapter *adap, struct tp_proxy_stats *st, + bool sleep_ok); +void t4_tp_get_cpl_stats(struct adapter *adap, struct tp_cpl_stats *st, + bool sleep_ok); +void t4_tp_get_rdma_stats(struct adapter *adap, struct tp_rdma_stats *st, + bool sleep_ok); +void t4_get_usm_stats(struct adapter *adap, struct tp_usm_stats *st, + bool sleep_ok); void t4_tp_get_tcp_stats(struct adapter *adap, struct tp_tcp_stats *v4, - struct tp_tcp_stats *v6); + struct tp_tcp_stats *v6, bool sleep_ok); void t4_get_fcoe_stats(struct adapter *adap, unsigned int idx, - struct tp_fcoe_stats *st); + struct tp_fcoe_stats *st, bool sleep_ok); void t4_load_mtus(struct adapter *adap, const unsigned short *mtus, const unsigned short *alpha, const unsigned short *beta); @@ -676,7 +684,8 @@ int t4_set_sched_ipg(struct adapter *adap, int sched, int t4_set_pace_tbl(struct adapter *adap, const unsigned int *pace_vals, unsigned int start, unsigned int n); void t4_get_chan_txrate(struct adapter *adap, u64 *nic_rate, u64 *ofld_rate); -int t4_set_filter_mode(struct adapter *adap, unsigned int mode_map); +int t4_set_filter_mode(struct adapter *adap, unsigned int mode_map, + bool sleep_ok); void t4_mk_filtdelwr(unsigned int ftid, struct fw_filter_wr *wr, int qid); void t4_wol_magic_enable(struct adapter *adap, unsigned int port, const u8 *addr); @@ -766,6 +775,7 @@ int t4_sge_ctxt_rd_bd(struct adapter *adap, unsigned i u32 *data); int t4_sge_ctxt_flush(struct adapter *adap, unsigned int mbox); const char *t4_link_down_rc_str(unsigned char link_down_rc); +int t4_update_port_info(struct port_info *pi); int t4_handle_fw_rpl(struct adapter *adap, const __be64 *rpl); int t4_fwaddrspace_write(struct adapter *adap, unsigned int mbox, u32 addr, u32 val); int t4_sched_config(struct adapter *adapter, int type, int minmaxen, @@ -787,6 +797,15 @@ int t4_config_watchdog(struct adapter *adapter, unsign int t4_get_devlog_level(struct adapter *adapter, unsigned int *level); int t4_set_devlog_level(struct adapter *adapter, unsigned int level); void t4_sge_decode_idma_state(struct adapter *adapter, int state); + +void t4_tp_pio_read(struct adapter *adap, u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok); +void t4_tp_pio_write(struct adapter *adap, const u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok); +void t4_tp_tm_pio_read(struct adapter *adap, u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok); +void t4_tp_mib_read(struct adapter *adap, u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok); static inline int t4vf_query_params(struct adapter *adapter, unsigned int nparams, const u32 *params, Modified: stable/10/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- stable/10/sys/dev/cxgbe/common/t4_hw.c Thu Oct 10 22:49:45 2019 (r353417) +++ stable/10/sys/dev/cxgbe/common/t4_hw.c Thu Oct 10 23:27:02 2019 (r353418) @@ -466,7 +466,7 @@ static int t4_edc_err_read(struct adapter *adap, int i CH_WARN(adap, "%s: T4 NOT supported.\n", __func__); return 0; } - if (idx != 0 && idx != 1) { + if (idx != MEM_EDC0 && idx != MEM_EDC1) { CH_WARN(adap, "%s: idx %d NOT supported.\n", __func__, idx); return 0; } @@ -883,7 +883,8 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0xd010, 0xd03c, 0xdfc0, 0xdfe0, 0xe000, 0xea7c, - 0xf000, 0x11190, + 0xf000, 0x11110, + 0x11118, 0x11190, 0x19040, 0x1906c, 0x19078, 0x19080, 0x1908c, 0x190e4, @@ -1421,8 +1422,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x1ff00, 0x1ff84, 0x1ffc0, 0x1ffc8, 0x30000, 0x30030, - 0x30038, 0x30038, - 0x30040, 0x30040, 0x30100, 0x30144, 0x30190, 0x301a0, 0x301a8, 0x301b8, @@ -1533,8 +1532,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x33c3c, 0x33c50, 0x33cf0, 0x33cfc, 0x34000, 0x34030, - 0x34038, 0x34038, - 0x34040, 0x34040, 0x34100, 0x34144, 0x34190, 0x341a0, 0x341a8, 0x341b8, @@ -1645,8 +1642,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x37c3c, 0x37c50, 0x37cf0, 0x37cfc, 0x38000, 0x38030, - 0x38038, 0x38038, - 0x38040, 0x38040, 0x38100, 0x38144, 0x38190, 0x381a0, 0x381a8, 0x381b8, @@ -1757,8 +1752,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x3bc3c, 0x3bc50, 0x3bcf0, 0x3bcfc, 0x3c000, 0x3c030, - 0x3c038, 0x3c038, - 0x3c040, 0x3c040, 0x3c100, 0x3c144, 0x3c190, 0x3c1a0, 0x3c1a8, 0x3c1b8, @@ -2251,13 +2244,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x1ff00, 0x1ff84, 0x1ffc0, 0x1ffc8, 0x30000, 0x30030, - 0x30038, 0x30038, - 0x30040, 0x30040, - 0x30048, 0x30048, - 0x30050, 0x30050, - 0x3005c, 0x30060, - 0x30068, 0x30068, - 0x30070, 0x30070, 0x30100, 0x30168, 0x30190, 0x301a0, 0x301a8, 0x301b8, @@ -2320,13 +2306,12 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x326a8, 0x326a8, 0x326ec, 0x326ec, 0x32a00, 0x32abc, - 0x32b00, 0x32b38, + 0x32b00, 0x32b18, + 0x32b20, 0x32b38, 0x32b40, 0x32b58, 0x32b60, 0x32b78, 0x32c00, 0x32c00, 0x32c08, 0x32c3c, - 0x32e00, 0x32e2c, - 0x32f00, 0x32f2c, 0x33000, 0x3302c, 0x33034, 0x33050, 0x33058, 0x33058, @@ -2391,13 +2376,6 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x33c38, 0x33c50, 0x33cf0, 0x33cfc, 0x34000, 0x34030, - 0x34038, 0x34038, - 0x34040, 0x34040, - 0x34048, 0x34048, - 0x34050, 0x34050, - 0x3405c, 0x34060, - 0x34068, 0x34068, - 0x34070, 0x34070, 0x34100, 0x34168, 0x34190, 0x341a0, 0x341a8, 0x341b8, @@ -2460,13 +2438,12 @@ void t4_get_regs(struct adapter *adap, u8 *buf, size_t 0x366a8, 0x366a8, 0x366ec, 0x366ec, 0x36a00, 0x36abc, - 0x36b00, 0x36b38, + 0x36b00, 0x36b18, + 0x36b20, 0x36b38, 0x36b40, 0x36b58, 0x36b60, 0x36b78, 0x36c00, 0x36c00, 0x36c08, 0x36c3c, - 0x36e00, 0x36e2c, - 0x36f00, 0x36f2c, 0x37000, 0x3702c, 0x37034, 0x37050, 0x37058, 0x37058, @@ -2697,6 +2674,7 @@ struct t4_vpd_hdr { #define EEPROM_MAX_POLL 5000 /* x 5000 == 50ms */ #define EEPROM_STAT_ADDR 0x7bfc +#define VPD_SIZE 0x800 #define VPD_BASE 0x400 #define VPD_BASE_OLD 0 #define VPD_LEN 1024 @@ -3037,13 +3015,13 @@ enum { SF_ATTEMPTS = 10, /* max retries for SF operations */ /* flash command opcodes */ - SF_PROG_PAGE = 2, /* program page */ + SF_PROG_PAGE = 2, /* program 256B page */ SF_WR_DISABLE = 4, /* disable writes */ SF_RD_STATUS = 5, /* read status register */ SF_WR_ENABLE = 6, /* enable writes */ SF_RD_DATA_FAST = 0xb, /* read flash */ SF_RD_ID = 0x9f, /* read ID */ - SF_ERASE_SECTOR = 0xd8, /* erase sector */ + SF_ERASE_SECTOR = 0xd8, /* erase 64KB sector */ }; /** @@ -3680,9 +3658,6 @@ void t4_ulprx_read_la(struct adapter *adap, u32 *la_bu } } -#define ADVERT_MASK (V_FW_PORT_CAP_SPEED(M_FW_PORT_CAP_SPEED) | \ - FW_PORT_CAP_ANEG) - /** * t4_link_l1cfg - apply link configuration to MAC/PHY * @phy: the PHY to setup @@ -3701,7 +3676,7 @@ int t4_link_l1cfg(struct adapter *adap, unsigned int m { struct fw_port_cmd c; unsigned int mdi = V_FW_PORT_CAP_MDI(FW_PORT_CAP_MDI_AUTO); - unsigned int fc, fec; + unsigned int aneg, fc, fec, speed, rcap; fc = 0; if (lc->requested_fc & PAUSE_RX) @@ -3711,12 +3686,51 @@ int t4_link_l1cfg(struct adapter *adap, unsigned int m fec = 0; if (lc->requested_fec & FEC_RS) - fec |= FW_PORT_CAP_FEC_RS; - if (lc->requested_fec & FEC_BASER_RS) - fec |= FW_PORT_CAP_FEC_BASER_RS; - if (lc->requested_fec & FEC_RESERVED) - fec |= FW_PORT_CAP_FEC_RESERVED; + fec = FW_PORT_CAP_FEC_RS; + else if (lc->requested_fec & FEC_BASER_RS) + fec = FW_PORT_CAP_FEC_BASER_RS; + if (!(lc->supported & FW_PORT_CAP_ANEG) || + lc->requested_aneg == AUTONEG_DISABLE) { + aneg = 0; + switch (lc->requested_speed) { + case 100000: + speed = FW_PORT_CAP_SPEED_100G; + break; + case 40000: + speed = FW_PORT_CAP_SPEED_40G; + break; + case 25000: + speed = FW_PORT_CAP_SPEED_25G; + break; + case 10000: + speed = FW_PORT_CAP_SPEED_10G; + break; + case 1000: + speed = FW_PORT_CAP_SPEED_1G; + break; + case 100: + speed = FW_PORT_CAP_SPEED_100M; + break; + default: + return -EINVAL; + break; + } + } else { + aneg = FW_PORT_CAP_ANEG; + speed = lc->supported & + V_FW_PORT_CAP_SPEED(M_FW_PORT_CAP_SPEED); + } + + rcap = aneg | speed | fc | fec | mdi; + if ((rcap | lc->supported) != lc->supported) { +#ifdef INVARIANTS + CH_WARN(adap, "rcap 0x%08x, pcap 0x%08x\n", rcap, + lc->supported); +#endif + rcap &= lc->supported; + } + memset(&c, 0, sizeof(c)); c.op_to_portid = cpu_to_be32(V_FW_CMD_OP(FW_PORT_CMD) | F_FW_CMD_REQUEST | F_FW_CMD_EXEC | @@ -3724,21 +3738,9 @@ int t4_link_l1cfg(struct adapter *adap, unsigned int m c.action_to_len16 = cpu_to_be32(V_FW_PORT_CMD_ACTION(FW_PORT_ACTION_L1_CFG) | FW_LEN16(c)); + c.u.l1cfg.rcap = cpu_to_be32(rcap); - if (!(lc->supported & FW_PORT_CAP_ANEG)) { - c.u.l1cfg.rcap = cpu_to_be32((lc->supported & ADVERT_MASK) | - fc | fec); - lc->fc = lc->requested_fc & ~PAUSE_AUTONEG; - lc->fec = lc->requested_fec; - } else if (lc->autoneg == AUTONEG_DISABLE) { - c.u.l1cfg.rcap = cpu_to_be32(lc->requested_speed | - fc | fec | mdi); - lc->fc = lc->requested_fc & ~PAUSE_AUTONEG; - lc->fec = lc->requested_fec; - } else - c.u.l1cfg.rcap = cpu_to_be32(lc->advertising | fc | fec | mdi); - - return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL); + return t4_wr_mbox_ns(adap, mbox, &c, sizeof(c), NULL); } /** @@ -3977,6 +3979,9 @@ static void sge_intr_handler(struct adapter *adapter) "SGE too many priority ingress contexts", -1, 0 }, { F_INGRESS_SIZE_ERR, "SGE illegal ingress QID", -1, 0 }, { F_EGRESS_SIZE_ERR, "SGE illegal egress QID", -1, 0 }, + { F_ERR_PCIE_ERROR0 | F_ERR_PCIE_ERROR1 | + F_ERR_PCIE_ERROR2 | F_ERR_PCIE_ERROR3, + "SGE PCIe error for a DBP thread", -1, 0 }, { 0 } }; @@ -3992,8 +3997,6 @@ static void sge_intr_handler(struct adapter *adapter) * For now, treat below interrupts as fatal so that we disable SGE and * get better debug */ static const struct intr_info t6_sge_intr_info[] = { - { F_ERR_PCIE_ERROR0 | F_ERR_PCIE_ERROR1, - "SGE PCIe error for a DBP thread", -1, 1 }, { F_FATAL_WRE_LEN, "SGE Actual WRE packet is less than advertized length", -1, 1 }, @@ -4048,6 +4051,7 @@ static void cim_intr_handler(struct adapter *adapter) { F_MBHOSTPARERR, "CIM mailbox host parity error", -1, 1 }, { F_TIEQINPARERRINT, "CIM TIEQ outgoing parity error", -1, 1 }, { F_TIEQOUTPARERRINT, "CIM TIEQ incoming parity error", -1, 1 }, + { F_TIMER0INT, "CIM TIMER0 interrupt", -1, 1 }, { 0 } }; static const struct intr_info cim_upintr_info[] = { @@ -4081,11 +4085,26 @@ static void cim_intr_handler(struct adapter *adapter) { F_TIMEOUTMAINT , "CIM PIF MA timeout", -1, 1 }, { 0 } }; + u32 val, fw_err; int fat; - if (t4_read_reg(adapter, A_PCIE_FW) & F_PCIE_FW_ERR) + fw_err = t4_read_reg(adapter, A_PCIE_FW); + if (fw_err & F_PCIE_FW_ERR) t4_report_fw_error(adapter); + /* When the Firmware detects an internal error which normally wouldn't + * raise a Host Interrupt, it forces a CIM Timer0 interrupt in order + * to make sure the Host sees the Firmware Crash. So if we have a + * Timer0 interrupt and don't see a Firmware Crash, ignore the Timer0 + * interrupt. + */ + val = t4_read_reg(adapter, A_CIM_HOST_INT_CAUSE); + if (val & F_TIMER0INT) + if (!(fw_err & F_PCIE_FW_ERR) || + (G_PCIE_FW_EVAL(fw_err) != PCIE_FW_EVAL_CRASH)) + t4_write_reg(adapter, A_CIM_HOST_INT_CAUSE, + F_TIMER0INT); + fat = t4_handle_intr_status(adapter, A_CIM_HOST_INT_CAUSE, cim_intr_info) + t4_handle_intr_status(adapter, A_CIM_HOST_UPACC_INT_CAUSE, @@ -4833,55 +4852,177 @@ int t4_read_rss(struct adapter *adapter, u16 *map) } /** - * t4_fw_tp_pio_rw - Access TP PIO through LDST - * @adap: the adapter - * @vals: where the indirect register values are stored/written - * @nregs: how many indirect registers to read/write - * @start_idx: index of first indirect register to read/write - * @rw: Read (1) or Write (0) + * t4_tp_fw_ldst_rw - Access TP indirect register through LDST + * @adap: the adapter + * @cmd: TP fw ldst address space type + * @vals: where the indirect register values are stored/written + * @nregs: how many indirect registers to read/write + * @start_idx: index of first indirect register to read/write + * @rw: Read (1) or Write (0) + * @sleep_ok: if true we may sleep while awaiting command completion * - * Access TP PIO registers through LDST - */ -void t4_fw_tp_pio_rw(struct adapter *adap, u32 *vals, unsigned int nregs, - unsigned int start_index, unsigned int rw) + * Access TP indirect registers through LDST + **/ +static int t4_tp_fw_ldst_rw(struct adapter *adap, int cmd, u32 *vals, + unsigned int nregs, unsigned int start_index, + unsigned int rw, bool sleep_ok) { - int ret, i; - int cmd = FW_LDST_ADDRSPC_TP_PIO; + int ret = 0; + unsigned int i; struct fw_ldst_cmd c; - for (i = 0 ; i < nregs; i++) { + for (i = 0; i < nregs; i++) { memset(&c, 0, sizeof(c)); c.op_to_addrspace = cpu_to_be32(V_FW_CMD_OP(FW_LDST_CMD) | F_FW_CMD_REQUEST | (rw ? F_FW_CMD_READ : - F_FW_CMD_WRITE) | + F_FW_CMD_WRITE) | V_FW_LDST_CMD_ADDRSPACE(cmd)); c.cycles_to_len16 = cpu_to_be32(FW_LEN16(c)); c.u.addrval.addr = cpu_to_be32(start_index + i); c.u.addrval.val = rw ? 0 : cpu_to_be32(vals[i]); - ret = t4_wr_mbox(adap, adap->mbox, &c, sizeof(c), &c); - if (ret == 0) { - if (rw) - vals[i] = be32_to_cpu(c.u.addrval.val); - } + ret = t4_wr_mbox_meat(adap, adap->mbox, &c, sizeof(c), &c, + sleep_ok); + if (ret) + return ret; + + if (rw) + vals[i] = be32_to_cpu(c.u.addrval.val); } + return 0; } /** + * t4_tp_indirect_rw - Read/Write TP indirect register through LDST or backdoor + * @adap: the adapter + * @reg_addr: Address Register + * @reg_data: Data register + * @buff: where the indirect register values are stored/written + * @nregs: how many indirect registers to read/write + * @start_index: index of first indirect register to read/write + * @rw: READ(1) or WRITE(0) + * @sleep_ok: if true we may sleep while awaiting command completion + * + * Read/Write TP indirect registers through LDST if possible. + * Else, use backdoor access + **/ +static void t4_tp_indirect_rw(struct adapter *adap, u32 reg_addr, u32 reg_data, + u32 *buff, u32 nregs, u32 start_index, int rw, + bool sleep_ok) +{ + int rc = -EINVAL; + int cmd; + + switch (reg_addr) { + case A_TP_PIO_ADDR: + cmd = FW_LDST_ADDRSPC_TP_PIO; + break; + case A_TP_TM_PIO_ADDR: + cmd = FW_LDST_ADDRSPC_TP_TM_PIO; + break; + case A_TP_MIB_INDEX: + cmd = FW_LDST_ADDRSPC_TP_MIB; + break; + default: + goto indirect_access; + } + + if (t4_use_ldst(adap)) + rc = t4_tp_fw_ldst_rw(adap, cmd, buff, nregs, start_index, rw, + sleep_ok); + +indirect_access: + + if (rc) { + if (rw) + t4_read_indirect(adap, reg_addr, reg_data, buff, nregs, + start_index); + else + t4_write_indirect(adap, reg_addr, reg_data, buff, nregs, + start_index); + } +} + +/** + * t4_tp_pio_read - Read TP PIO registers + * @adap: the adapter + * @buff: where the indirect register values are written + * @nregs: how many indirect registers to read + * @start_index: index of first indirect register to read + * @sleep_ok: if true we may sleep while awaiting command completion + * + * Read TP PIO Registers + **/ +void t4_tp_pio_read(struct adapter *adap, u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok) +{ + t4_tp_indirect_rw(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA, buff, nregs, + start_index, 1, sleep_ok); +} + +/** + * t4_tp_pio_write - Write TP PIO registers + * @adap: the adapter + * @buff: where the indirect register values are stored + * @nregs: how many indirect registers to write + * @start_index: index of first indirect register to write + * @sleep_ok: if true we may sleep while awaiting command completion + * + * Write TP PIO Registers + **/ +void t4_tp_pio_write(struct adapter *adap, const u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok) +{ + t4_tp_indirect_rw(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA, + __DECONST(u32 *, buff), nregs, start_index, 0, sleep_ok); +} + +/** + * t4_tp_tm_pio_read - Read TP TM PIO registers + * @adap: the adapter + * @buff: where the indirect register values are written + * @nregs: how many indirect registers to read + * @start_index: index of first indirect register to read + * @sleep_ok: if true we may sleep while awaiting command completion + * + * Read TP TM PIO Registers + **/ +void t4_tp_tm_pio_read(struct adapter *adap, u32 *buff, u32 nregs, + u32 start_index, bool sleep_ok) +{ + t4_tp_indirect_rw(adap, A_TP_TM_PIO_ADDR, A_TP_TM_PIO_DATA, buff, + nregs, start_index, 1, sleep_ok); +} + +/** + * t4_tp_mib_read - Read TP MIB registers + * @adap: the adapter + * @buff: where the indirect register values are written + * @nregs: how many indirect registers to read + * @start_index: index of first indirect register to read + * @sleep_ok: if true we may sleep while awaiting command completion + * + * Read TP MIB Registers + **/ +void t4_tp_mib_read(struct adapter *adap, u32 *buff, u32 nregs, u32 start_index, + bool sleep_ok) +{ + t4_tp_indirect_rw(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, buff, nregs, + start_index, 1, sleep_ok); +} + +/** * t4_read_rss_key - read the global RSS key * @adap: the adapter * @key: 10-entry array holding the 320-bit RSS key + * @sleep_ok: if true we may sleep while awaiting command completion * * Reads the global 320-bit RSS key. */ -void t4_read_rss_key(struct adapter *adap, u32 *key) +void t4_read_rss_key(struct adapter *adap, u32 *key, bool sleep_ok) { - if (t4_use_ldst(adap)) - t4_fw_tp_pio_rw(adap, key, 10, A_TP_RSS_SECRET_KEY0, 1); - else - t4_read_indirect(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA, key, 10, - A_TP_RSS_SECRET_KEY0); + t4_tp_pio_read(adap, key, 10, A_TP_RSS_SECRET_KEY0, sleep_ok); } /** @@ -4889,12 +5030,14 @@ void t4_read_rss_key(struct adapter *adap, u32 *key) * @adap: the adapter * @key: 10-entry array holding the 320-bit RSS key * @idx: which RSS key to write + * @sleep_ok: if true we may sleep while awaiting command completion * * Writes one of the RSS keys with the given 320-bit value. If @idx is * 0..15 the corresponding entry in the RSS key table is written, * otherwise the global RSS key is written. */ -void t4_write_rss_key(struct adapter *adap, u32 *key, int idx) +void t4_write_rss_key(struct adapter *adap, const u32 *key, int idx, + bool sleep_ok) { u8 rss_key_addr_cnt = 16; u32 vrt = t4_read_reg(adap, A_TP_RSS_CONFIG_VRT); @@ -4908,11 +5051,7 @@ void t4_write_rss_key(struct adapter *adap, u32 *key, (vrt & F_KEYEXTEND) && (G_KEYMODE(vrt) == 3)) rss_key_addr_cnt = 32; - if (t4_use_ldst(adap)) - t4_fw_tp_pio_rw(adap, key, 10, A_TP_RSS_SECRET_KEY0, 0); - else - t4_write_indirect(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA, key, 10, - A_TP_RSS_SECRET_KEY0); + t4_tp_pio_write(adap, key, 10, A_TP_RSS_SECRET_KEY0, sleep_ok); if (idx >= 0 && idx < rss_key_addr_cnt) { if (rss_key_addr_cnt > 16) @@ -4930,19 +5069,15 @@ void t4_write_rss_key(struct adapter *adap, u32 *key, * @adapter: the adapter * @index: the entry in the PF RSS table to read * @valp: where to store the returned value + * @sleep_ok: if true we may sleep while awaiting command completion * * Reads the PF RSS Configuration Table at the specified index and returns * the value found there. */ void t4_read_rss_pf_config(struct adapter *adapter, unsigned int index, - u32 *valp) + u32 *valp, bool sleep_ok) { - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, valp, 1, - A_TP_RSS_PF0_CONFIG + index, 1); - else - t4_read_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - valp, 1, A_TP_RSS_PF0_CONFIG + index); + t4_tp_pio_read(adapter, valp, 1, A_TP_RSS_PF0_CONFIG + index, sleep_ok); } /** @@ -4950,19 +5085,16 @@ void t4_read_rss_pf_config(struct adapter *adapter, un * @adapter: the adapter * @index: the entry in the VF RSS table to read * @val: the value to store + * @sleep_ok: if true we may sleep while awaiting command completion * * Writes the PF RSS Configuration Table at the specified index with the * specified value. */ void t4_write_rss_pf_config(struct adapter *adapter, unsigned int index, - u32 val) + u32 val, bool sleep_ok) { - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, &val, 1, - A_TP_RSS_PF0_CONFIG + index, 0); - else - t4_write_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &val, 1, A_TP_RSS_PF0_CONFIG + index); + t4_tp_pio_write(adapter, &val, 1, A_TP_RSS_PF0_CONFIG + index, + sleep_ok); } /** @@ -4971,12 +5103,13 @@ void t4_write_rss_pf_config(struct adapter *adapter, u * @index: the entry in the VF RSS table to read * @vfl: where to store the returned VFL * @vfh: where to store the returned VFH + * @sleep_ok: if true we may sleep while awaiting command completion * * Reads the VF RSS Configuration Table at the specified index and returns * the (VFL, VFH) values found there. */ void t4_read_rss_vf_config(struct adapter *adapter, unsigned int index, - u32 *vfl, u32 *vfh) + u32 *vfl, u32 *vfh, bool sleep_ok) { u32 vrt, mask, data; @@ -4998,15 +5131,8 @@ void t4_read_rss_vf_config(struct adapter *adapter, un /* * Grab the VFL/VFH values ... */ - if (t4_use_ldst(adapter)) { - t4_fw_tp_pio_rw(adapter, vfl, 1, A_TP_RSS_VFL_CONFIG, 1); - t4_fw_tp_pio_rw(adapter, vfh, 1, A_TP_RSS_VFH_CONFIG, 1); - } else { - t4_read_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - vfl, 1, A_TP_RSS_VFL_CONFIG); - t4_read_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - vfh, 1, A_TP_RSS_VFH_CONFIG); - } + t4_tp_pio_read(adapter, vfl, 1, A_TP_RSS_VFL_CONFIG, sleep_ok); + t4_tp_pio_read(adapter, vfh, 1, A_TP_RSS_VFH_CONFIG, sleep_ok); } /** @@ -5021,7 +5147,7 @@ void t4_read_rss_vf_config(struct adapter *adapter, un * specified (VFL, VFH) values. */ void t4_write_rss_vf_config(struct adapter *adapter, unsigned int index, - u32 vfl, u32 vfh) + u32 vfl, u32 vfh, bool sleep_ok) { u32 vrt, mask, data; @@ -5036,15 +5162,8 @@ void t4_write_rss_vf_config(struct adapter *adapter, u /* * Load up VFL/VFH with the values to be written ... */ - if (t4_use_ldst(adapter)) { - t4_fw_tp_pio_rw(adapter, &vfl, 1, A_TP_RSS_VFL_CONFIG, 0); - t4_fw_tp_pio_rw(adapter, &vfh, 1, A_TP_RSS_VFH_CONFIG, 0); - } else { - t4_write_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &vfl, 1, A_TP_RSS_VFL_CONFIG); - t4_write_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &vfh, 1, A_TP_RSS_VFH_CONFIG); - } + t4_tp_pio_write(adapter, &vfl, 1, A_TP_RSS_VFL_CONFIG, sleep_ok); + t4_tp_pio_write(adapter, &vfh, 1, A_TP_RSS_VFH_CONFIG, sleep_ok); /* * Write the VFL/VFH into the VF Table at index'th location. @@ -5058,18 +5177,16 @@ void t4_write_rss_vf_config(struct adapter *adapter, u /** * t4_read_rss_pf_map - read PF RSS Map * @adapter: the adapter + * @sleep_ok: if true we may sleep while awaiting command completion * * Reads the PF RSS Map register and returns its value. */ -u32 t4_read_rss_pf_map(struct adapter *adapter) +u32 t4_read_rss_pf_map(struct adapter *adapter, bool sleep_ok) { u32 pfmap; - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, &pfmap, 1, A_TP_RSS_PF_MAP, 1); - else - t4_read_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &pfmap, 1, A_TP_RSS_PF_MAP); + t4_tp_pio_read(adapter, &pfmap, 1, A_TP_RSS_PF_MAP, sleep_ok); + return pfmap; } @@ -5080,30 +5197,24 @@ u32 t4_read_rss_pf_map(struct adapter *adapter) * * Writes the specified value to the PF RSS Map register. */ -void t4_write_rss_pf_map(struct adapter *adapter, u32 pfmap) +void t4_write_rss_pf_map(struct adapter *adapter, u32 pfmap, bool sleep_ok) { - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, &pfmap, 1, A_TP_RSS_PF_MAP, 0); - else - t4_write_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &pfmap, 1, A_TP_RSS_PF_MAP); + t4_tp_pio_write(adapter, &pfmap, 1, A_TP_RSS_PF_MAP, sleep_ok); } /** * t4_read_rss_pf_mask - read PF RSS Mask * @adapter: the adapter + * @sleep_ok: if true we may sleep while awaiting command completion * * Reads the PF RSS Mask register and returns its value. */ -u32 t4_read_rss_pf_mask(struct adapter *adapter) +u32 t4_read_rss_pf_mask(struct adapter *adapter, bool sleep_ok) { u32 pfmask; - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, &pfmask, 1, A_TP_RSS_PF_MSK, 1); - else - t4_read_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &pfmask, 1, A_TP_RSS_PF_MSK); + t4_tp_pio_read(adapter, &pfmask, 1, A_TP_RSS_PF_MSK, sleep_ok); + return pfmask; } @@ -5114,13 +5225,9 @@ u32 t4_read_rss_pf_mask(struct adapter *adapter) * * Writes the specified value to the PF RSS Mask register. */ -void t4_write_rss_pf_mask(struct adapter *adapter, u32 pfmask) +void t4_write_rss_pf_mask(struct adapter *adapter, u32 pfmask, bool sleep_ok) { - if (t4_use_ldst(adapter)) - t4_fw_tp_pio_rw(adapter, &pfmask, 1, A_TP_RSS_PF_MSK, 0); - else - t4_write_indirect(adapter, A_TP_PIO_ADDR, A_TP_PIO_DATA, - &pfmask, 1, A_TP_RSS_PF_MSK); + t4_tp_pio_write(adapter, &pfmask, 1, A_TP_RSS_PF_MSK, sleep_ok); } /** @@ -5128,12 +5235,13 @@ void t4_write_rss_pf_mask(struct adapter *adapter, u32 * @adap: the adapter * @v4: holds the TCP/IP counter values * @v6: holds the TCP/IPv6 counter values + * @sleep_ok: if true we may sleep while awaiting command completion * * Returns the values of TP's TCP/IP and TCP/IPv6 MIB counters. * Either @v4 or @v6 may be %NULL to skip the corresponding stats. */ void t4_tp_get_tcp_stats(struct adapter *adap, struct tp_tcp_stats *v4, - struct tp_tcp_stats *v6) + struct tp_tcp_stats *v6, bool sleep_ok) { u32 val[A_TP_MIB_TCP_RXT_SEG_LO - A_TP_MIB_TCP_OUT_RST + 1]; @@ -5142,16 +5250,16 @@ void t4_tp_get_tcp_stats(struct adapter *adap, struct #define STAT64(x) (((u64)STAT(x##_HI) << 32) | STAT(x##_LO)) if (v4) { - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, val, - ARRAY_SIZE(val), A_TP_MIB_TCP_OUT_RST); + t4_tp_mib_read(adap, val, ARRAY_SIZE(val), + A_TP_MIB_TCP_OUT_RST, sleep_ok); v4->tcp_out_rsts = STAT(OUT_RST); v4->tcp_in_segs = STAT64(IN_SEG); v4->tcp_out_segs = STAT64(OUT_SEG); v4->tcp_retrans_segs = STAT64(RXT_SEG); } if (v6) { - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, val, - ARRAY_SIZE(val), A_TP_MIB_TCP_V6OUT_RST); + t4_tp_mib_read(adap, val, ARRAY_SIZE(val), + A_TP_MIB_TCP_V6OUT_RST, sleep_ok); v6->tcp_out_rsts = STAT(OUT_RST); v6->tcp_in_segs = STAT64(IN_SEG); v6->tcp_out_segs = STAT64(OUT_SEG); @@ -5166,32 +5274,41 @@ void t4_tp_get_tcp_stats(struct adapter *adap, struct * t4_tp_get_err_stats - read TP's error MIB counters * @adap: the adapter * @st: holds the counter values + * @sleep_ok: if true we may sleep while awaiting command completion * * Returns the values of TP's error counters. */ -void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st) +void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st, + bool sleep_ok) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Oct 10 23:42:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:44:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:47:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:48:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:49:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:50:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:51:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:54:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A521135926; Thu, 10 Oct 2019 23:54:23 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-eopbgr750071.outbound.protection.outlook.com [40.107.75.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46q7Gk5mRNz3FxW; Thu, 10 Oct 2019 23:54:22 +0000 (UTC) (envelope-from rpokala@panasas.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y3z/sAinUWUkvkavMTgAEqJ9Peovio/Sjsaz6Rq/SBJqaxLJOwC2gBSox+k/SuaqcxLh/UbqLPgGRzUxO0B0oKIiwLXbqCCLVeD6RoU48xNvAxZjyCD0I83V8pLKzkebZqS3kH5ZXEAgr1Li3W9O/ZTvCKYseHlmtsKrGa0/Qqcp/FmlbDjNHlNocTd4Z0yAj7Fc8/4RYzrLOnZp0XYtJTdUfqpml7TqGIFbn3lF23XQUTeMYIsoeLL8cxX/RKf7E2GbzCvnFpGIPIU32tpD4mAUs1dC4G2XszlC6Iv9UtTnapxE7rdQJgdC3F4rM+WwnV0q+J8jtdLuiA/uqYLSbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tygePWZNC+NMLvI499kL2DNG6fbsQI0sVGbfsyBJa28=; b=k2POfeW8amPXpy9CKhQmOjdpVKlNiuCcybQgPQs5GqKIUmvx5giDFZRMT2Hlpt8PIM2BCpHUt1MuRPz9JZBCMNihnML0ORM21sYYpDh6DyFanD28BAWOlckHvjSWsbrlRrCNy1gqfsYr7+rAn3HCOmVaVQ7TBTkKBC70OSUkZn0JklCgBR1XSPyt8ptKtgWGUfcZuLPxd9zAEMS6Ej84jLmKtjAgf+9PJa08jDqMPUVApDLpg07g/UHtCPrHYff4nuMuKv1e6ZYlx4fTGmmDWepB3jBs1cOCMK4/FlJYLvsBW/BsGn9ByC8DJ+2LkaIqJ9uinTM/6kMjDYmiqoyBow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=panasas.com; dmarc=pass action=none header.from=panasas.com; dkim=pass header.d=panasas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=panasas.onmicrosoft.com; s=selector2-panasas-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tygePWZNC+NMLvI499kL2DNG6fbsQI0sVGbfsyBJa28=; b=k4oVmtQboIjCUfeUkF0qP4G7UKdXaWIMfUXbcnvFh1KbPCIO8KvflpfPLOgK/EgQmp2SoBN/PKzuyGaw9o8ICfeDNqF1AdyOsjQqNLFLcFFf8HOhH2BTYMrqHCk+9ZhVp6daD67JA1OnLf7qDtPwRTGO0utwxStMXmP+qWsHCgg= Received: from BYAPR08MB5238.namprd08.prod.outlook.com (20.177.125.156) by BYAPR08MB5992.namprd08.prod.outlook.com (20.179.89.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2327.24; Thu, 10 Oct 2019 23:54:18 +0000 Received: from BYAPR08MB5238.namprd08.prod.outlook.com ([fe80::b9ba:b486:9c61:3dd9]) by BYAPR08MB5238.namprd08.prod.outlook.com ([fe80::b9ba:b486:9c61:3dd9%5]) with mapi id 15.20.2347.016; Thu, 10 Oct 2019 23:54:18 +0000 From: "Pokala, Ravi" To: Navdeep Parhar , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-stable@freebsd.org" , "svn-src-stable-10@freebsd.org" Subject: Re: svn commit: r353418 - in stable/10/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware modules/cxgbe/t6_firmware Thread-Topic: svn commit: r353418 - in stable/10/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware modules/cxgbe/t6_firmware Thread-Index: AQHVf8YH1fcaDubvlE2oXUgO72Cs8g== Date: Thu, 10 Oct 2019 23:54:18 +0000 Message-ID: <1E280C29-BA50-47C5-9B14-805628A9795B@panasas.com> References: <201910102327.x9ANR3Ca072447@repo.freebsd.org> In-Reply-To: <201910102327.x9ANR3Ca072447@repo.freebsd.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.1d.0.190908 x-originating-ip: [12.202.168.51] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a9d6f42e-4cdd-4659-80d1-08d74ddd2a39 x-ms-traffictypediagnostic: BYAPR08MB5992: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:185; x-forefront-prvs: 018632C080 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(366004)(346002)(39850400004)(199004)(189003)(13464003)(76176011)(186003)(229853002)(6436002)(14444005)(5024004)(256004)(476003)(2616005)(11346002)(305945005)(486006)(446003)(6246003)(33656002)(7736002)(102836004)(3846002)(86362001)(2201001)(6116002)(6486002)(53546011)(71190400001)(6506007)(26005)(2501003)(2906002)(71200400001)(99286004)(6512007)(36756003)(316002)(58126008)(966005)(66946007)(6306002)(66556008)(110136005)(25786009)(76116006)(5660300002)(66066001)(14454004)(450100002)(8936002)(66446008)(66476007)(81156014)(478600001)(64756008)(81166006)(4001150100001)(30864003)(8676002)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR08MB5992; H:BYAPR08MB5238.namprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: yenctJvvkP4MEGgEV7EQRLw3Yw9EDSSZ7Fyhzp8IZw3okXHXs6mfFJVGHRGAhIp5ufgTAvBIhVkCTBJU/CvKUNx7gu+/VFs0OEfNLouIm/hiDWII3zJvW6tROtLcwjSTj2PM/ew7t7Fqcz9C+6V0mJz0EhFlVkvNLGelOXny8M9J95GXzyCAazajzg5EhJAohCx1bVexjx3/KNFSk4MftDIm7CBMFeZ91XCw3aablkc50vzXMuvrMaJ0WkpVStrotVB95+AH3bJCHUWY3NZEA40auaAwM9ycB8a851s/1q4P5VwPk6tCK3NvCYyeAbe8uZ1AiSh6gAX8JAVsWTQ+1y6a4E3vfxAxo20Ja6j6zuhD9rgCFr2PHkPNDu7Oy5vD3/S+b1NbulwX39bHzbriiW8jngycQenS50F/35In0+CQHTGuRVq0wIUHTvO2alTCCfWKBLBKxcrL0Z3XOmU75w== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <48E0371CFC4CFA4F96EABC6EADE60C3C@namprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9d6f42e-4cdd-4659-80d1-08d74ddd2a39 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2019 23:54:18.6877 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5Pmes0Dk9wjrQOFGxFrvRZuiSFYlGA/rUWJO/eLStKV7UhfAWoTXSRxLnCsdXBgf7rAVBazGh1rd4ASSKRhonw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR08MB5992 X-Rspamd-Queue-Id: 46q7Gk5mRNz3FxW X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.995,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Oct 2019 23:54:23 -0000 UmVxdWVzdGVkIGJ5OglQYW5hc2FzDQoNClRoYW5rcyBOYXZkZWVwISA6LSkNCg0KLVJhdmkgKHdl YXJpbmcgUGFuYXNhcyBoYXQpDQoNCu+7vy0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiA8b3duZXItc3JjLWNvbW1pdHRlcnNAZnJlZWJzZC5vcmc+IG9uIGJlaGFsZiBvZiBOYXZkZWVw IFBhcmhhciA8bnBARnJlZUJTRC5vcmc+DQpEYXRlOiAyMDE5LTEwLTEwLCBUaHVyc2RheSBhdCAx NjoyNw0KVG86IDxzcmMtY29tbWl0dGVyc0BmcmVlYnNkLm9yZz4sIDxzdm4tc3JjLWFsbEBmcmVl YnNkLm9yZz4sIDxzdm4tc3JjLXN0YWJsZUBmcmVlYnNkLm9yZz4sIDxzdm4tc3JjLXN0YWJsZS0x MEBmcmVlYnNkLm9yZz4NClN1YmplY3Q6IHN2biBjb21taXQ6IHIzNTM0MTggLSBpbiBzdGFibGUv MTAvc3lzOiBjb25mIGRldi9jeGdiZSBkZXYvY3hnYmUvY29tbW9uIGRldi9jeGdiZS9maXJtd2Fy ZSBtb2R1bGVzL2N4Z2JlL3Q0X2Zpcm13YXJlIG1vZHVsZXMvY3hnYmUvdDVfZmlybXdhcmUgbW9k dWxlcy9jeGdiZS90Nl9maXJtd2FyZQ0KDQogICAgQXV0aG9yOiBucA0KICAgIERhdGU6IFRodSBP Y3QgMTAgMjM6Mjc6MDIgMjAxOQ0KICAgIE5ldyBSZXZpc2lvbjogMzUzNDE4DQogICAgVVJMOiBo dHRwczovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zNTM0MTgNCiAgICANCiAg ICBMb2c6DQogICAgICBNRkMgcjMxOTg3MiwgcjMyMTA2MywgcjMyMTU4MiwgcjMyMjAzNCwgcjMy MjQyNSwgcjMyMjk2MiwgcjMyMjk4NSwNCiAgICAgIHIzMjU1OTYsIHIzMjYwMjYsIHIzMjg0MjAs IHIzMzE0NzIsIHIzMzMyNzYsIHIzMzM2NTAsIHIzMzM2NTIsIHIzMzQ0MDYsDQogICAgICByMzM0 NDA5LXIzMzQ0MTAsIHIzMzQ0ODksIHIzMzYwNDIsIHIzNDA2NTEsIHIzNDI2MDMsIGFuZCByMzQ1 MDgzLg0KICAgICAgDQogICAgICBUaGlzIHVwZGF0ZXMgdGhlIGN4Z2JlIGZpcm13YXJlcyBpbiBz dGFibGUvMTAgYW5kIGFsc28gcHVsbHMgaW4gc3VwcG9ydA0KICAgICAgZm9yIHNvbWUgbmV3ZXIg Ym9hcmRzIGFuZCBmbGFzaCBwYXJ0cy4NCiAgICAgIA0KICAgICAgcjMxOTg3MjoNCiAgICAgIGN4 Z2JlKDQpOiAgRG8gbm90IHJlcXVlc3QgYW4gRkVDIHNldHRpbmcgdGhhdCB0aGUgcG9ydCBkb2Vz IG5vdCBzdXBwb3J0Lg0KICAgICAgDQogICAgICByMzIxMDYzOg0KICAgICAgY3hnYmUoNCk6IFZh cmlvdXMgbGluay9tZWRpYSByZWxhdGVkIGltcHJvdmVtZW50cy4NCiAgICAgIA0KICAgICAgcjMy MTU4MjoNCiAgICAgIGN4Z2JlKDQpOiBTb21lIHVwZGF0ZXMgdG8gdGhlIGNvbW1vbiBjb2RlLg0K ICAgICAgDQogICAgICByMzIyMDM0Og0KICAgICAgY3hnYmUoNCk6IEFsd2F5cyB1c2UgdGhlIGZp cnN0IGFuZCBub3QgdGhlIGxhc3QgdmlydHVhbCBpbnRlcmZhY2UNCiAgICAgIGFzc29jaWF0ZWQg d2l0aCBhIHBvcnQgaW4gYmVnaW5fc3luY2hyb25pemVkX29wLg0KICAgICAgDQogICAgICByMzIy NDI1Og0KICAgICAgY3hnYmUoNCk6IFNhdmUgdGhlIGxhc3QgcmVwb3J0ZWQgbGluayBwYXJhbWV0 ZXJzIGFuZCBjb21wYXJlIHRoZW0gd2l0aA0KICAgICAgdGhlIGN1cnJlbnQgc3RhdGUgdG8gZGV0 ZXJtaW5lIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBsaW5rLXN0YXRlIGNoYW5nZQ0KICAgICAgbm90 aWZpY2F0aW9uLiAgVGhpcyBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIzMjEwNjMgdGhhdCBj YXVzZWQgdGhlDQogICAgICBkcml2ZXIgdG8gc29tZXRpbWVzIHNraXAgdGhlc2Ugbm90aWZpY2F0 aW9ucy4NCiAgICAgIA0KICAgICAgcjMyMjk2MjoNCiAgICAgIGN4Z2JlKDQpOiBSZW1vdmUgd3Jp dGUgb25seSB2YXJpYWJsZSBmcm9tIHQ0X3BvcnRfaW5pdC4NCiAgICAgIA0KICAgICAgcjMyMjk4 NToNCiAgICAgIGN4Z2JlKDQpOiBNYWludGFpbiBvbmUgaWZtZWRpYSBwZXIgcGh5c2ljYWwgcG9y dCBpbnN0ZWFkIG9mIG9uZSBwZXINCiAgICAgIFZpcnR1YWwgSW50ZXJmYWNlIChWSSkuICBBbGwg YXV0b25vbW91cyBWSXMgdGhhdCBzaGFyZSBhIHBvcnQgc2hhcmUgdGhlDQogICAgICBzYW1lIG1l ZGlhLg0KICAgICAgDQogICAgICByMzI1NTk2Og0KICAgICAgY3hnYmUoNCk6IERvIG5vdCByZXF1 ZXN0IHNldHRpbmdzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBvcnQuDQogICAgICANCiAgICAgIHIz MjYwMjY6DQogICAgICBjeGdiZSg0KTogQWRkIGEgY3VzdG9tIGJvYXJkIHRvIHRoZSBkZXZpY2Ug aWQgbGlzdC4NCiAgICAgIA0KICAgICAgcjMyODQyMDoNCiAgICAgIGN4Z2JlKDQpOiBEbyBub3Qg ZGlzcGxheSBoYXJtbGVzcyB3YXJuaW5nIGluIG5vbi1kZWJ1ZyBidWlsZHMuDQogICAgICANCiAg ICAgIHIzMzE0NzI6DQogICAgICBjeGdiZSg0KTogQWx3YXlzIGluaXRpYWxpemUgcmVxdWVzdGVk X3NwZWVkIHRvIGEgdmFsaWQgdmFsdWUuDQogICAgICANCiAgICAgIFRoaXMgZml4ZXMgYW4gYXZv aWRhYmxlIEVJTlZBTCB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIGRpc2FibGUgQU4gYWZ0ZXINCiAg ICAgIHRoZSBwb3J0IGlzIGluaXRpYWxpemVkIGJ1dCBsMWNmZyBkb2Vzbid0IGhhdmUgYSB2YWxp ZCBzcGVlZCB0byB1c2UuDQogICAgICANCiAgICAgIHIzMzMyNzY6DQogICAgICBjeGdiZSg0KTog VXBkYXRlIGFsbCBmaXJtd2FyZXMgdG8gMS4xOS4xLjAuDQogICAgICANCiAgICAgIHIzMzM2NTA6 DQogICAgICBjeGdiZSg0KTogQ2xhaW0gc29tZSBtb3JlIFQ1IGFuZCBUNiBib2FyZHMuDQogICAg ICANCiAgICAgIHIzMzM2NTI6DQogICAgICBjeGdiZSg0KTogQWRkIHN1cHBvcnQgZm9yIHR3byBt b3JlIGZsYXNoIHBhcnRzLg0KICAgICAgDQogICAgICByMzM0NDA2Og0KICAgICAgY3hnYmUoNCk6 IENvbnNpZGVyIGFsbCBzdXBwb3J0ZWQgc3BlZWRzIHdoZW4gYnVpbGRpbmcgdGhlIGlmbWVkaWEg bGlzdA0KICAgICAgZm9yIGEgcG9ydC4gIEZpeCBvdGhlciByZWxhdGVkIGlzc3VlcyB3aGlsZSBo ZXJlOg0KICAgICAgLSBSZXF1aXJlIHBvcnQgbG9jayBmb3IgYWNjZXNzIHRvIGxpbmtfY29uZmln Lg0KICAgICAgLSBBbGxvdyAxMDBNYnBzIG9wZXJhdGlvbiBieSB0cmFja2luZyB0aGUgc3BlZWQg aW4gTWJwcy4gIFllcywgcmVhbGx5Lg0KICAgICAgLSBOZXcgcG9ydCBmbGFnIHRvIGluZGljYXRl IHRoYXQgdGhlIG1lZGlhIGxpc3QgaXMgaW1tdXRhYmxlLiAgSXQgd2lsbA0KICAgICAgICBiZSB1 c2VkIGluIGZ1dHVyZSByZWZpbmVtZW50cy4NCiAgICAgIA0KICAgICAgVGhpcyBhbHNvIGZpeGVz IGEgYnVnIHdoZXJlIHRoZSBkcml2ZXIgcmVwb3J0cyBpbmNvcnJlY3QgbWVkaWEgd2l0aA0KICAg ICAgcmVjZW50IGZpcm13YXJlcy4NCiAgICAgIA0KICAgICAgcjMzNDQwOToNCiAgICAgIGN4Z2Jl KDQpOiBJbXBsZW1lbnQgaWZtX2NoYW5nZSBjYWxsYmFjay4NCiAgICAgIA0KICAgICAgcjMzNDQx MDoNCiAgICAgIGN4Z2JlKDQpOiBVc2UgaWZtIGZvciBpZm1lZGlhIGp1c3QgbGlrZSB0aGUgcmVz dCBvZiB0aGUga2VybmVsLg0KICAgICAgDQogICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4NCiAg ICAgIA0KICAgICAgcjMzNDQ4OToNCiAgICAgIGN4Z2JlKDQpOiBJbmNsdWRlIGZ1bGwgZHVwbGV4 IG1lZGlhb3B0IGluIG1lZGlhIHRoYXQgY2FuIGJlIHJlcG9ydGVkIGFzDQogICAgICBhY3RpdmUu ICBBbHdheXMgcmVwb3J0IGZ1bGwgZHVwbGV4IGluIGFjdGl2ZSBtZWRpYS4NCiAgICAgIA0KICAg ICAgcjMzNjA0MjoNCiAgICAgIGN4Z2JlKDQpOiBBc3N1bWUgdGhhdCBhbnkgdW5rbm93biBmbGFz aCBvbiB0aGUgY2FyZCBpcyA0TUIgYW5kIGhhcyA2NEtCDQogICAgICBzZWN0b3JzLCBpbnN0ZWFk IG9mIHJlZnVzaW5nIHRvIGF0dGFjaCB0byB0aGUgY2FyZC4NCiAgICAgIA0KICAgICAgcjM0MDY1 MToNCiAgICAgIGN4Z2JlKDQpOiBVcGRhdGUgVDQvNS82IGZpcm13YXJlcyB0byAxLjIyLjAuMy4N CiAgICAgIA0KICAgICAgcjM0MjYwMzoNCiAgICAgIGN4Z2JlKDQpOiBBdHRhY2ggdG8gdHdvIFQ1 NDAgdmFyaWFudHMuDQogICAgICANCiAgICAgIHIzNDUwODM6DQogICAgICBjeGdiZSg0KTogVXBk YXRlIFQ0LzUvNiBmaXJtd2FyZXMgdG8gMS4yMy4wLjAuDQogICAgDQogICAgQWRkZWQ6DQogICAg ICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJtd2FyZS90NGZ3LTEuMjMuMC4wLmJpbi51dQ0K ICAgICAgICAgLSBjb3BpZWQgdW5jaGFuZ2VkIGZyb20gcjM0NTA4MywgaGVhZC9zeXMvZGV2L2N4 Z2JlL2Zpcm13YXJlL3Q0ZnctMS4yMy4wLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rl di9jeGdiZS9maXJtd2FyZS90NWZ3LTEuMjMuMC4wLmJpbi51dQ0KICAgICAgICAgLSBjb3BpZWQg dW5jaGFuZ2VkIGZyb20gcjM0NTA4MywgaGVhZC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q1Znct MS4yMy4wLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJtd2FyZS90 NmZ3LTEuMjMuMC4wLmJpbi51dQ0KICAgICAgICAgLSBjb3BpZWQgdW5jaGFuZ2VkIGZyb20gcjM0 NTA4MywgaGVhZC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q2ZnctMS4yMy4wLjAuYmluLnV1DQog ICAgRGVsZXRlZDoNCiAgICAgIHN0YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q0Znct MS4xNi42My4wLmJpbi51dQ0KICAgICAgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvZmlybXdhcmUv dDVmdy0xLjE2LjYzLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJt d2FyZS90NmZ3LTEuMTYuNjMuMC5iaW4udXUNCiAgICBNb2RpZmllZDoNCiAgICAgIHN0YWJsZS8x MC9zeXMvY29uZi9maWxlcw0KICAgICAgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvYWRhcHRlci5o DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vY29tbW9uLmgNCiAgICAgIHN0 YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2NvbW1vbi90NF9ody5jDQogICAgICBzdGFibGUvMTAvc3lz L2Rldi9jeGdiZS9maXJtd2FyZS90NGZ3X2ludGVyZmFjZS5oDQogICAgICBzdGFibGUvMTAvc3lz L2Rldi9jeGdiZS9maXJtd2FyZS90NWZ3X2NmZ191d2lyZS50eHQNCiAgICAgIHN0YWJsZS8xMC9z eXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q2ZndfY2ZnX3V3aXJlLnR4dA0KICAgICAgc3RhYmxlLzEw L3N5cy9kZXYvY3hnYmUvdDRfbWFpbi5jDQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS90 NF9zZ2UuYw0KICAgICAgc3RhYmxlLzEwL3N5cy9tb2R1bGVzL2N4Z2JlL3Q0X2Zpcm13YXJlL01h a2VmaWxlDQogICAgICBzdGFibGUvMTAvc3lzL21vZHVsZXMvY3hnYmUvdDVfZmlybXdhcmUvTWFr ZWZpbGUNCiAgICAgIHN0YWJsZS8xMC9zeXMvbW9kdWxlcy9jeGdiZS90Nl9maXJtd2FyZS9NYWtl ZmlsZQ0KICAgIERpcmVjdG9yeSBQcm9wZXJ0aWVzOg0KICAgICAgc3RhYmxlLzEwLyAgIChwcm9w cyBjaGFuZ2VkKQ0KICAgIA0KICAgIE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2NvbmYvZmlsZXMN CiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAtLS0gc3RhYmxlLzEwL3N5cy9jb25mL2Zp bGVzCVRodSBPY3QgMTAgMjI6NDk6NDUgMjAxOQkocjM1MzQxNykNCiAgICArKysgc3RhYmxlLzEw L3N5cy9jb25mL2ZpbGVzCVRodSBPY3QgMTAgMjM6Mjc6MDIgMjAxOQkocjM1MzQxOCkNCiAgICBA QCAtMTE5NSw3ICsxMTk1LDcgQEAgdDRmdy5md28JCW9wdGlvbmFsIGN4Z2JlCQkJCQlcDQogICAg IAluby1pbXBsaWNpdC1ydWxlCQkJCQkJXA0KICAgICAJY2xlYW4JCSJ0NGZ3LmZ3byINCiAgICAg dDRmdy5mdwkJCW9wdGlvbmFsIGN4Z2JlCQkJCQlcDQogICAgLQlkZXBlbmRlbmN5CSIkUy9kZXYv Y3hnYmUvZmlybXdhcmUvdDRmdy0xLjE2LjYzLjAuYmluLnV1IglcDQogICAgKwlkZXBlbmRlbmN5 CSIkUy9kZXYvY3hnYmUvZmlybXdhcmUvdDRmdy0xLjIzLjAuMC5iaW4udXUiCVwNCiAgICAgCWNv bXBpbGUtd2l0aAkiJHtOT1JNQUxfRld9IgkJCQkJXA0KICAgICAJbm8tb2JqIG5vLWltcGxpY2l0 LXJ1bGUJCQkJCQlcDQogICAgIAljbGVhbgkJInQ0ZncuZnciDQogICAgQEAgLTEyMTksNyArMTIx OSw3IEBAIHQ1ZncuZndvCQlvcHRpb25hbCBjeGdiZQkJCQkJXA0KICAgICAJbm8taW1wbGljaXQt cnVsZQkJCQkJCVwNCiAgICAgCWNsZWFuCQkidDVmdy5md28iDQogICAgIHQ1ZncuZncJCQlvcHRp b25hbCBjeGdiZQkJCQkJXA0KICAgIC0JZGVwZW5kZW5jeQkiJFMvZGV2L2N4Z2JlL2Zpcm13YXJl L3Q1ZnctMS4xNi42My4wLmJpbi51dSIJXA0KICAgICsJZGVwZW5kZW5jeQkiJFMvZGV2L2N4Z2Jl L2Zpcm13YXJlL3Q1ZnctMS4yMy4wLjAuYmluLnV1IglcDQogICAgIAljb21waWxlLXdpdGgJIiR7 Tk9STUFMX0ZXfSIJCQkJCVwNCiAgICAgCW5vLW9iaiBuby1pbXBsaWNpdC1ydWxlCQkJCQkJXA0K ICAgICAJY2xlYW4JCSJ0NWZ3LmZ3Ig0KICAgIEBAIC0xMjQzLDcgKzEyNDMsNyBAQCB0NmZ3LmZ3 bwkJb3B0aW9uYWwgY3hnYmUJCQkJCVwNCiAgICAgCW5vLWltcGxpY2l0LXJ1bGUJCQkJCQlcDQog ICAgIAljbGVhbgkJInQ2ZncuZndvIg0KICAgICB0NmZ3LmZ3CQkJb3B0aW9uYWwgY3hnYmUJCQkJ CVwNCiAgICAtCWRlcGVuZGVuY3kJIiRTL2Rldi9jeGdiZS9maXJtd2FyZS90NmZ3LTEuMTYuNjMu MC5iaW4udXUiCVwNCiAgICArCWRlcGVuZGVuY3kJIiRTL2Rldi9jeGdiZS9maXJtd2FyZS90NmZ3 LTEuMjMuMC4wLmJpbi51dSIJXA0KICAgICAJY29tcGlsZS13aXRoCSIke05PUk1BTF9GV30iCQkJ CQlcDQogICAgIAluby1vYmogbm8taW1wbGljaXQtcnVsZQkJCQkJCVwNCiAgICAgCWNsZWFuCQki dDZmdy5mdyINCiAgICANCiAgICBNb2RpZmllZDogc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvYWRh cHRlci5oDQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgLS0tIHN0YWJsZS8xMC9zeXMv ZGV2L2N4Z2JlL2FkYXB0ZXIuaAlUaHUgT2N0IDEwIDIyOjQ5OjQ1IDIwMTkJKHIzNTM0MTcpDQog ICAgKysrIHN0YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2FkYXB0ZXIuaAlUaHUgT2N0IDEwIDIzOjI3 OjAyIDIwMTkJKHIzNTM0MTgpDQogICAgQEAgLTE1Niw2ICsxNTYsNyBAQCBlbnVtIHsNCiAgICAg DQogICAgIAkvKiBwb3J0IGZsYWdzICovDQogICAgIAlIQVNfVFJBQ0VRCT0gKDEgPDwgMyksDQog ICAgKwlGSVhFRF9JRk1FRElBCT0gKDEgPDwgNCksCS8qIGlmbWVkaWEgbGlzdCBkb2Vzbid0IGNo YW5nZS4gKi8NCiAgICAgDQogICAgIAkvKiBWSSBmbGFncyAqLw0KICAgICAJRE9PTUVECQk9ICgx IDw8IDApLA0KICAgIEBAIC0xODAsNyArMTgxLDYgQEAgc3RydWN0IHZpX2luZm8gew0KICAgICAJ c3RydWN0IHBvcnRfaW5mbyAqcGk7DQogICAgIA0KICAgICAJc3RydWN0IGlmbmV0ICppZnA7DQog ICAgLQlzdHJ1Y3QgaWZtZWRpYSBtZWRpYTsNCiAgICAgDQogICAgIAl1bnNpZ25lZCBsb25nIGZs YWdzOw0KICAgICAJaW50IGlmX2ZsYWdzOw0KICAgIEBAIC0yODEsNiArMjgxLDggQEAgc3RydWN0 IHBvcnRfaW5mbyB7DQogICAgIAl1aW50OF90ICByeF9jaGFuX21hcDsJLyogcnggTVBTIGNoYW5u ZWwgYml0bWFwICovDQogICAgIA0KICAgICAJc3RydWN0IGxpbmtfY29uZmlnIGxpbmtfY2ZnOw0K ICAgICsJc3RydWN0IGxpbmtfY29uZmlnIG9sZF9saW5rX2NmZzsNCiAgICArCXN0cnVjdCBpZm1l ZGlhIG1lZGlhOw0KICAgICANCiAgICAgCXN0cnVjdCB0aW1ldmFsIGxhc3RfcmVmcmVzaGVkOw0K ICAgICAgCXN0cnVjdCBwb3J0X3N0YXRzIHN0YXRzOw0KICAgIEBAIC0xMDI2LDEwICsxMDI4LDEw IEBAIGFkYXAycGluZm8oc3RydWN0IGFkYXB0ZXIgKnNjLCBpbnQgaWR4KQ0KICAgICB9DQogICAg IA0KICAgICBzdGF0aWMgaW5saW5lIHZvaWQNCiAgICAtdDRfb3Nfc2V0X2h3X2FkZHIoc3RydWN0 IGFkYXB0ZXIgKnNjLCBpbnQgaWR4LCB1aW50OF90IGh3X2FkZHJbXSkNCiAgICArdDRfb3Nfc2V0 X2h3X2FkZHIoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVpbnQ4X3QgaHdfYWRkcltdKQ0KICAgICB7 DQogICAgIA0KICAgIC0JYmNvcHkoaHdfYWRkciwgc2MtPnBvcnRbaWR4XS0+dmlbMF0uaHdfYWRk ciwgRVRIRVJfQUREUl9MRU4pOw0KICAgICsJYmNvcHkoaHdfYWRkciwgcGktPnZpWzBdLmh3X2Fk ZHIsIEVUSEVSX0FERFJfTEVOKTsNCiAgICAgfQ0KICAgICANCiAgICAgc3RhdGljIGlubGluZSBi b29sDQogICAgQEAgLTEwNzksMjQgKzEwODEsNiBAQCBwb3J0X3RvcF9zcGVlZChjb25zdCBzdHJ1 Y3QgcG9ydF9pbmZvICpwaSkNCiAgICAgfQ0KICAgICANCiAgICAgc3RhdGljIGlubGluZSBpbnQN CiAgICAtcG9ydF90b3Bfc3BlZWRfcmF3KGNvbnN0IHN0cnVjdCBwb3J0X2luZm8gKnBpKQ0KICAg IC17DQogICAgLQ0KICAgIC0JaWYgKHBpLT5saW5rX2NmZy5zdXBwb3J0ZWQgJiBGV19QT1JUX0NB UF9TUEVFRF8xMDBHKQ0KICAgIC0JCXJldHVybiAoRldfUE9SVF9DQVBfU1BFRURfMTAwRyk7DQog ICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzQwRykN CiAgICAtCQlyZXR1cm4gKEZXX1BPUlRfQ0FQX1NQRUVEXzQwRyk7DQogICAgLQlpZiAocGktPmxp bmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzI1RykNCiAgICAtCQlyZXR1cm4g KEZXX1BPUlRfQ0FQX1NQRUVEXzI1Ryk7DQogICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRl ZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzEwRykNCiAgICAtCQlyZXR1cm4gKEZXX1BPUlRfQ0FQX1NQ RUVEXzEwRyk7DQogICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQ X1NQRUVEXzFHKQ0KICAgIC0JCXJldHVybiAoRldfUE9SVF9DQVBfU1BFRURfMUcpOw0KICAgIC0N CiAgICAtCXJldHVybiAoMCk7DQogICAgLX0NCiAgICAtDQogICAgLXN0YXRpYyBpbmxpbmUgaW50 DQogICAgIHR4X3Jlc3VtZV90aHJlc2hvbGQoc3RydWN0IHNnZV9lcSAqZXEpDQogICAgIHsNCiAg ICAgDQogICAgQEAgLTExMzIsOCArMTExNiw4IEBAIGV4dGVybiBkZXZpY2VfbWV0aG9kX3QgY3hn YmVfbWV0aG9kc1tdOw0KICAgICBpbnQgdDRfb3NfZmluZF9wY2lfY2FwYWJpbGl0eShzdHJ1Y3Qg YWRhcHRlciAqLCBpbnQpOw0KICAgICBpbnQgdDRfb3NfcGNpX3NhdmVfc3RhdGUoc3RydWN0IGFk YXB0ZXIgKik7DQogICAgIGludCB0NF9vc19wY2lfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgYWRhcHRl ciAqKTsNCiAgICAtdm9pZCB0NF9vc19wb3J0bW9kX2NoYW5nZWQoY29uc3Qgc3RydWN0IGFkYXB0 ZXIgKiwgaW50KTsNCiAgICAtdm9pZCB0NF9vc19saW5rX2NoYW5nZWQoc3RydWN0IGFkYXB0ZXIg KiwgaW50LCBpbnQpOw0KICAgICt2b2lkIHQ0X29zX3BvcnRtb2RfY2hhbmdlZChzdHJ1Y3QgcG9y dF9pbmZvICopOw0KICAgICt2b2lkIHQ0X29zX2xpbmtfY2hhbmdlZChzdHJ1Y3QgcG9ydF9pbmZv ICopOw0KICAgICB2b2lkIHQ0X2l0ZXJhdGUodm9pZCAoKikoc3RydWN0IGFkYXB0ZXIgKiwgdm9p ZCAqKSwgdm9pZCAqKTsNCiAgICAgdm9pZCB0NF9pbml0X2Rldm5hbWVzKHN0cnVjdCBhZGFwdGVy ICopOw0KICAgICB2b2lkIHQ0X2FkZF9hZGFwdGVyKHN0cnVjdCBhZGFwdGVyICopOw0KICAgIA0K ICAgIE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vY29tbW9uLmgNCiAg ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAtLS0gc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUv Y29tbW9uL2NvbW1vbi5oCVRodSBPY3QgMTAgMjI6NDk6NDUgMjAxOQkocjM1MzQxNykNCiAgICAr Kysgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvY29tbW9uL2NvbW1vbi5oCVRodSBPY3QgMTAgMjM6 Mjc6MDIgMjAxOQkocjM1MzQxOCkNCiAgICBAQCAtMzk5LDE2ICszOTksMTggQEAgc3RydWN0IHRy YWNlX3BhcmFtcyB7DQogICAgIH07DQogICAgIA0KICAgICBzdHJ1Y3QgbGlua19jb25maWcgew0K ICAgICsJLyogT1Mtc3BlY2lmaWMgY29kZSBvd25zIGFsbCB0aGUgcmVxdWVzdGVkXyogZmllbGRz ICovDQogICAgKwl1bnNpZ25lZCBjaGFyICByZXF1ZXN0ZWRfYW5lZzsgICAvKiBsaW5rIGFuZWcg dXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1bnNpZ25lZCBjaGFyICByZXF1ZXN0ZWRfZmM7 ICAgICAvKiBmbG93IGNvbnRyb2wgdXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1bnNpZ25l ZCBjaGFyICByZXF1ZXN0ZWRfZmVjOyAgICAvKiBGRUMgdXNlciBoYXMgcmVxdWVzdGVkICovDQog ICAgKwl1bnNpZ25lZCBpbnQgICByZXF1ZXN0ZWRfc3BlZWQ7ICAvKiBzcGVlZCB1c2VyIGhhcyBy ZXF1ZXN0ZWQgKE1icHMpICovDQogICAgKw0KICAgICAJdW5zaWduZWQgc2hvcnQgc3VwcG9ydGVk OyAgICAgICAgLyogbGluayBjYXBhYmlsaXRpZXMgKi8NCiAgICAgCXVuc2lnbmVkIHNob3J0IGFk dmVydGlzaW5nOyAgICAgIC8qIGFkdmVydGlzZWQgY2FwYWJpbGl0aWVzICovDQogICAgIAl1bnNp Z25lZCBzaG9ydCBscF9hZHZlcnRpc2luZzsgICAvKiBwZWVyIGFkdmVydGlzZWQgY2FwYWJpbGl0 aWVzICovDQogICAgLQl1bnNpZ25lZCBpbnQgICByZXF1ZXN0ZWRfc3BlZWQ7ICAvKiBzcGVlZCB1 c2VyIGhhcyByZXF1ZXN0ZWQgKi8NCiAgICAtCXVuc2lnbmVkIGludCAgIHNwZWVkOyAgICAgICAg ICAgIC8qIGFjdHVhbCBsaW5rIHNwZWVkICovDQogICAgLQl1bnNpZ25lZCBjaGFyICByZXF1ZXN0 ZWRfZmM7ICAgICAvKiBmbG93IGNvbnRyb2wgdXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1 bnNpZ25lZCBpbnQgICBzcGVlZDsgICAgICAgICAgICAvKiBhY3R1YWwgbGluayBzcGVlZCAoTWJw cykgKi8NCiAgICAgCXVuc2lnbmVkIGNoYXIgIGZjOyAgICAgICAgICAgICAgIC8qIGFjdHVhbCBs aW5rIGZsb3cgY29udHJvbCAqLw0KICAgIC0JdW5zaWduZWQgY2hhciAgcmVxdWVzdGVkX2ZlYzsg ICAgLyogRkVDIHVzZXIgaGFzIHJlcXVlc3RlZCAqLw0KICAgICAJdW5zaWduZWQgY2hhciAgZmVj OyAgICAgICAgICAgICAgLyogYWN0dWFsIEZFQyAqLw0KICAgIC0JdW5zaWduZWQgY2hhciAgYXV0 b25lZzsgICAgICAgICAgLyogYXV0b25lZ290aWF0aW5nPyAqLw0KICAgICAJdW5zaWduZWQgY2hh ciAgbGlua19vazsgICAgICAgICAgLyogbGluayB1cD8gKi8NCiAgICAgCXVuc2lnbmVkIGNoYXIg IGxpbmtfZG93bl9yYzsgICAgIC8qIGxpbmsgZG93biByZWFzb24gKi8NCiAgICAgfTsNCiAgICBA QCAtNTc2LDcgKzU3OCw3IEBAIGludCB0NF9wcmVwX2FkYXB0ZXIoc3RydWN0IGFkYXB0ZXIgKmFk YXB0ZXIsIHU4ICpidWYpOw0KICAgICBpbnQgdDRfc2h1dGRvd25fYWRhcHRlcihzdHJ1Y3QgYWRh cHRlciAqYWRhcHRlcik7DQogICAgIGludCB0NF9pbml0X2RldmxvZ19wYXJhbXMoc3RydWN0IGFk YXB0ZXIgKmFkYXB0ZXIsIGludCBmd19hdHRhY2gpOw0KICAgICBpbnQgdDRfaW5pdF9zZ2VfcGFy YW1zKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTsNCiAgICAtaW50IHQ0X2luaXRfdHBfcGFyYW1z KHN0cnVjdCBhZGFwdGVyICphZGFwKTsNCiAgICAraW50IHQ0X2luaXRfdHBfcGFyYW1zKHN0cnVj dCBhZGFwdGVyICphZGFwLCBib29sIHNsZWVwX29rKTsNCiAgICAgaW50IHQ0X2ZpbHRlcl9maWVs ZF9zaGlmdChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgaW50IGZpbHRlcl9zZWwpOw0KICAg ICBpbnQgdDRfcG9ydF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgbWJveCwgaW50IHBm LCBpbnQgdmYsIGludCBwb3J0X2lkKTsNCiAgICAgdm9pZCB0NF9mYXRhbF9lcnIoc3RydWN0IGFk YXB0ZXIgKmFkYXB0ZXIpOw0KICAgIEBAIC01OTQsMjAgKzU5NiwyMSBAQCBpbnQgdDRfY29uZmln X3ZpX3JzcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgaW50IG1ib3gNCiAgICAgCQkgICAgIHVu c2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGRlZnEsIHVuc2lnbmVkIGludCBza2V5aWR4 LA0KICAgICAJCSAgICAgdW5zaWduZWQgaW50IHNrZXkpOw0KICAgICBpbnQgdDRfcmVhZF9yc3Mo c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUxNiAqZW50cmllcyk7DQogICAgLXZvaWQgdDRfZndf dHBfcGlvX3J3KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgKnZhbHMsIHVuc2lnbmVkIGludCBu cmVncywNCiAgICAtCQkgIHVuc2lnbmVkIGludCBzdGFydF9pbmRleCwgdW5zaWduZWQgaW50IHJ3 KTsNCiAgICAtdm9pZCB0NF9yZWFkX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUz MiAqa2V5KTsNCiAgICAtdm9pZCB0NF93cml0ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFw LCB1MzIgKmtleSwgaW50IGlkeCk7DQogICAgLXZvaWQgdDRfcmVhZF9yc3NfcGZfY29uZmlnKHN0 cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgsIHUzMiAqdmFscCk7DQog ICAgLXZvaWQgdDRfd3JpdGVfcnNzX3BmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwg dW5zaWduZWQgaW50IGluZGV4LCB1MzIgdmFsKTsNCiAgICArdm9pZCB0NF9yZWFkX3Jzc19rZXko c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiAqa2V5LCBib29sIHNsZWVwX29rKTsNCiAgICAr dm9pZCB0NF93cml0ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1MzIgKmtl eSwgaW50IGlkeCwNCiAgICArCQkgICAgICBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF9y ZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGludCBp bmRleCwNCiAgICArCQkJICAgdTMyICp2YWxwLCBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0 NF93cml0ZV9yc3NfcGZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBp bnQgaW5kZXgsDQogICAgKwkJCSAgICB1MzIgdmFsLCBib29sIHNsZWVwX29rKTsNCiAgICAgdm9p ZCB0NF9yZWFkX3Jzc192Zl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVk IGludCBpbmRleCwNCiAgICAtCQkJICAgdTMyICp2ZmwsIHUzMiAqdmZoKTsNCiAgICArCQkJICAg dTMyICp2ZmwsIHUzMiAqdmZoLCBib29sIHNsZWVwX29rKTsNCiAgICAgdm9pZCB0NF93cml0ZV9y c3NfdmZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgs DQogICAgLQkJCSAgICB1MzIgdmZsLCB1MzIgdmZoKTsNCiAgICAtdTMyIHQ0X3JlYWRfcnNzX3Bm X21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcik7DQogICAgLXZvaWQgdDRfd3JpdGVfcnNzX3Bm X21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdTMyIHBmbWFwKTsNCiAgICAtdTMyIHQ0X3Jl YWRfcnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpOw0KICAgIC12b2lkIHQ0X3dy aXRlX3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1MzIgcGZtYXNrKTsNCiAg ICArCQkJICAgIHUzMiB2ZmwsIHUzMiB2ZmgsIGJvb2wgc2xlZXBfb2spOw0KICAgICt1MzIgdDRf cmVhZF9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBib29sIHNsZWVwX29rKTsN CiAgICArdm9pZCB0NF93cml0ZV9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1 MzIgcGZtYXAsIGJvb2wgc2xlZXBfb2spOw0KICAgICt1MzIgdDRfcmVhZF9yc3NfcGZfbWFzayhz dHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQgdDRfd3Jp dGVfcnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBwZm1hc2ssIGJvb2wg c2xlZXBfb2spOw0KICAgICBpbnQgdDRfbXBzX3NldF9hY3RpdmVfcG9ydHMoc3RydWN0IGFkYXB0 ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBwb3J0X21hc2spOw0KICAgICB2b2lkIHQ0X3BtdHhfZ2V0 X3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgY250W10sIHU2NCBjeWNsZXNbXSk7DQog ICAgIHZvaWQgdDRfcG1yeF9nZXRfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBjbnRb XSwgdTY0IGN5Y2xlc1tdKTsNCiAgICBAQCAtNjUzLDE5ICs2NTYsMjQgQEAgdm9pZCB0NF9yZWFk X210dV90Ymwoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUxNiAqbXR1cywgDQogICAgIHZvaWQgdDRf cmVhZF9jb25nX3RibChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTE2IGluY3JbTk1UVVNdW05DQ1RS TF9XSU5dKTsNCiAgICAgdm9pZCB0NF9yZWFkX3BhY2VfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFw LCB1bnNpZ25lZCBpbnQgcGFjZV92YWxzW05UWF9TQ0hFRF0pOw0KICAgICB2b2lkIHQ0X2dldF90 eF9zY2hlZChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHNjaGVkLCB1bnNpZ25l ZCBpbnQgKmticHMsDQogICAgLQkJICAgICB1bnNpZ25lZCBpbnQgKmlwZyk7DQogICAgKwkJICAg ICB1bnNpZ25lZCBpbnQgKmlwZywgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfdHBfd3Jf Yml0c19pbmRpcmVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IGFkZHIsDQog ICAgIAkJCSAgICB1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IHZhbCk7DQogICAgIHZv aWQgdDRfdHBfcmVhZF9sYShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTY0ICpsYV9idWYsIHVuc2ln bmVkIGludCAqd3JwdHIpOw0KICAgIC12b2lkIHQ0X3RwX2dldF9lcnJfc3RhdHMoc3RydWN0IGFk YXB0ZXIgKmFkYXAsIHN0cnVjdCB0cF9lcnJfc3RhdHMgKnN0KTsNCiAgICAtdm9pZCB0NF90cF9n ZXRfcHJveHlfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCB0cF9wcm94eV9zdGF0 cyAqc3QpOw0KICAgIC12b2lkIHQ0X3RwX2dldF9jcGxfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFk YXAsIHN0cnVjdCB0cF9jcGxfc3RhdHMgKnN0KTsNCiAgICAtdm9pZCB0NF90cF9nZXRfcmRtYV9z dGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3JkbWFfc3RhdHMgKnN0KTsNCiAg ICAtdm9pZCB0NF9nZXRfdXNtX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBf dXNtX3N0YXRzICpzdCk7DQogICAgK3ZvaWQgdDRfdHBfZ2V0X2Vycl9zdGF0cyhzdHJ1Y3QgYWRh cHRlciAqYWRhcCwgc3RydWN0IHRwX2Vycl9zdGF0cyAqc3QsDQogICAgKwkJCSBib29sIHNsZWVw X29rKTsNCiAgICArdm9pZCB0NF90cF9nZXRfcHJveHlfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFk YXAsIHN0cnVjdCB0cF9wcm94eV9zdGF0cyAqc3QsDQogICAgKyAgICAJCQkgICBib29sIHNsZWVw X29rKTsNCiAgICArdm9pZCB0NF90cF9nZXRfY3BsX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFw LCBzdHJ1Y3QgdHBfY3BsX3N0YXRzICpzdCwNCiAgICArCQkJIGJvb2wgc2xlZXBfb2spOw0KICAg ICt2b2lkIHQ0X3RwX2dldF9yZG1hX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qg dHBfcmRtYV9zdGF0cyAqc3QsDQogICAgKwkJCSAgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQg dDRfZ2V0X3VzbV9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3VzbV9zdGF0 cyAqc3QsDQogICAgKwkJICAgICAgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfdHBfZ2V0 X3RjcF9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3RjcF9zdGF0cyAqdjQs DQogICAgLQkJCSBzdHJ1Y3QgdHBfdGNwX3N0YXRzICp2Nik7DQogICAgKwkJCSBzdHJ1Y3QgdHBf dGNwX3N0YXRzICp2NiwgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfZ2V0X2Zjb2Vfc3Rh dHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBpZHgsDQogICAgLQkJICAgICAg IHN0cnVjdCB0cF9mY29lX3N0YXRzICpzdCk7DQogICAgKwkJICAgICAgIHN0cnVjdCB0cF9mY29l X3N0YXRzICpzdCwgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfbG9hZF9tdHVzKHN0cnVj dCBhZGFwdGVyICphZGFwLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqbXR1cywNCiAgICAgCQkgIGNv bnN0IHVuc2lnbmVkIHNob3J0ICphbHBoYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKmJldGEpOw0K ICAgICANCiAgICBAQCAtNjc2LDcgKzY4NCw4IEBAIGludCB0NF9zZXRfc2NoZWRfaXBnKHN0cnVj dCBhZGFwdGVyICphZGFwLCBpbnQgc2NoZWQsIA0KICAgICBpbnQgdDRfc2V0X3BhY2VfdGJsKHN0 cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhY2VfdmFscywNCiAgICAg CQkgICAgdW5zaWduZWQgaW50IHN0YXJ0LCB1bnNpZ25lZCBpbnQgbik7DQogICAgIHZvaWQgdDRf Z2V0X2NoYW5fdHhyYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1NjQgKm5pY19yYXRlLCB1NjQg Km9mbGRfcmF0ZSk7DQogICAgLWludCB0NF9zZXRfZmlsdGVyX21vZGUoc3RydWN0IGFkYXB0ZXIg KmFkYXAsIHVuc2lnbmVkIGludCBtb2RlX21hcCk7DQogICAgK2ludCB0NF9zZXRfZmlsdGVyX21v ZGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtb2RlX21hcCwNCiAgICArICAg IGJvb2wgc2xlZXBfb2spOw0KICAgICB2b2lkIHQ0X21rX2ZpbHRkZWx3cih1bnNpZ25lZCBpbnQg ZnRpZCwgc3RydWN0IGZ3X2ZpbHRlcl93ciAqd3IsIGludCBxaWQpOw0KICAgICANCiAgICAgdm9p ZCB0NF93b2xfbWFnaWNfZW5hYmxlKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQg cG9ydCwgY29uc3QgdTggKmFkZHIpOw0KICAgIEBAIC03NjYsNiArNzc1LDcgQEAgaW50IHQ0X3Nn ZV9jdHh0X3JkX2JkKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpDQogICAgIAkJICAg ICAgdTMyICpkYXRhKTsNCiAgICAgaW50IHQ0X3NnZV9jdHh0X2ZsdXNoKHN0cnVjdCBhZGFwdGVy ICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCk7DQogICAgIGNvbnN0IGNoYXIgKnQ0X2xpbmtfZG93 bl9yY19zdHIodW5zaWduZWQgY2hhciBsaW5rX2Rvd25fcmMpOw0KICAgICtpbnQgdDRfdXBkYXRl X3BvcnRfaW5mbyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSk7DQogICAgIGludCB0NF9oYW5kbGVfZndf cnBsKHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCBfX2JlNjQgKnJwbCk7DQogICAgIGludCB0 NF9md2FkZHJzcGFjZV93cml0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IG1i b3gsIHUzMiBhZGRyLCB1MzIgdmFsKTsNCiAgICAgaW50IHQ0X3NjaGVkX2NvbmZpZyhzdHJ1Y3Qg YWRhcHRlciAqYWRhcHRlciwgaW50IHR5cGUsIGludCBtaW5tYXhlbiwNCiAgICBAQCAtNzg3LDYg Kzc5NywxNSBAQCBpbnQgdDRfY29uZmlnX3dhdGNoZG9nKHN0cnVjdCBhZGFwdGVyICphZGFwdGVy LCB1bnNpZ24NCiAgICAgaW50IHQ0X2dldF9kZXZsb2dfbGV2ZWwoc3RydWN0IGFkYXB0ZXIgKmFk YXB0ZXIsIHVuc2lnbmVkIGludCAqbGV2ZWwpOw0KICAgICBpbnQgdDRfc2V0X2RldmxvZ19sZXZl bChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdW5zaWduZWQgaW50IGxldmVsKTsNCiAgICAgdm9p ZCB0NF9zZ2VfZGVjb2RlX2lkbWFfc3RhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGludCBz dGF0ZSk7DQogICAgKw0KICAgICt2b2lkIHQ0X3RwX3Bpb19yZWFkKHN0cnVjdCBhZGFwdGVyICph ZGFwLCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkgICAgdTMyIHN0YXJ0X2luZGV4LCBi b29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF90cF9waW9fd3JpdGUoc3RydWN0IGFkYXB0ZXIg KmFkYXAsIGNvbnN0IHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICAgdTMyIHN0YXJ0 X2luZGV4LCBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF90cF90bV9waW9fcmVhZChzdHJ1 Y3QgYWRhcHRlciAqYWRhcCwgdTMyICpidWZmLCB1MzIgbnJlZ3MsDQogICAgKwkJICAgICAgIHUz MiBzdGFydF9pbmRleCwgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQgdDRfdHBfbWliX3JlYWQo c3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICB1 MzIgc3RhcnRfaW5kZXgsIGJvb2wgc2xlZXBfb2spOw0KICAgICANCiAgICAgc3RhdGljIGlubGlu ZSBpbnQgdDR2Zl9xdWVyeV9wYXJhbXMoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsDQogICAgIAkJ CQkgICAgdW5zaWduZWQgaW50IG5wYXJhbXMsIGNvbnN0IHUzMiAqcGFyYW1zLA0KICAgIA0KICAg IE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vdDRfaHcuYw0KICAgID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KICAgIC0tLSBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21t b24vdDRfaHcuYwlUaHUgT2N0IDEwIDIyOjQ5OjQ1IDIwMTkJKHIzNTM0MTcpDQogICAgKysrIHN0 YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2NvbW1vbi90NF9ody5jCVRodSBPY3QgMTAgMjM6Mjc6MDIg MjAxOQkocjM1MzQxOCkNCiAgICBAQCAtNDY2LDcgKzQ2Niw3IEBAIHN0YXRpYyBpbnQgdDRfZWRj X2Vycl9yZWFkKHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgaQ0KICAgICAJCUNIX1dBUk4oYWRh cCwgIiVzOiBUNCBOT1Qgc3VwcG9ydGVkLlxuIiwgX19mdW5jX18pOw0KICAgICAJCXJldHVybiAw Ow0KICAgICAJfQ0KICAgIC0JaWYgKGlkeCAhPSAwICYmIGlkeCAhPSAxKSB7DQogICAgKwlpZiAo aWR4ICE9IE1FTV9FREMwICYmIGlkeCAhPSBNRU1fRURDMSkgew0KICAgICAJCUNIX1dBUk4oYWRh cCwgIiVzOiBpZHggJWQgTk9UIHN1cHBvcnRlZC5cbiIsIF9fZnVuY19fLCBpZHgpOw0KICAgICAJ CXJldHVybiAwOw0KICAgICAJfQ0KICAgIEBAIC04ODMsNyArODgzLDggQEAgdm9pZCB0NF9nZXRf cmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTggKmJ1Ziwgc2l6ZV90DQogICAgIAkJMHhkMDEw LCAweGQwM2MsDQogICAgIAkJMHhkZmMwLCAweGRmZTAsDQogICAgIAkJMHhlMDAwLCAweGVhN2Ms DQogICAgLQkJMHhmMDAwLCAweDExMTkwLA0KICAgICsJCTB4ZjAwMCwgMHgxMTExMCwNCiAgICAr CQkweDExMTE4LCAweDExMTkwLA0KICAgICAJCTB4MTkwNDAsIDB4MTkwNmMsDQogICAgIAkJMHgx OTA3OCwgMHgxOTA4MCwNCiAgICAgCQkweDE5MDhjLCAweDE5MGU0LA0KICAgIEBAIC0xNDIxLDgg KzE0MjIsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1OCAqYnVm LCBzaXplX3QNCiAgICAgCQkweDFmZjAwLCAweDFmZjg0LA0KICAgICAJCTB4MWZmYzAsIDB4MWZm YzgsDQogICAgIAkJMHgzMDAwMCwgMHgzMDAzMCwNCiAgICAtCQkweDMwMDM4LCAweDMwMDM4LA0K ICAgIC0JCTB4MzAwNDAsIDB4MzAwNDAsDQogICAgIAkJMHgzMDEwMCwgMHgzMDE0NCwNCiAgICAg CQkweDMwMTkwLCAweDMwMWEwLA0KICAgICAJCTB4MzAxYTgsIDB4MzAxYjgsDQogICAgQEAgLTE1 MzMsOCArMTUzMiw2IEBAIHZvaWQgdDRfZ2V0X3JlZ3Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4 ICpidWYsIHNpemVfdA0KICAgICAJCTB4MzNjM2MsIDB4MzNjNTAsDQogICAgIAkJMHgzM2NmMCwg MHgzM2NmYywNCiAgICAgCQkweDM0MDAwLCAweDM0MDMwLA0KICAgIC0JCTB4MzQwMzgsIDB4MzQw MzgsDQogICAgLQkJMHgzNDA0MCwgMHgzNDA0MCwNCiAgICAgCQkweDM0MTAwLCAweDM0MTQ0LA0K ICAgICAJCTB4MzQxOTAsIDB4MzQxYTAsDQogICAgIAkJMHgzNDFhOCwgMHgzNDFiOCwNCiAgICBA QCAtMTY0NSw4ICsxNjQyLDYgQEAgdm9pZCB0NF9nZXRfcmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRh cCwgdTggKmJ1Ziwgc2l6ZV90DQogICAgIAkJMHgzN2MzYywgMHgzN2M1MCwNCiAgICAgCQkweDM3 Y2YwLCAweDM3Y2ZjLA0KICAgICAJCTB4MzgwMDAsIDB4MzgwMzAsDQogICAgLQkJMHgzODAzOCwg MHgzODAzOCwNCiAgICAtCQkweDM4MDQwLCAweDM4MDQwLA0KICAgICAJCTB4MzgxMDAsIDB4Mzgx NDQsDQogICAgIAkJMHgzODE5MCwgMHgzODFhMCwNCiAgICAgCQkweDM4MWE4LCAweDM4MWI4LA0K ICAgIEBAIC0xNzU3LDggKzE3NTIsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBhZGFwdGVy ICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDNiYzNjLCAweDNiYzUwLA0KICAgICAJ CTB4M2JjZjAsIDB4M2JjZmMsDQogICAgIAkJMHgzYzAwMCwgMHgzYzAzMCwNCiAgICAtCQkweDNj MDM4LCAweDNjMDM4LA0KICAgIC0JCTB4M2MwNDAsIDB4M2MwNDAsDQogICAgIAkJMHgzYzEwMCwg MHgzYzE0NCwNCiAgICAgCQkweDNjMTkwLCAweDNjMWEwLA0KICAgICAJCTB4M2MxYTgsIDB4M2Mx YjgsDQogICAgQEAgLTIyNTEsMTMgKzIyNDQsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBh ZGFwdGVyICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDFmZjAwLCAweDFmZjg0LA0K ICAgICAJCTB4MWZmYzAsIDB4MWZmYzgsDQogICAgIAkJMHgzMDAwMCwgMHgzMDAzMCwNCiAgICAt CQkweDMwMDM4LCAweDMwMDM4LA0KICAgIC0JCTB4MzAwNDAsIDB4MzAwNDAsDQogICAgLQkJMHgz MDA0OCwgMHgzMDA0OCwNCiAgICAtCQkweDMwMDUwLCAweDMwMDUwLA0KICAgIC0JCTB4MzAwNWMs IDB4MzAwNjAsDQogICAgLQkJMHgzMDA2OCwgMHgzMDA2OCwNCiAgICAtCQkweDMwMDcwLCAweDMw MDcwLA0KICAgICAJCTB4MzAxMDAsIDB4MzAxNjgsDQogICAgIAkJMHgzMDE5MCwgMHgzMDFhMCwN CiAgICAgCQkweDMwMWE4LCAweDMwMWI4LA0KICAgIEBAIC0yMzIwLDEzICsyMzA2LDEyIEBAIHZv aWQgdDRfZ2V0X3JlZ3Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpidWYsIHNpemVfdA0KICAg ICAJCTB4MzI2YTgsIDB4MzI2YTgsDQogICAgIAkJMHgzMjZlYywgMHgzMjZlYywNCiAgICAgCQkw eDMyYTAwLCAweDMyYWJjLA0KICAgIC0JCTB4MzJiMDAsIDB4MzJiMzgsDQogICAgKwkJMHgzMmIw MCwgMHgzMmIxOCwNCiAgICArCQkweDMyYjIwLCAweDMyYjM4LA0KICAgICAJCTB4MzJiNDAsIDB4 MzJiNTgsDQogICAgIAkJMHgzMmI2MCwgMHgzMmI3OCwNCiAgICAgCQkweDMyYzAwLCAweDMyYzAw LA0KICAgICAJCTB4MzJjMDgsIDB4MzJjM2MsDQogICAgLQkJMHgzMmUwMCwgMHgzMmUyYywNCiAg ICAtCQkweDMyZjAwLCAweDMyZjJjLA0KICAgICAJCTB4MzMwMDAsIDB4MzMwMmMsDQogICAgIAkJ MHgzMzAzNCwgMHgzMzA1MCwNCiAgICAgCQkweDMzMDU4LCAweDMzMDU4LA0KICAgIEBAIC0yMzkx LDEzICsyMzc2LDYgQEAgdm9pZCB0NF9nZXRfcmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTgg KmJ1Ziwgc2l6ZV90DQogICAgIAkJMHgzM2MzOCwgMHgzM2M1MCwNCiAgICAgCQkweDMzY2YwLCAw eDMzY2ZjLA0KICAgICAJCTB4MzQwMDAsIDB4MzQwMzAsDQogICAgLQkJMHgzNDAzOCwgMHgzNDAz OCwNCiAgICAtCQkweDM0MDQwLCAweDM0MDQwLA0KICAgIC0JCTB4MzQwNDgsIDB4MzQwNDgsDQog ICAgLQkJMHgzNDA1MCwgMHgzNDA1MCwNCiAgICAtCQkweDM0MDVjLCAweDM0MDYwLA0KICAgIC0J CTB4MzQwNjgsIDB4MzQwNjgsDQogICAgLQkJMHgzNDA3MCwgMHgzNDA3MCwNCiAgICAgCQkweDM0 MTAwLCAweDM0MTY4LA0KICAgICAJCTB4MzQxOTAsIDB4MzQxYTAsDQogICAgIAkJMHgzNDFhOCwg MHgzNDFiOCwNCiAgICBAQCAtMjQ2MCwxMyArMjQzOCwxMiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0 cnVjdCBhZGFwdGVyICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDM2NmE4LCAweDM2 NmE4LA0KICAgICAJCTB4MzY2ZWMsIDB4MzY2ZWMsDQogICAgIAkJMHgzNmEwMCwgMHgzNmFiYywN CiAgICAtCQkweDM2YjAwLCAweDM2YjM4LA0KICAgICsJCTB4MzZiMDAsIDB4MzZiMTgsDQogICAg KwkJMHgzNmIyMCwgMHgzNmIzOCwNCiAgICAgCQkweDM2YjQwLCAweDM2YjU4LA0KICAgICAJCTB4 MzZiNjAsIDB4MzZiNzgsDQogICAgIAkJMHgzNmMwMCwgMHgzNmMwMCwNCiAgICAgCQkweDM2YzA4 LCAweDM2YzNjLA0KICAgIC0JCTB4MzZlMDAsIDB4MzZlMmMsDQogICAgLQkJMHgzNmYwMCwgMHgz NmYyYywNCiAgICAgCQkweDM3MDAwLCAweDM3MDJjLA0KICAgICAJCTB4MzcwMzQsIDB4MzcwNTAs DQogICAgIAkJMHgzNzA1OCwgMHgzNzA1OCwNCiAgICBAQCAtMjY5Nyw2ICsyNjc0LDcgQEAgc3Ry dWN0IHQ0X3ZwZF9oZHIgew0KICAgICAjZGVmaW5lIEVFUFJPTV9NQVhfUE9MTAkJNTAwMAkJLyog eCA1MDAwID09IDUwbXMgKi8NCiAgICAgDQogICAgICNkZWZpbmUgRUVQUk9NX1NUQVRfQUREUgkw eDdiZmMNCiAgICArI2RlZmluZSBWUERfU0laRQkJMHg4MDANCiAgICAgI2RlZmluZSBWUERfQkFT RQkJMHg0MDANCiAgICAgI2RlZmluZSBWUERfQkFTRV9PTEQJCTANCiAgICAgI2RlZmluZSBWUERf TEVOCQkJMTAyNA0KICAgIEBAIC0zMDM3LDEzICszMDE1LDEzIEBAIGVudW0gew0KICAgICAJU0Zf QVRURU1QVFMgPSAxMCwJLyogbWF4IHJldHJpZXMgZm9yIFNGIG9wZXJhdGlvbnMgKi8NCiAgICAg DQogICAgIAkvKiBmbGFzaCBjb21tYW5kIG9wY29kZXMgKi8NCiAgICAtCVNGX1BST0dfUEFHRSAg ICA9IDIsCS8qIHByb2dyYW0gcGFnZSAqLw0KICAgICsJU0ZfUFJPR19QQUdFICAgID0gMiwJLyog cHJvZ3JhbSAyNTZCIHBhZ2UgKi8NCiAgICAgCVNGX1dSX0RJU0FCTEUgICA9IDQsCS8qIGRpc2Fi bGUgd3JpdGVzICovDQogICAgIAlTRl9SRF9TVEFUVVMgICAgPSA1LAkvKiByZWFkIHN0YXR1cyBy ZWdpc3RlciAqLw0KICAgICAJU0ZfV1JfRU5BQkxFICAgID0gNiwJLyogZW5hYmxlIHdyaXRlcyAq Lw0KICAgICAJU0ZfUkRfREFUQV9GQVNUID0gMHhiLAkvKiByZWFkIGZsYXNoICovDQogICAgIAlT Rl9SRF9JRAk9IDB4OWYsCS8qIHJlYWQgSUQgKi8NCiAgICAtCVNGX0VSQVNFX1NFQ1RPUiA9IDB4 ZDgsCS8qIGVyYXNlIHNlY3RvciAqLw0KICAgICsJU0ZfRVJBU0VfU0VDVE9SID0gMHhkOCwJLyog ZXJhc2UgNjRLQiBzZWN0b3IgKi8NCiAgICAgfTsNCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC0z NjgwLDkgKzM2NTgsNiBAQCB2b2lkIHQ0X3VscHJ4X3JlYWRfbGEoc3RydWN0IGFkYXB0ZXIgKmFk YXAsIHUzMiAqbGFfYnUNCiAgICAgCX0NCiAgICAgfQ0KICAgICANCiAgICAtI2RlZmluZSBBRFZF UlRfTUFTSyAoVl9GV19QT1JUX0NBUF9TUEVFRChNX0ZXX1BPUlRfQ0FQX1NQRUVEKSB8IFwNCiAg ICAtCQkgICAgIEZXX1BPUlRfQ0FQX0FORUcpDQogICAgLQ0KICAgICAvKioNCiAgICAgICoJdDRf bGlua19sMWNmZyAtIGFwcGx5IGxpbmsgY29uZmlndXJhdGlvbiB0byBNQUMvUEhZDQogICAgICAq CUBwaHk6IHRoZSBQSFkgdG8gc2V0dXANCiAgICBAQCAtMzcwMSw3ICszNjc2LDcgQEAgaW50IHQ0 X2xpbmtfbDFjZmcoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQogICAgIHsN CiAgICAgCXN0cnVjdCBmd19wb3J0X2NtZCBjOw0KICAgICAJdW5zaWduZWQgaW50IG1kaSA9IFZf RldfUE9SVF9DQVBfTURJKEZXX1BPUlRfQ0FQX01ESV9BVVRPKTsNCiAgICAtCXVuc2lnbmVkIGlu dCBmYywgZmVjOw0KICAgICsJdW5zaWduZWQgaW50IGFuZWcsIGZjLCBmZWMsIHNwZWVkLCByY2Fw Ow0KICAgICANCiAgICAgCWZjID0gMDsNCiAgICAgCWlmIChsYy0+cmVxdWVzdGVkX2ZjICYgUEFV U0VfUlgpDQogICAgQEAgLTM3MTEsMTIgKzM2ODYsNTEgQEAgaW50IHQ0X2xpbmtfbDFjZmcoc3Ry dWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQogICAgIA0KICAgICAJZmVjID0gMDsN CiAgICAgCWlmIChsYy0+cmVxdWVzdGVkX2ZlYyAmIEZFQ19SUykNCiAgICAtCQlmZWMgfD0gRldf UE9SVF9DQVBfRkVDX1JTOw0KICAgIC0JaWYgKGxjLT5yZXF1ZXN0ZWRfZmVjICYgRkVDX0JBU0VS X1JTKQ0KICAgIC0JCWZlYyB8PSBGV19QT1JUX0NBUF9GRUNfQkFTRVJfUlM7DQogICAgLQlpZiAo bGMtPnJlcXVlc3RlZF9mZWMgJiBGRUNfUkVTRVJWRUQpDQogICAgLQkJZmVjIHw9IEZXX1BPUlRf Q0FQX0ZFQ19SRVNFUlZFRDsNCiAgICArCQlmZWMgPSBGV19QT1JUX0NBUF9GRUNfUlM7DQogICAg KwllbHNlIGlmIChsYy0+cmVxdWVzdGVkX2ZlYyAmIEZFQ19CQVNFUl9SUykNCiAgICArCQlmZWMg PSBGV19QT1JUX0NBUF9GRUNfQkFTRVJfUlM7DQogICAgIA0KICAgICsJaWYgKCEobGMtPnN1cHBv cnRlZCAmIEZXX1BPUlRfQ0FQX0FORUcpIHx8DQogICAgKwkgICAgbGMtPnJlcXVlc3RlZF9hbmVn ID09IEFVVE9ORUdfRElTQUJMRSkgew0KICAgICsJCWFuZWcgPSAwOw0KICAgICsJCXN3aXRjaCAo bGMtPnJlcXVlc3RlZF9zcGVlZCkgew0KICAgICsJCWNhc2UgMTAwMDAwOg0KICAgICsJCQlzcGVl ZCA9IEZXX1BPUlRfQ0FQX1NQRUVEXzEwMEc7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCWNhc2Ug NDAwMDA6DQogICAgKwkJCXNwZWVkID0gRldfUE9SVF9DQVBfU1BFRURfNDBHOw0KICAgICsJCQli cmVhazsNCiAgICArCQljYXNlIDI1MDAwOg0KICAgICsJCQlzcGVlZCA9IEZXX1BPUlRfQ0FQX1NQ RUVEXzI1RzsNCiAgICArCQkJYnJlYWs7DQogICAgKwkJY2FzZSAxMDAwMDoNCiAgICArCQkJc3Bl ZWQgPSBGV19QT1JUX0NBUF9TUEVFRF8xMEc7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCWNhc2Ug MTAwMDoNCiAgICArCQkJc3BlZWQgPSBGV19QT1JUX0NBUF9TUEVFRF8xRzsNCiAgICArCQkJYnJl YWs7DQogICAgKwkJY2FzZSAxMDA6DQogICAgKwkJCXNwZWVkID0gRldfUE9SVF9DQVBfU1BFRURf MTAwTTsNCiAgICArCQkJYnJlYWs7DQogICAgKwkJZGVmYXVsdDoNCiAgICArCQkJcmV0dXJuIC1F SU5WQUw7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCX0NCiAgICArCX0gZWxzZSB7DQogICAgKwkJ YW5lZyA9IEZXX1BPUlRfQ0FQX0FORUc7DQogICAgKwkJc3BlZWQgPSBsYy0+c3VwcG9ydGVkICYN CiAgICArCQkgICAgVl9GV19QT1JUX0NBUF9TUEVFRChNX0ZXX1BPUlRfQ0FQX1NQRUVEKTsNCiAg ICArCX0NCiAgICArDQogICAgKwlyY2FwID0gYW5lZyB8IHNwZWVkIHwgZmMgfCBmZWMgfCBtZGk7 DQogICAgKwlpZiAoKHJjYXAgfCBsYy0+c3VwcG9ydGVkKSAhPSBsYy0+c3VwcG9ydGVkKSB7DQog ICAgKyNpZmRlZiBJTlZBUklBTlRTDQogICAgKwkJQ0hfV0FSTihhZGFwLCAicmNhcCAweCUwOHgs IHBjYXAgMHglMDh4XG4iLCByY2FwLA0KICAgICsJCSAgICBsYy0+c3VwcG9ydGVkKTsNCiAgICAr I2VuZGlmDQogICAgKwkJcmNhcCAmPSBsYy0+c3VwcG9ydGVkOw0KICAgICsJfQ0KICAgICsNCiAg ICAgCW1lbXNldCgmYywgMCwgc2l6ZW9mKGMpKTsNCiAgICAgCWMub3BfdG9fcG9ydGlkID0gY3B1 X3RvX2JlMzIoVl9GV19DTURfT1AoRldfUE9SVF9DTUQpIHwNCiAgICAgCQkJCSAgICAgRl9GV19D TURfUkVRVUVTVCB8IEZfRldfQ01EX0VYRUMgfA0KICAgIEBAIC0zNzI0LDIxICszNzM4LDkgQEAg aW50IHQ0X2xpbmtfbDFjZmcoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQog ICAgIAljLmFjdGlvbl90b19sZW4xNiA9DQogICAgIAkJY3B1X3RvX2JlMzIoVl9GV19QT1JUX0NN RF9BQ1RJT04oRldfUE9SVF9BQ1RJT05fTDFfQ0ZHKSB8DQogICAgIAkJCSAgICBGV19MRU4xNihj KSk7DQogICAgKwljLnUubDFjZmcucmNhcCA9IGNwdV90b19iZTMyKHJjYXApOw0KICAgICANCiAg ICAtCWlmICghKGxjLT5zdXBwb3J0ZWQgJiBGV19QT1JUX0NBUF9BTkVHKSkgew0KICAgIC0JCWMu dS5sMWNmZy5yY2FwID0gY3B1X3RvX2JlMzIoKGxjLT5zdXBwb3J0ZWQgJiBBRFZFUlRfTUFTSykg fA0KICAgIC0JCQkJCSAgICAgZmMgfCBmZWMpOw0KICAgIC0JCWxjLT5mYyA9IGxjLT5yZXF1ZXN0 ZWRfZmMgJiB+UEFVU0VfQVVUT05FRzsNCiAgICAtCQlsYy0+ZmVjID0gbGMtPnJlcXVlc3RlZF9m ZWM7DQogICAgLQl9IGVsc2UgaWYgKGxjLT5hdXRvbmVnID09IEFVVE9ORUdfRElTQUJMRSkgew0K ICAgIC0JCWMudS5sMWNmZy5yY2FwID0gY3B1X3RvX2JlMzIobGMtPnJlcXVlc3RlZF9zcGVlZCB8 DQogICAgLQkJCQkJICAgICBmYyB8IGZlYyB8IG1kaSk7DQogICAgLQkJbGMtPmZjID0gbGMtPnJl cXVlc3RlZF9mYyAmIH5QQVVTRV9BVVRPTkVHOw0KICAgIC0JCWxjLT5mZWMgPSBsYy0+cmVxdWVz dGVkX2ZlYzsNCiAgICAtCX0gZWxzZQ0KICAgIC0JCWMudS5sMWNmZy5yY2FwID0gY3B1X3RvX2Jl MzIobGMtPmFkdmVydGlzaW5nIHwgZmMgfCBmZWMgfCBtZGkpOw0KICAgIC0NCiAgICAtCXJldHVy biB0NF93cl9tYm94KGFkYXAsIG1ib3gsICZjLCBzaXplb2YoYyksIE5VTEwpOw0KICAgICsJcmV0 dXJuIHQ0X3dyX21ib3hfbnMoYWRhcCwgbWJveCwgJmMsIHNpemVvZihjKSwgTlVMTCk7DQogICAg IH0NCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC0zOTc3LDYgKzM5NzksOSBAQCBzdGF0aWMgdm9p ZCBzZ2VfaW50cl9oYW5kbGVyKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAJCSAgIlNH RSB0b28gbWFueSBwcmlvcml0eSBpbmdyZXNzIGNvbnRleHRzIiwgLTEsIDAgfSwNCiAgICAgCQl7 IEZfSU5HUkVTU19TSVpFX0VSUiwgIlNHRSBpbGxlZ2FsIGluZ3Jlc3MgUUlEIiwgLTEsIDAgfSwN CiAgICAgCQl7IEZfRUdSRVNTX1NJWkVfRVJSLCAiU0dFIGlsbGVnYWwgZWdyZXNzIFFJRCIsIC0x LCAwIH0sDQogICAgKwkJeyBGX0VSUl9QQ0lFX0VSUk9SMCB8IEZfRVJSX1BDSUVfRVJST1IxIHwN CiAgICArCQkgIEZfRVJSX1BDSUVfRVJST1IyIHwgRl9FUlJfUENJRV9FUlJPUjMsDQogICAgKwkJ ICAiU0dFIFBDSWUgZXJyb3IgZm9yIGEgREJQIHRocmVhZCIsIC0xLCAwIH0sDQogICAgIAkJeyAw IH0NCiAgICAgCX07DQogICAgIA0KICAgIEBAIC0zOTkyLDggKzM5OTcsNiBAQCBzdGF0aWMgdm9p ZCBzZ2VfaW50cl9oYW5kbGVyKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAgCSogRm9y IG5vdywgdHJlYXQgYmVsb3cgaW50ZXJydXB0cyBhcyBmYXRhbCBzbyB0aGF0IHdlIGRpc2FibGUg U0dFIGFuZA0KICAgICAgCSogZ2V0IGJldHRlciBkZWJ1ZyAqLw0KICAgICAJc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRyX2luZm8gdDZfc2dlX2ludHJfaW5mb1tdID0gew0KICAgIC0JCXsgRl9FUlJf UENJRV9FUlJPUjAgfCBGX0VSUl9QQ0lFX0VSUk9SMSwNCiAgICAtCQkgICJTR0UgUENJZSBlcnJv ciBmb3IgYSBEQlAgdGhyZWFkIiwgLTEsIDEgfSwNCiAgICAgCQl7IEZfRkFUQUxfV1JFX0xFTiwN CiAgICAgCQkgICJTR0UgQWN0dWFsIFdSRSBwYWNrZXQgaXMgbGVzcyB0aGFuIGFkdmVydGl6ZWQg bGVuZ3RoIiwNCiAgICAgCQkgIC0xLCAxIH0sDQogICAgQEAgLTQwNDgsNiArNDA1MSw3IEBAIHN0 YXRpYyB2b2lkIGNpbV9pbnRyX2hhbmRsZXIoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpDQogICAg IAkJeyBGX01CSE9TVFBBUkVSUiwgIkNJTSBtYWlsYm94IGhvc3QgcGFyaXR5IGVycm9yIiwgLTEs IDEgfSwNCiAgICAgCQl7IEZfVElFUUlOUEFSRVJSSU5ULCAiQ0lNIFRJRVEgb3V0Z29pbmcgcGFy aXR5IGVycm9yIiwgLTEsIDEgfSwNCiAgICAgCQl7IEZfVElFUU9VVFBBUkVSUklOVCwgIkNJTSBU SUVRIGluY29taW5nIHBhcml0eSBlcnJvciIsIC0xLCAxIH0sDQogICAgKwkJeyBGX1RJTUVSMElO VCwgIkNJTSBUSU1FUjAgaW50ZXJydXB0IiwgLTEsIDEgfSwNCiAgICAgCQl7IDAgfQ0KICAgICAJ fTsNCiAgICAgCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50cl9pbmZvIGNpbV91cGludHJfaW5mb1td ID0gew0KICAgIEBAIC00MDgxLDExICs0MDg1LDI2IEBAIHN0YXRpYyB2b2lkIGNpbV9pbnRyX2hh bmRsZXIoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpDQogICAgIAkJeyBGX1RJTUVPVVRNQUlOVCAs ICJDSU0gUElGIE1BIHRpbWVvdXQiLCAtMSwgMSB9LA0KICAgICAJCXsgMCB9DQogICAgIAl9Ow0K ICAgICsJdTMyIHZhbCwgZndfZXJyOw0KICAgICAJaW50IGZhdDsNCiAgICAgDQogICAgLQlpZiAo dDRfcmVhZF9yZWcoYWRhcHRlciwgQV9QQ0lFX0ZXKSAmIEZfUENJRV9GV19FUlIpDQogICAgKwlm d19lcnIgPSB0NF9yZWFkX3JlZyhhZGFwdGVyLCBBX1BDSUVfRlcpOw0KICAgICsJaWYgKGZ3X2Vy ciAmIEZfUENJRV9GV19FUlIpDQogICAgIAkJdDRfcmVwb3J0X2Z3X2Vycm9yKGFkYXB0ZXIpOw0K ICAgICANCiAgICArCS8qIFdoZW4gdGhlIEZpcm13YXJlIGRldGVjdHMgYW4gaW50ZXJuYWwgZXJy b3Igd2hpY2ggbm9ybWFsbHkgd291bGRuJ3QNCiAgICArCSAqIHJhaXNlIGEgSG9zdCBJbnRlcnJ1 cHQsIGl0IGZvcmNlcyBhIENJTSBUaW1lcjAgaW50ZXJydXB0IGluIG9yZGVyDQogICAgKwkgKiB0 byBtYWtlIHN1cmUgdGhlIEhvc3Qgc2VlcyB0aGUgRmlybXdhcmUgQ3Jhc2guICBTbyBpZiB3ZSBo YXZlIGENCiAgICArCSAqIFRpbWVyMCBpbnRlcnJ1cHQgYW5kIGRvbid0IHNlZSBhIEZpcm13YXJl IENyYXNoLCBpZ25vcmUgdGhlIFRpbWVyMA0KICAgICsJICogaW50ZXJydXB0Lg0KICAgICsJICov DQogICAgKwl2YWwgPSB0NF9yZWFkX3JlZyhhZGFwdGVyLCBBX0NJTV9IT1NUX0lOVF9DQVVTRSk7 DQogICAgKwlpZiAodmFsICYgRl9USU1FUjBJTlQpDQogICAgKwkJaWYgKCEoZndfZXJyICYgRl9Q Q0lFX0ZXX0VSUikgfHwNCiAgICArCQkgICAgKEdfUENJRV9GV19FVkFMKGZ3X2VycikgIT0gUENJ RV9GV19FVkFMX0NSQVNIKSkNCiAgICArCQkJdDRfd3JpdGVfcmVnKGFkYXB0ZXIsIEFfQ0lNX0hP U1RfSU5UX0NBVVNFLA0KICAgICsJCQkJICAgICBGX1RJTUVSMElOVCk7DQogICAgKw0KICAgICAJ ZmF0ID0gdDRfaGFuZGxlX2ludHJfc3RhdHVzKGFkYXB0ZXIsIEFfQ0lNX0hPU1RfSU5UX0NBVVNF LA0KICAgICAJCQkJICAgIGNpbV9pbnRyX2luZm8pICsNCiAgICAgCSAgICAgIHQ0X2hhbmRsZV9p bnRyX3N0YXR1cyhhZGFwdGVyLCBBX0NJTV9IT1NUX1VQQUNDX0lOVF9DQVVTRSwNCiAgICBAQCAt NDgzMyw1NSArNDg1MiwxNzcgQEAgaW50IHQ0X3JlYWRfcnNzKHN0cnVjdCBhZGFwdGVyICphZGFw dGVyLCB1MTYgKm1hcCkNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgLSAqCXQ0X2Z3X3Rw X3Bpb19ydyAtIEFjY2VzcyBUUCBQSU8gdGhyb3VnaCBMRFNUDQogICAgLSAqCUBhZGFwOiB0aGUg YWRhcHRlcg0KICAgIC0gKglAdmFsczogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVl cyBhcmUgc3RvcmVkL3dyaXR0ZW4NCiAgICAtICoJQG5yZWdzOiBob3cgbWFueSBpbmRpcmVjdCBy ZWdpc3RlcnMgdG8gcmVhZC93cml0ZQ0KICAgIC0gKglAc3RhcnRfaWR4OiBpbmRleCBvZiBmaXJz dCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkL3dyaXRlDQogICAgLSAqCUBydzogUmVhZCAoMSkg b3IgV3JpdGUgKDApDQogICAgKyAqIHQ0X3RwX2Z3X2xkc3RfcncgLSBBY2Nlc3MgVFAgaW5kaXJl Y3QgcmVnaXN0ZXIgdGhyb3VnaCBMRFNUDQogICAgKyAqIEBhZGFwOiB0aGUgYWRhcHRlcg0KICAg ICsgKiBAY21kOiBUUCBmdyBsZHN0IGFkZHJlc3Mgc3BhY2UgdHlwZQ0KICAgICsgKiBAdmFsczog d2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3RvcmVkL3dyaXR0ZW4NCiAg ICArICogQG5yZWdzOiBob3cgbWFueSBpbmRpcmVjdCByZWdpc3RlcnMgdG8gcmVhZC93cml0ZQ0K ICAgICsgKiBAc3RhcnRfaWR4OiBpbmRleCBvZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byBy ZWFkL3dyaXRlDQogICAgKyAqIEBydzogUmVhZCAoMSkgb3IgV3JpdGUgKDApDQogICAgKyAqIEBz bGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29tbWFuZCBjb21w bGV0aW9uDQogICAgICAqDQogICAgLSAqCUFjY2VzcyBUUCBQSU8gcmVnaXN0ZXJzIHRocm91Z2gg TERTVA0KICAgIC0gKi8NCiAgICAtdm9pZCB0NF9md190cF9waW9fcncoc3RydWN0IGFkYXB0ZXIg KmFkYXAsIHUzMiAqdmFscywgdW5zaWduZWQgaW50IG5yZWdzLA0KICAgIC0JCSAgICAgdW5zaWdu ZWQgaW50IHN0YXJ0X2luZGV4LCB1bnNpZ25lZCBpbnQgcncpDQogICAgKyAqIEFjY2VzcyBUUCBp bmRpcmVjdCByZWdpc3RlcnMgdGhyb3VnaCBMRFNUDQogICAgKyAqKi8NCiAgICArc3RhdGljIGlu dCB0NF90cF9md19sZHN0X3J3KHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgY21kLCB1MzIgKnZh bHMsDQogICAgKwkJCSAgICB1bnNpZ25lZCBpbnQgbnJlZ3MsIHVuc2lnbmVkIGludCBzdGFydF9p bmRleCwNCiAgICArCQkJICAgIHVuc2lnbmVkIGludCBydywgYm9vbCBzbGVlcF9vaykNCiAgICAg ew0KICAgIC0JaW50IHJldCwgaTsNCiAgICAtCWludCBjbWQgPSBGV19MRFNUX0FERFJTUENfVFBf UElPOw0KICAgICsJaW50IHJldCA9IDA7DQogICAgKwl1bnNpZ25lZCBpbnQgaTsNCiAgICAgCXN0 cnVjdCBmd19sZHN0X2NtZCBjOw0KICAgICANCiAgICAtCWZvciAoaSA9IDAgOyBpIDwgbnJlZ3M7 IGkrKykgew0KICAgICsJZm9yIChpID0gMDsgaSA8IG5yZWdzOyBpKyspIHsNCiAgICAgCQltZW1z ZXQoJmMsIDAsIHNpemVvZihjKSk7DQogICAgIAkJYy5vcF90b19hZGRyc3BhY2UgPSBjcHVfdG9f YmUzMihWX0ZXX0NNRF9PUChGV19MRFNUX0NNRCkgfA0KICAgICAJCQkJCQlGX0ZXX0NNRF9SRVFV RVNUIHwNCiAgICAgCQkJCQkJKHJ3ID8gRl9GV19DTURfUkVBRCA6DQogICAgLQkJCQkJCSAgICAg Rl9GV19DTURfV1JJVEUpIHwNCiAgICArCQkJCQkJICAgICAgRl9GV19DTURfV1JJVEUpIHwNCiAg ICAgCQkJCQkJVl9GV19MRFNUX0NNRF9BRERSU1BBQ0UoY21kKSk7DQogICAgIAkJYy5jeWNsZXNf dG9fbGVuMTYgPSBjcHVfdG9fYmUzMihGV19MRU4xNihjKSk7DQogICAgIA0KICAgICAJCWMudS5h ZGRydmFsLmFkZHIgPSBjcHVfdG9fYmUzMihzdGFydF9pbmRleCArIGkpOw0KICAgICAJCWMudS5h ZGRydmFsLnZhbCAgPSBydyA/IDAgOiBjcHVfdG9fYmUzMih2YWxzW2ldKTsNCiAgICAtCQlyZXQg PSB0NF93cl9tYm94KGFkYXAsIGFkYXAtPm1ib3gsICZjLCBzaXplb2YoYyksICZjKTsNCiAgICAt CQlpZiAocmV0ID09IDApIHsNCiAgICAtCQkJaWYgKHJ3KQ0KICAgIC0JCQkJdmFsc1tpXSA9IGJl MzJfdG9fY3B1KGMudS5hZGRydmFsLnZhbCk7DQogICAgLQkJfQ0KICAgICsJCXJldCA9IHQ0X3dy X21ib3hfbWVhdChhZGFwLCBhZGFwLT5tYm94LCAmYywgc2l6ZW9mKGMpLCAmYywNCiAgICArCQkJ CSAgICAgIHNsZWVwX29rKTsNCiAgICArCQlpZiAocmV0KQ0KICAgICsJCQlyZXR1cm4gcmV0Ow0K ICAgICsNCiAgICArCQlpZiAocncpDQogICAgKwkJCXZhbHNbaV0gPSBiZTMyX3RvX2NwdShjLnUu YWRkcnZhbC52YWwpOw0KICAgICAJfQ0KICAgICsJcmV0dXJuIDA7DQogICAgIH0NCiAgICAgDQog ICAgIC8qKg0KICAgICsgKiB0NF90cF9pbmRpcmVjdF9ydyAtIFJlYWQvV3JpdGUgVFAgaW5kaXJl Y3QgcmVnaXN0ZXIgdGhyb3VnaCBMRFNUIG9yIGJhY2tkb29yDQogICAgKyAqIEBhZGFwOiB0aGUg YWRhcHRlcg0KICAgICsgKiBAcmVnX2FkZHI6IEFkZHJlc3MgUmVnaXN0ZXINCiAgICArICogQHJl Z19kYXRhOiBEYXRhIHJlZ2lzdGVyDQogICAgKyAqIEBidWZmOiB3aGVyZSB0aGUgaW5kaXJlY3Qg cmVnaXN0ZXIgdmFsdWVzIGFyZSBzdG9yZWQvd3JpdHRlbg0KICAgICsgKiBAbnJlZ3M6IGhvdyBt YW55IGluZGlyZWN0IHJlZ2lzdGVycyB0byByZWFkL3dyaXRlDQogICAgKyAqIEBzdGFydF9pbmRl eDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVnaXN0ZXIgdG8gcmVhZC93cml0ZQ0KICAgICsg KiBAcnc6IFJFQUQoMSkgb3IgV1JJVEUoMCkNCiAgICArICogQHNsZWVwX29rOiBpZiB0cnVlIHdl IG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICArICoNCiAg ICArICogUmVhZC9Xcml0ZSBUUCBpbmRpcmVjdCByZWdpc3RlcnMgdGhyb3VnaCBMRFNUIGlmIHBv c3NpYmxlLg0KICAgICsgKiBFbHNlLCB1c2UgYmFja2Rvb3IgYWNjZXNzDQogICAgKyAqKi8NCiAg ICArc3RhdGljIHZvaWQgdDRfdHBfaW5kaXJlY3Rfcncoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUz MiByZWdfYWRkciwgdTMyIHJlZ19kYXRhLA0KICAgICsJCQkgICAgICB1MzIgKmJ1ZmYsIHUzMiBu cmVncywgdTMyIHN0YXJ0X2luZGV4LCBpbnQgcncsDQogICAgKwkJCSAgICAgIGJvb2wgc2xlZXBf b2spDQogICAgK3sNCiAgICArCWludCByYyA9IC1FSU5WQUw7DQogICAgKwlpbnQgY21kOw0KICAg ICsNCiAgICArCXN3aXRjaCAocmVnX2FkZHIpIHsNCiAgICArCWNhc2UgQV9UUF9QSU9fQUREUjoN CiAgICArCQljbWQgPSBGV19MRFNUX0FERFJTUENfVFBfUElPOw0KICAgICsJCWJyZWFrOw0KICAg ICsJY2FzZSBBX1RQX1RNX1BJT19BRERSOg0KICAgICsJCWNtZCA9IEZXX0xEU1RfQUREUlNQQ19U UF9UTV9QSU87DQogICAgKwkJYnJlYWs7DQogICAgKwljYXNlIEFfVFBfTUlCX0lOREVYOg0KICAg ICsJCWNtZCA9IEZXX0xEU1RfQUREUlNQQ19UUF9NSUI7DQogICAgKwkJYnJlYWs7DQogICAgKwlk ZWZhdWx0Og0KICAgICsJCWdvdG8gaW5kaXJlY3RfYWNjZXNzOw0KICAgICsJfQ0KICAgICsNCiAg ICArCWlmICh0NF91c2VfbGRzdChhZGFwKSkNCiAgICArCQlyYyA9IHQ0X3RwX2Z3X2xkc3Rfcnco YWRhcCwgY21kLCBidWZmLCBucmVncywgc3RhcnRfaW5kZXgsIHJ3LA0KICAgICsJCQkJICAgICAg c2xlZXBfb2spOw0KICAgICsNCiAgICAraW5kaXJlY3RfYWNjZXNzOg0KICAgICsNCiAgICArCWlm IChyYykgew0KICAgICsJCWlmIChydykNCiAgICArCQkJdDRfcmVhZF9pbmRpcmVjdChhZGFwLCBy ZWdfYWRkciwgcmVnX2RhdGEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkJCSBzdGFydF9pbmRleCk7 DQogICAgKwkJZWxzZQ0KICAgICsJCQl0NF93cml0ZV9pbmRpcmVjdChhZGFwLCByZWdfYWRkciwg cmVnX2RhdGEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkJCSAgc3RhcnRfaW5kZXgpOw0KICAgICsJ fQ0KICAgICt9DQogICAgKw0KICAgICsvKioNCiAgICArICogdDRfdHBfcGlvX3JlYWQgLSBSZWFk IFRQIFBJTyByZWdpc3RlcnMNCiAgICArICogQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgKyAqIEBi dWZmOiB3aGVyZSB0aGUgaW5kaXJlY3QgcmVnaXN0ZXIgdmFsdWVzIGFyZSB3cml0dGVuDQogICAg KyAqIEBucmVnczogaG93IG1hbnkgaW5kaXJlY3QgcmVnaXN0ZXJzIHRvIHJlYWQNCiAgICArICog QHN0YXJ0X2luZGV4OiBpbmRleCBvZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkDQog ICAgKyAqIEBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t bWFuZCBjb21wbGV0aW9uDQogICAgKyAqDQogICAgKyAqIFJlYWQgVFAgUElPIFJlZ2lzdGVycw0K ICAgICsgKiovDQogICAgK3ZvaWQgdDRfdHBfcGlvX3JlYWQoc3RydWN0IGFkYXB0ZXIgKmFkYXAs IHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICB1MzIgc3RhcnRfaW5kZXgsIGJvb2wg c2xlZXBfb2spDQogICAgK3sNCiAgICArCXQ0X3RwX2luZGlyZWN0X3J3KGFkYXAsIEFfVFBfUElP X0FERFIsIEFfVFBfUElPX0RBVEEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkgIHN0YXJ0X2luZGV4 LCAxLCBzbGVlcF9vayk7DQogICAgK30NCiAgICArDQogICAgKy8qKg0KICAgICsgKiB0NF90cF9w aW9fd3JpdGUgLSBXcml0ZSBUUCBQSU8gcmVnaXN0ZXJzDQogICAgKyAqIEBhZGFwOiB0aGUgYWRh cHRlcg0KICAgICsgKiBAYnVmZjogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBh cmUgc3RvcmVkDQogICAgKyAqIEBucmVnczogaG93IG1hbnkgaW5kaXJlY3QgcmVnaXN0ZXJzIHRv IHdyaXRlDQogICAgKyAqIEBzdGFydF9pbmRleDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVn aXN0ZXIgdG8gd3JpdGUNCiAgICArICogQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3 aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICArICoNCiAgICArICogV3JpdGUg VFAgUElPIFJlZ2lzdGVycw0KICAgICsgKiovDQogICAgK3ZvaWQgdDRfdHBfcGlvX3dyaXRlKHN0 cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkg ICAgIHUzMiBzdGFydF9pbmRleCwgYm9vbCBzbGVlcF9vaykNCiAgICArew0KICAgICsJdDRfdHBf aW5kaXJlY3RfcncoYWRhcCwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICArCSAg ICBfX0RFQ09OU1QodTMyICosIGJ1ZmYpLCBucmVncywgc3RhcnRfaW5kZXgsIDAsIHNsZWVwX29r KTsNCiAgICArfQ0KICAgICsNCiAgICArLyoqDQogICAgKyAqIHQ0X3RwX3RtX3Bpb19yZWFkIC0g UmVhZCBUUCBUTSBQSU8gcmVnaXN0ZXJzDQogICAgKyAqIEBhZGFwOiB0aGUgYWRhcHRlcg0KICAg ICsgKiBAYnVmZjogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgd3JpdHRl bg0KICAgICsgKiBAbnJlZ3M6IGhvdyBtYW55IGluZGlyZWN0IHJlZ2lzdGVycyB0byByZWFkDQog ICAgKyAqIEBzdGFydF9pbmRleDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVnaXN0ZXIgdG8g cmVhZA0KICAgICsgKiBAc2xlZXBfb2s6IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0 aW5nIGNvbW1hbmQgY29tcGxldGlvbg0KICAgICsgKg0KICAgICsgKiBSZWFkIFRQIFRNIFBJTyBS ZWdpc3RlcnMNCiAgICArICoqLw0KICAgICt2b2lkIHQ0X3RwX3RtX3Bpb19yZWFkKHN0cnVjdCBh ZGFwdGVyICphZGFwLCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkgICAgICAgdTMyIHN0 YXJ0X2luZGV4LCBib29sIHNsZWVwX29rKQ0KICAgICt7DQogICAgKwl0NF90cF9pbmRpcmVjdF9y dyhhZGFwLCBBX1RQX1RNX1BJT19BRERSLCBBX1RQX1RNX1BJT19EQVRBLCBidWZmLA0KICAgICsJ CQkgIG5yZWdzLCBzdGFydF9pbmRleCwgMSwgc2xlZXBfb2spOw0KICAgICt9DQogICAgKw0KICAg ICsvKioNCiAgICArICogdDRfdHBfbWliX3JlYWQgLSBSZWFkIFRQIE1JQiByZWdpc3RlcnMNCiAg ICArICogQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgKyAqIEBidWZmOiB3aGVyZSB0aGUgaW5kaXJl Y3QgcmVnaXN0ZXIgdmFsdWVzIGFyZSB3cml0dGVuDQogICAgKyAqIEBucmVnczogaG93IG1hbnkg aW5kaXJlY3QgcmVnaXN0ZXJzIHRvIHJlYWQNCiAgICArICogQHN0YXJ0X2luZGV4OiBpbmRleCBv ZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkDQogICAgKyAqIEBzbGVlcF9vazogaWYg dHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29tbWFuZCBjb21wbGV0aW9uDQogICAg KyAqDQogICAgKyAqIFJlYWQgVFAgTUlCIFJlZ2lzdGVycw0KICAgICsgKiovDQogICAgK3ZvaWQg dDRfdHBfbWliX3JlYWQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqYnVmZiwgdTMyIG5yZWdz LCB1MzIgc3RhcnRfaW5kZXgsDQogICAgKwkJICAgIGJvb2wgc2xlZXBfb2spDQogICAgK3sNCiAg ICArCXQ0X3RwX2luZGlyZWN0X3J3KGFkYXAsIEFfVFBfTUlCX0lOREVYLCBBX1RQX01JQl9EQVRB LCBidWZmLCBucmVncywNCiAgICArCQkJICBzdGFydF9pbmRleCwgMSwgc2xlZXBfb2spOw0KICAg ICt9DQogICAgKw0KICAgICsvKioNCiAgICAgICoJdDRfcmVhZF9yc3Nfa2V5IC0gcmVhZCB0aGUg Z2xvYmFsIFJTUyBrZXkNCiAgICAgICoJQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgICAqCUBrZXk6 IDEwLWVudHJ5IGFycmF5IGhvbGRpbmcgdGhlIDMyMC1iaXQgUlNTIGtleQ0KICAgICsgKiAJQHNs ZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBs ZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVhZHMgdGhlIGdsb2JhbCAzMjAtYml0IFJTUyBrZXku DQogICAgICAqLw0KICAgIC12b2lkIHQ0X3JlYWRfcnNzX2tleShzdHJ1Y3QgYWRhcHRlciAqYWRh cCwgdTMyICprZXkpDQogICAgK3ZvaWQgdDRfcmVhZF9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICph ZGFwLCB1MzIgKmtleSwgYm9vbCBzbGVlcF9vaykNCiAgICAgew0KICAgIC0JaWYgKHQ0X3VzZV9s ZHN0KGFkYXApKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwLCBrZXksIDEwLCBBX1RQX1JT U19TRUNSRVRfS0VZMCwgMSk7DQogICAgLQllbHNlDQogICAgLQkJdDRfcmVhZF9pbmRpcmVjdChh ZGFwLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLCBrZXksIDEwLA0KICAgIC0JCQkJIEFf VFBfUlNTX1NFQ1JFVF9LRVkwKTsNCiAgICArCXQ0X3RwX3Bpb19yZWFkKGFkYXAsIGtleSwgMTAs IEFfVFBfUlNTX1NFQ1JFVF9LRVkwLCBzbGVlcF9vayk7DQogICAgIH0NCiAgICAgDQogICAgIC8q Kg0KICAgIEBAIC00ODg5LDEyICs1MDMwLDE0IEBAIHZvaWQgdDRfcmVhZF9yc3Nfa2V5KHN0cnVj dCBhZGFwdGVyICphZGFwLCB1MzIgKmtleSkNCiAgICAgICoJQGFkYXA6IHRoZSBhZGFwdGVyDQog ICAgICAqCUBrZXk6IDEwLWVudHJ5IGFycmF5IGhvbGRpbmcgdGhlIDMyMC1iaXQgUlNTIGtleQ0K ICAgICAgKglAaWR4OiB3aGljaCBSU1Mga2V5IHRvIHdyaXRlDQogICAgKyAqIAlAc2xlZXBfb2s6 IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0aW5nIGNvbW1hbmQgY29tcGxldGlvbg0K ICAgICAgKg0KICAgICAgKglXcml0ZXMgb25lIG9mIHRoZSBSU1Mga2V5cyB3aXRoIHRoZSBnaXZl biAzMjAtYml0IHZhbHVlLiAgSWYgQGlkeCBpcw0KICAgICAgKgkwLi4xNSB0aGUgY29ycmVzcG9u ZGluZyBlbnRyeSBpbiB0aGUgUlNTIGtleSB0YWJsZSBpcyB3cml0dGVuLA0KICAgICAgKglvdGhl cndpc2UgdGhlIGdsb2JhbCBSU1Mga2V5IGlzIHdyaXR0ZW4uDQogICAgICAqLw0KICAgIC12b2lk IHQ0X3dyaXRlX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqa2V5LCBpbnQgaWR4 KQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGNvbnN0 IHUzMiAqa2V5LCBpbnQgaWR4LA0KICAgICsJCSAgICAgIGJvb2wgc2xlZXBfb2spDQogICAgIHsN CiAgICAgCXU4IHJzc19rZXlfYWRkcl9jbnQgPSAxNjsNCiAgICAgCXUzMiB2cnQgPSB0NF9yZWFk X3JlZyhhZGFwLCBBX1RQX1JTU19DT05GSUdfVlJUKTsNCiAgICBAQCAtNDkwOCwxMSArNTA1MSw3 IEBAIHZvaWQgdDRfd3JpdGVfcnNzX2tleShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyICprZXks IA0KICAgICAJICAgICh2cnQgJiBGX0tFWUVYVEVORCkgJiYgKEdfS0VZTU9ERSh2cnQpID09IDMp KQ0KICAgICAJCXJzc19rZXlfYWRkcl9jbnQgPSAzMjsNCiAgICAgDQogICAgLQlpZiAodDRfdXNl X2xkc3QoYWRhcCkpDQogICAgLQkJdDRfZndfdHBfcGlvX3J3KGFkYXAsIGtleSwgMTAsIEFfVFBf UlNTX1NFQ1JFVF9LRVkwLCAwKTsNCiAgICAtCWVsc2UNCiAgICAtCQl0NF93cml0ZV9pbmRpcmVj dChhZGFwLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLCBrZXksIDEwLA0KICAgIC0JCQkJ ICBBX1RQX1JTU19TRUNSRVRfS0VZMCk7DQogICAgKwl0NF90cF9waW9fd3JpdGUoYWRhcCwga2V5 LCAxMCwgQV9UUF9SU1NfU0VDUkVUX0tFWTAsIHNsZWVwX29rKTsNCiAgICAgDQogICAgIAlpZiAo aWR4ID49IDAgJiYgaWR4IDwgcnNzX2tleV9hZGRyX2NudCkgew0KICAgICAJCWlmIChyc3Nfa2V5 X2FkZHJfY250ID4gMTYpDQogICAgQEAgLTQ5MzAsMTkgKzUwNjksMTUgQEAgdm9pZCB0NF93cml0 ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgKmtleSwgDQogICAgICAqCUBhZGFw dGVyOiB0aGUgYWRhcHRlcg0KICAgICAgKglAaW5kZXg6IHRoZSBlbnRyeSBpbiB0aGUgUEYgUlNT IHRhYmxlIHRvIHJlYWQNCiAgICAgICoJQHZhbHA6IHdoZXJlIHRvIHN0b3JlIHRoZSByZXR1cm5l ZCB2YWx1ZQ0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBh d2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVhZHMgdGhlIFBG IFJTUyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggYW5kIHJldHVy bnMNCiAgICAgICoJdGhlIHZhbHVlIGZvdW5kIHRoZXJlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0 NF9yZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGlu dCBpbmRleCwNCiAgICAtCQkJICAgdTMyICp2YWxwKQ0KICAgICsJCQkgICB1MzIgKnZhbHAsIGJv b2wgc2xlZXBfb2spDQogICAgIHsNCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkNCiAg ICAtCQl0NF9md190cF9waW9fcncoYWRhcHRlciwgdmFscCwgMSwNCiAgICAtCQkJCUFfVFBfUlNT X1BGMF9DT05GSUcgKyBpbmRleCwgMSk7DQogICAgLQllbHNlDQogICAgLQkJdDRfcmVhZF9pbmRp cmVjdChhZGFwdGVyLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLA0KICAgIC0JCQkJIHZh bHAsIDEsIEFfVFBfUlNTX1BGMF9DT05GSUcgKyBpbmRleCk7DQogICAgKwl0NF90cF9waW9fcmVh ZChhZGFwdGVyLCB2YWxwLCAxLCBBX1RQX1JTU19QRjBfQ09ORklHICsgaW5kZXgsIHNsZWVwX29r KTsNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgQEAgLTQ5NTAsMTkgKzUwODUsMTYgQEAg dm9pZCB0NF9yZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuDQog ICAgICAqCUBhZGFwdGVyOiB0aGUgYWRhcHRlcg0KICAgICAgKglAaW5kZXg6IHRoZSBlbnRyeSBp biB0aGUgVkYgUlNTIHRhYmxlIHRvIHJlYWQNCiAgICAgICoJQHZhbDogdGhlIHZhbHVlIHRvIHN0 b3JlDQogICAgKyAqIAlAc2xlZXBfb2s6IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0 aW5nIGNvbW1hbmQgY29tcGxldGlvbg0KICAgICAgKg0KICAgICAgKglXcml0ZXMgdGhlIFBGIFJT UyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggd2l0aCB0aGUNCiAg ICAgICoJc3BlY2lmaWVkIHZhbHVlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF93cml0ZV9yc3Nf cGZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgsDQog ICAgLQkJCSAgICB1MzIgdmFsKQ0KICAgICsJCQkgICAgdTMyIHZhbCwgYm9vbCBzbGVlcF9vaykN CiAgICAgew0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0ZXIpKQ0KICAgIC0JCXQ0X2Z3X3Rw X3Bpb19ydyhhZGFwdGVyLCAmdmFsLCAxLA0KICAgIC0JCQkJQV9UUF9SU1NfUEYwX0NPTkZJRyAr IGluZGV4LCAwKTsNCiAgICAtCWVsc2UNCiAgICAtCQl0NF93cml0ZV9pbmRpcmVjdChhZGFwdGVy LCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLA0KICAgIC0JCQkJICAmdmFsLCAxLCBBX1RQ X1JTU19QRjBfQ09ORklHICsgaW5kZXgpOw0KICAgICsJdDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIs ICZ2YWwsIDEsIEFfVFBfUlNTX1BGMF9DT05GSUcgKyBpbmRleCwNCiAgICArCQkJc2xlZXBfb2sp Ow0KICAgICB9DQogICAgIA0KICAgICAvKioNCiAgICBAQCAtNDk3MSwxMiArNTEwMywxMyBAQCB2 b2lkIHQ0X3dyaXRlX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUNCiAg ICAgICoJQGluZGV4OiB0aGUgZW50cnkgaW4gdGhlIFZGIFJTUyB0YWJsZSB0byByZWFkDQogICAg ICAqCUB2Zmw6IHdoZXJlIHRvIHN0b3JlIHRoZSByZXR1cm5lZCBWRkwNCiAgICAgICoJQHZmaDog d2hlcmUgdG8gc3RvcmUgdGhlIHJldHVybmVkIFZGSA0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0 cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAg ICoNCiAgICAgICoJUmVhZHMgdGhlIFZGIFJTUyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBz cGVjaWZpZWQgaW5kZXggYW5kIHJldHVybnMNCiAgICAgICoJdGhlIChWRkwsIFZGSCkgdmFsdWVz IGZvdW5kIHRoZXJlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF9yZWFkX3Jzc192Zl9jb25maWco c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGludCBpbmRleCwNCiAgICAtCQkJICAg dTMyICp2ZmwsIHUzMiAqdmZoKQ0KICAgICsJCQkgICB1MzIgKnZmbCwgdTMyICp2ZmgsIGJvb2wg c2xlZXBfb2spDQogICAgIHsNCiAgICAgCXUzMiB2cnQsIG1hc2ssIGRhdGE7DQogICAgIA0KICAg IEBAIC00OTk4LDE1ICs1MTMxLDggQEAgdm9pZCB0NF9yZWFkX3Jzc192Zl9jb25maWcoc3RydWN0 IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuDQogICAgIAkvKg0KICAgICAJICogR3JhYiB0aGUgVkZML1ZG SCB2YWx1ZXMgLi4uDQogICAgIAkgKi8NCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkg ew0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCB2ZmwsIDEsIEFfVFBfUlNTX1ZGTF9D T05GSUcsIDEpOw0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCB2ZmgsIDEsIEFfVFBf UlNTX1ZGSF9DT05GSUcsIDEpOw0KICAgIC0JfSBlbHNlIHsNCiAgICAtCQl0NF9yZWFkX2luZGly ZWN0KGFkYXB0ZXIsIEFfVFBfUElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgdmZs LCAxLCBBX1RQX1JTU19WRkxfQ09ORklHKTsNCiAgICAtCQl0NF9yZWFkX2luZGlyZWN0KGFkYXB0 ZXIsIEFfVFBfUElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgdmZoLCAxLCBBX1RQ X1JTU19WRkhfQ09ORklHKTsNCiAgICAtCX0NCiAgICArCXQ0X3RwX3Bpb19yZWFkKGFkYXB0ZXIs IHZmbCwgMSwgQV9UUF9SU1NfVkZMX0NPTkZJRywgc2xlZXBfb2spOw0KICAgICsJdDRfdHBfcGlv X3JlYWQoYWRhcHRlciwgdmZoLCAxLCBBX1RQX1JTU19WRkhfQ09ORklHLCBzbGVlcF9vayk7DQog ICAgIH0NCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC01MDIxLDcgKzUxNDcsNyBAQCB2b2lkIHQ0 X3JlYWRfcnNzX3ZmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdW4NCiAgICAgICoJ c3BlY2lmaWVkIChWRkwsIFZGSCkgdmFsdWVzLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF93cml0 ZV9yc3NfdmZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5k ZXgsDQogICAgLQkJCSAgICB1MzIgdmZsLCB1MzIgdmZoKQ0KICAgICsJCQkgICAgdTMyIHZmbCwg dTMyIHZmaCwgYm9vbCBzbGVlcF9vaykNCiAgICAgew0KICAgICAJdTMyIHZydCwgbWFzaywgZGF0 YTsNCiAgICAgDQogICAgQEAgLTUwMzYsMTUgKzUxNjIsOCBAQCB2b2lkIHQ0X3dyaXRlX3Jzc192 Zl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUNCiAgICAgCS8qDQogICAgIAkgKiBM b2FkIHVwIFZGTC9WRkggd2l0aCB0aGUgdmFsdWVzIHRvIGJlIHdyaXR0ZW4gLi4uDQogICAgIAkg Ki8NCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkgew0KICAgIC0JCXQ0X2Z3X3RwX3Bp b19ydyhhZGFwdGVyLCAmdmZsLCAxLCBBX1RQX1JTU19WRkxfQ09ORklHLCAwKTsNCiAgICAtCQl0 NF9md190cF9waW9fcncoYWRhcHRlciwgJnZmaCwgMSwgQV9UUF9SU1NfVkZIX0NPTkZJRywgMCk7 DQogICAgLQl9IGVsc2Ugew0KICAgIC0JCXQ0X3dyaXRlX2luZGlyZWN0KGFkYXB0ZXIsIEFfVFBf UElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgICZ2ZmwsIDEsIEFfVFBfUlNTX1ZG TF9DT05GSUcpOw0KICAgIC0JCXQ0X3dyaXRlX2luZGlyZWN0KGFkYXB0ZXIsIEFfVFBfUElPX0FE RFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgICZ2ZmgsIDEsIEFfVFBfUlNTX1ZGSF9DT05G SUcpOw0KICAgIC0JfQ0KICAgICsJdDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIsICZ2ZmwsIDEsIEFf VFBfUlNTX1ZGTF9DT05GSUcsIHNsZWVwX29rKTsNCiAgICArCXQ0X3RwX3Bpb193cml0ZShhZGFw dGVyLCAmdmZoLCAxLCBBX1RQX1JTU19WRkhfQ09ORklHLCBzbGVlcF9vayk7DQogICAgIA0KICAg ICAJLyoNCiAgICAgCSAqIFdyaXRlIHRoZSBWRkwvVkZIIGludG8gdGhlIFZGIFRhYmxlIGF0IGlu ZGV4J3RoIGxvY2F0aW9uLg0KICAgIEBAIC01MDU4LDE4ICs1MTc3LDE2IEBAIHZvaWQgdDRfd3Jp dGVfcnNzX3ZmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdQ0KICAgICAvKioNCiAg ICAgICoJdDRfcmVhZF9yc3NfcGZfbWFwIC0gcmVhZCBQRiBSU1MgTWFwDQogICAgICAqCUBhZGFw dGVyOiB0aGUgYWRhcHRlcg0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVl cCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVh ZHMgdGhlIFBGIFJTUyBNYXAgcmVnaXN0ZXIgYW5kIHJldHVybnMgaXRzIHZhbHVlLg0KICAgICAg Ki8NCiAgICAtdTMyIHQ0X3JlYWRfcnNzX3BmX21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcikN CiAgICArdTMyIHQ0X3JlYWRfcnNzX3BmX21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgYm9v bCBzbGVlcF9vaykNCiAgICAgew0KICAgICAJdTMyIHBmbWFwOw0KICAgICANCiAgICAtCWlmICh0 NF91c2VfbGRzdChhZGFwdGVyKSkNCiAgICAtCQl0NF9md190cF9waW9fcncoYWRhcHRlciwgJnBm bWFwLCAxLCBBX1RQX1JTU19QRl9NQVAsIDEpOw0KICAgIC0JZWxzZQ0KICAgIC0JCXQ0X3JlYWRf aW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICAtCQkJ CSAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCk7DQogICAgKwl0NF90cF9waW9fcmVhZChhZGFw dGVyLCAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCwgc2xlZXBfb2spOw0KICAgICsNCiAgICAg CXJldHVybiBwZm1hcDsNCiAgICAgfQ0KICAgICANCiAgICBAQCAtNTA4MCwzMCArNTE5NywyNCBA QCB1MzIgdDRfcmVhZF9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAg Kg0KICAgICAgKglXcml0ZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byB0aGUgUEYgUlNTIE1hcCBy ZWdpc3Rlci4NCiAgICAgICovDQogICAgLXZvaWQgdDRfd3JpdGVfcnNzX3BmX21hcChzdHJ1Y3Qg YWRhcHRlciAqYWRhcHRlciwgdTMyIHBmbWFwKQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19wZl9t YXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBwZm1hcCwgYm9vbCBzbGVlcF9vaykNCiAg ICAgew0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0ZXIpKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bp b19ydyhhZGFwdGVyLCAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCwgMCk7DQogICAgLQllbHNl DQogICAgLQkJdDRfd3JpdGVfaW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9Q SU9fREFUQSwNCiAgICAtCQkJCSAgJnBmbWFwLCAxLCBBX1RQX1JTU19QRl9NQVApOw0KICAgICsJ dDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIsICZwZm1hcCwgMSwgQV9UUF9SU1NfUEZfTUFQLCBzbGVl cF9vayk7DQogICAgIH0NCiAgICAgDQogICAgIC8qKg0KICAgICAgKgl0NF9yZWFkX3Jzc19wZl9t YXNrIC0gcmVhZCBQRiBSU1MgTWFzaw0KICAgICAgKglAYWRhcHRlcjogdGhlIGFkYXB0ZXINCiAg ICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t bWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJlYWRzIHRoZSBQRiBSU1MgTWFzayBy ZWdpc3RlciBhbmQgcmV0dXJucyBpdHMgdmFsdWUuDQogICAgICAqLw0KICAgIC11MzIgdDRfcmVh ZF9yc3NfcGZfbWFzayhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcikNCiAgICArdTMyIHQ0X3JlYWRf cnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgc2xlZXBfb2spDQogICAg IHsNCiAgICAgCXUzMiBwZm1hc2s7DQogICAgIA0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0 ZXIpKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCAmcGZtYXNrLCAxLCBBX1RQX1JT U19QRl9NU0ssIDEpOw0KICAgIC0JZWxzZQ0KICAgIC0JCXQ0X3JlYWRfaW5kaXJlY3QoYWRhcHRl ciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICAtCQkJCSAmcGZtYXNrLCAxLCBB X1RQX1JTU19QRl9NU0spOw0KICAgICsJdDRfdHBfcGlvX3JlYWQoYWRhcHRlciwgJnBmbWFzaywg MSwgQV9UUF9SU1NfUEZfTVNLLCBzbGVlcF9vayk7DQogICAgKw0KICAgICAJcmV0dXJuIHBmbWFz azsNCiAgICAgfQ0KICAgICANCiAgICBAQCAtNTExNCwxMyArNTIyNSw5IEBAIHUzMiB0NF9yZWFk X3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAgKg0KICAgICAgKglX cml0ZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byB0aGUgUEYgUlNTIE1hc2sgcmVnaXN0ZXIuDQog ICAgICAqLw0KICAgIC12b2lkIHQ0X3dyaXRlX3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICph ZGFwdGVyLCB1MzIgcGZtYXNrKQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19wZl9tYXNrKHN0cnVj dCBhZGFwdGVyICphZGFwdGVyLCB1MzIgcGZtYXNrLCBib29sIHNsZWVwX29rKQ0KICAgICB7DQog ICAgLQlpZiAodDRfdXNlX2xkc3QoYWRhcHRlcikpDQogICAgLQkJdDRfZndfdHBfcGlvX3J3KGFk YXB0ZXIsICZwZm1hc2ssIDEsIEFfVFBfUlNTX1BGX01TSywgMCk7DQogICAgLQllbHNlDQogICAg LQkJdDRfd3JpdGVfaW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFU QSwNCiAgICAtCQkJCSAgJnBmbWFzaywgMSwgQV9UUF9SU1NfUEZfTVNLKTsNCiAgICArCXQ0X3Rw X3Bpb193cml0ZShhZGFwdGVyLCAmcGZtYXNrLCAxLCBBX1RQX1JTU19QRl9NU0ssIHNsZWVwX29r KTsNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgQEAgLTUxMjgsMTIgKzUyMzUsMTMgQEAg dm9pZCB0NF93cml0ZV9yc3NfcGZfbWFzayhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdTMyDQog ICAgICAqCUBhZGFwOiB0aGUgYWRhcHRlcg0KICAgICAgKglAdjQ6IGhvbGRzIHRoZSBUQ1AvSVAg Y291bnRlciB2YWx1ZXMNCiAgICAgICoJQHY2OiBob2xkcyB0aGUgVENQL0lQdjYgY291bnRlciB2 YWx1ZXMNCiAgICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdh aXRpbmcgY29tbWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJldHVybnMgdGhlIHZh bHVlcyBvZiBUUCdzIFRDUC9JUCBhbmQgVENQL0lQdjYgTUlCIGNvdW50ZXJzLg0KICAgICAgKglF aXRoZXIgQHY0IG9yIEB2NiBtYXkgYmUgJU5VTEwgdG8gc2tpcCB0aGUgY29ycmVzcG9uZGluZyBz dGF0cy4NCiAgICAgICovDQogICAgIHZvaWQgdDRfdHBfZ2V0X3RjcF9zdGF0cyhzdHJ1Y3QgYWRh cHRlciAqYWRhcCwgc3RydWN0IHRwX3RjcF9zdGF0cyAqdjQsDQogICAgLQkJCSBzdHJ1Y3QgdHBf dGNwX3N0YXRzICp2NikNCiAgICArCQkJIHN0cnVjdCB0cF90Y3Bfc3RhdHMgKnY2LCBib29sIHNs ZWVwX29rKQ0KICAgICB7DQogICAgIAl1MzIgdmFsW0FfVFBfTUlCX1RDUF9SWFRfU0VHX0xPIC0g QV9UUF9NSUJfVENQX09VVF9SU1QgKyAxXTsNCiAgICAgDQogICAgQEAgLTUxNDIsMTYgKzUyNTAs MTYgQEAgdm9pZCB0NF90cF9nZXRfdGNwX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1 Y3QgDQogICAgICNkZWZpbmUgU1RBVDY0KHgpICAgKCgodTY0KVNUQVQoeCMjX0hJKSA8PCAzMikg fCBTVEFUKHgjI19MTykpDQogICAgIA0KICAgICAJaWYgKHY0KSB7DQogICAgLQkJdDRfcmVhZF9p bmRpcmVjdChhZGFwLCBBX1RQX01JQl9JTkRFWCwgQV9UUF9NSUJfREFUQSwgdmFsLA0KICAgIC0J CQkJIEFSUkFZX1NJWkUodmFsKSwgQV9UUF9NSUJfVENQX09VVF9SU1QpOw0KICAgICsJCXQ0X3Rw X21pYl9yZWFkKGFkYXAsIHZhbCwgQVJSQVlfU0laRSh2YWwpLA0KICAgICsJCQkgICAgICAgQV9U UF9NSUJfVENQX09VVF9SU1QsIHNsZWVwX29rKTsNCiAgICAgCQl2NC0+dGNwX291dF9yc3RzID0g U1RBVChPVVRfUlNUKTsNCiAgICAgCQl2NC0+dGNwX2luX3NlZ3MgID0gU1RBVDY0KElOX1NFRyk7 DQogICAgIAkJdjQtPnRjcF9vdXRfc2VncyA9IFNUQVQ2NChPVVRfU0VHKTsNCiAgICAgCQl2NC0+ dGNwX3JldHJhbnNfc2VncyA9IFNUQVQ2NChSWFRfU0VHKTsNCiAgICAgCX0NCiAgICAgCWlmICh2 Nikgew0KICAgIC0JCXQ0X3JlYWRfaW5kaXJlY3QoYWRhcCwgQV9UUF9NSUJfSU5ERVgsIEFfVFBf TUlCX0RBVEEsIHZhbCwNCiAgICAtCQkJCSBBUlJBWV9TSVpFKHZhbCksIEFfVFBfTUlCX1RDUF9W Nk9VVF9SU1QpOw0KICAgICsJCXQ0X3RwX21pYl9yZWFkKGFkYXAsIHZhbCwgQVJSQVlfU0laRSh2 YWwpLA0KICAgICsJCQkgICAgICAgQV9UUF9NSUJfVENQX1Y2T1VUX1JTVCwgc2xlZXBfb2spOw0K ICAgICAJCXY2LT50Y3Bfb3V0X3JzdHMgPSBTVEFUKE9VVF9SU1QpOw0KICAgICAJCXY2LT50Y3Bf aW5fc2VncyAgPSBTVEFUNjQoSU5fU0VHKTsNCiAgICAgCQl2Ni0+dGNwX291dF9zZWdzID0gU1RB VDY0KE9VVF9TRUcpOw0KICAgIEBAIC01MTY2LDMyICs1Mjc0LDQxIEBAIHZvaWQgdDRfdHBfZ2V0 X3RjcF9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IA0KICAgICAgKgl0NF90cF9n ZXRfZXJyX3N0YXRzIC0gcmVhZCBUUCdzIGVycm9yIE1JQiBjb3VudGVycw0KICAgICAgKglAYWRh cDogdGhlIGFkYXB0ZXINCiAgICAgICoJQHN0OiBob2xkcyB0aGUgY291bnRlciB2YWx1ZXMNCiAg ICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t bWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJldHVybnMgdGhlIHZhbHVlcyBvZiBU UCdzIGVycm9yIGNvdW50ZXJzLg0KICAgICAgKi8NCiAgICAtdm9pZCB0NF90cF9nZXRfZXJyX3N0 YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBfZXJyX3N0YXRzICpzdCkNCiAgICAr dm9pZCB0NF90cF9nZXRfZXJyX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBf ZXJyX3N0YXRzICpzdCwNCiAgICArCQkJIGJvb2wgc2xlZXBfb2spDQogICAgIHsNCiAgICANCiAg ICAqKiogRElGRiBPVVRQVVQgVFJVTkNBVEVEIEFUIDEwMDAgTElORVMgKioqDQogICAgDQoNCg== From owner-svn-src-all@freebsd.org Thu Oct 10 23:54:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Thu Oct 10 23:55:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 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-all@freebsd.org Fri Oct 11 00:02:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B0F3135D82; Fri, 11 Oct 2019 00:02:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46q7RY03ssz3Gdr; Fri, 11 Oct 2019 00:02:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D28F29B4F; Fri, 11 Oct 2019 00:02:00 +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 x9B020q9095821; Fri, 11 Oct 2019 00:02:00 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9B020ki095820; Fri, 11 Oct 2019 00:02:00 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910110002.x9B020ki095820@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 00:02:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353428 - releng/12.1/sys/conf X-SVN-Group: releng X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: releng/12.1/sys/conf X-SVN-Commit-Revision: 353428 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 00:02:01 -0000 Author: gjb Date: Fri Oct 11 00:02:00 2019 New Revision: 353428 URL: https://svnweb.freebsd.org/changeset/base/353428 Log: Update releng/12.1 to RC1 as part of the 12.1-RELEASE cycle. Approved by: re (implicit) Sponsored by: Rubicon Communications, LLC (Netgate) Modified: releng/12.1/sys/conf/newvers.sh Modified: releng/12.1/sys/conf/newvers.sh ============================================================================== --- releng/12.1/sys/conf/newvers.sh Thu Oct 10 23:55:33 2019 (r353427) +++ releng/12.1/sys/conf/newvers.sh Fri Oct 11 00:02:00 2019 (r353428) @@ -46,7 +46,7 @@ TYPE="FreeBSD" REVISION="12.1" -BRANCH="BETA3" +BRANCH="RC1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@freebsd.org Fri Oct 11 01:31:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 04:20:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 05:29:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1CC4013D9AB for ; Fri, 11 Oct 2019 05:29:49 +0000 (UTC) (envelope-from steve.maki8762@gmail.com) Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) (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 46qGjl5rSQz41B8 for ; Fri, 11 Oct 2019 05:29:47 +0000 (UTC) (envelope-from steve.maki8762@gmail.com) Received: by mail-ed1-x541.google.com with SMTP id r4so7544993edy.4 for ; Thu, 10 Oct 2019 22:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:from:date:message-id:subject:to; bh=JFq3oLBe7QXOT3J2cIPWACqskgCRz4x9kOSVOoUQYvY=; b=oB6nawQ8+cturXbUEYqOqUrMwd+67PSLfHw36rvXpbCJ4SDZnIoB2A/vh+0mSHcciS /+d69fbTLVQ2BBGCpPZ1knEUby78F0CPF3Y6d9AnPtB9oHToxlAYJ1etzsPEqW9T/ESY vn6/x5dONG5OAQKDbJ0bOA6SzBe4tKkyNubuyk8/6pIB6G4Qf1I/KboNHPks2ojjsrmJ cVVzOhSKvioUxXCqHs4hTQM/roj9K56qidjuVZKWwpiDmD9DfbB95JDmp9zVC7z4EW2S 8tHXAqc0+PByRIkwIfeqgUhR1tMtuwGqyrayiwfWVheUbrUBj52lMaUSGIhjSwLsW9bB SmpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=JFq3oLBe7QXOT3J2cIPWACqskgCRz4x9kOSVOoUQYvY=; b=YoKlBqefuyhr86p7P51QnmO9qOZfdoBzq1mbXzEoNSLxyPFKc8kzzzaESYeIEiLQao /3wl4/3IouBosBccQbuTMhZm+yH8+yJ1oSXqGIEH/F8UvMS+tzXfdS5wAEZMnh1nKQz3 G84PINAsQ3bl/bgX+kJfh8B11n09PwqpWiNIGlJyT1m7vOKiBCnIuEbxLL1zC6WaCFKF HcvbvZ84Nx+0tBKAbZ5jL19JiyL21SsvkI10u1OeChXRRNg+SZcWJO5N95Q0aWz9dcWu cKl2bT0cmUTM8oa4BpOHXj3emVqRHAH2elbs4MDFL+tfwEE741DlPgQ5PUiIrQ3koxB6 TSWA== X-Gm-Message-State: APjAAAXRP8cJrQfNjDvbDYD6J5Rm45dJv5f9EnYQ5CR0FbdXWRfXVzVl luLq6brk4p2GqSuN8skYuHZ2hJBe/Q8thj7AgYikxA== X-Google-Smtp-Source: APXvYqwRVzUuQKizskbg5Y1YFSH3a1jlkSTro9aUthURqpjwlrXE+NLTzXtugQN0lenpfXyuFJAnrfmJuwBtsShzprk= X-Received: by 2002:a17:906:4d95:: with SMTP id s21mr11785657eju.175.1570771785944; Thu, 10 Oct 2019 22:29:45 -0700 (PDT) Received: from 52669349336 named unknown by gmailapi.google.com with HTTPREST; Thu, 10 Oct 2019 22:29:45 -0700 MIME-Version: 1.0 Sender: Steve Maki From: Steve Maki Date: Thu, 10 Oct 2019 22:29:45 -0700 X-Google-Sender-Auth: 9-i9YS8FcNra7FnsFMLOLogTcvE Message-ID: Subject: Website Performance Report: gcu-squad.org To: Svn-Src-All X-Rspamd-Queue-Id: 46qGjl5rSQz41B8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=oB6nawQ8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of stevemaki8762@gmail.com designates 2a00:1450:4864:20::541 as permitted sender) smtp.mailfrom=stevemaki8762@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)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(0.00)[ip: (-0.06), ipnet: 2a00:1450::/32(-2.87), asn: 15169(-2.13), country: US(-0.05)]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[1.4.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; TAGGED_FROM(0.00)[]; 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" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 05:29:49 -0000 Hi gcu-squad.org Team, It=E2=80=99s a Pleasure to get in touch with you. There are multiple ways to stand high against your competitors, with our alliance we can overcome the shortcomings of your website to compete and acquire maximum web visibility. Our Analytic Team has gathered few points which will be beneficial for your online business. By implementing new strategies we can help your business grow and reduce major obstacles which you might be facing to promote your website worldwide. In order to have high SERP ranking and vibrant social media presence, you must overcome technical errors that prohibits search engine to index your website with accurate and fitting keywords for better optimization. A fully furbished website with high quality content based backlinks is necessary along with active updates on social media portals to increase the popularity and brand awareness. Apart from the above activities, we offer many other additional improvements for your website. I would love to present a detailed *Analysis Report* along with errors that your website poses and steps to improve your ranking. This e-mail provides you a glimpse of services which we offer. If you require any sort of assistance then kindly contact us back on my email address or contact number mentioned below. Alternatively you can also provide us with your phone number and best time to call you. *Steve maki* *, **Digital Marketing Analyst* *........................................................* [image: beacon] From owner-svn-src-all@freebsd.org Fri Oct 11 06:02:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 06:03:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 06:08:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 06:22:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 06:25:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 08:04:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 08:23:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 09:18:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 11:13:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 11:31:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 12:04:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 13:34:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 14:15:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 14:17:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 14:57:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 14:59:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 16:01:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 16:28:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 16:54:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 17:01:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 17:04:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 17:23:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 18:05:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 120271571E7; Fri, 11 Oct 2019 18:05:07 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46qbTG6hBBz3PlB; Fri, 11 Oct 2019 18:05:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C8B0B1DF17; Fri, 11 Oct 2019 18:05:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9BI56ou033866; Fri, 11 Oct 2019 18:05:06 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9BI56Bk033865; Fri, 11 Oct 2019 18:05:06 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201910111805.x9BI56Bk033865@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Fri, 11 Oct 2019 18:05:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353445 - stable/11/lib/libnetgraph X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/11/lib/libnetgraph X-SVN-Commit-Revision: 353445 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 18:05:07 -0000 Author: eugen Date: Fri Oct 11 18:05:06 2019 New Revision: 353445 URL: https://svnweb.freebsd.org/changeset/base/353445 Log: MFC r347439 by markj: Atomically update the global gMsgId in libnetgraph. Otherwise concurrently running threads may inadvertently use the same token for different messages. Preserve the behaviour of disallowing negative message tokens, but allow a message token value of zero since this simplifies the code a bit and tokens are documented to be non-negative. PR: 234442 Modified: stable/11/lib/libnetgraph/msg.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libnetgraph/msg.c ============================================================================== --- stable/11/lib/libnetgraph/msg.c Fri Oct 11 17:23:23 2019 (r353444) +++ stable/11/lib/libnetgraph/msg.c Fri Oct 11 18:05:06 2019 (r353445) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -51,7 +52,7 @@ __FBSDID("$FreeBSD$"); #include "internal.h" /* Next message token value */ -static int gMsgId; +static _Atomic(unsigned int) gMsgId; /* For delivering both messages and replies */ static int NgDeliverMsg(int cs, const char *path, @@ -72,9 +73,7 @@ NgSendMsg(int cs, const char *path, memset(&msg, 0, sizeof(msg)); msg.header.version = NG_VERSION; msg.header.typecookie = cookie; - if (++gMsgId < 0) - gMsgId = 1; - msg.header.token = gMsgId; + msg.header.token = atomic_fetch_add(&gMsgId, 1) & INT_MAX; msg.header.flags = NGF_ORIG; msg.header.cmd = cmd; snprintf((char *)msg.header.cmdstr, NG_CMDSTRSIZ, "cmd%d", cmd); @@ -143,9 +142,7 @@ NgSendAsciiMsg(int cs, const char *path, const char *f /* Now send binary version */ binary = (struct ng_mesg *)reply->data; - if (++gMsgId < 0) - gMsgId = 1; - binary->header.token = gMsgId; + binary->header.token = atomic_fetch_add(&gMsgId, 1) & INT_MAX; binary->header.version = NG_VERSION; if (NgDeliverMsg(cs, path, binary, binary->data, binary->header.arglen) < 0) { From owner-svn-src-all@freebsd.org Fri Oct 11 18:37:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 18:41:25 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 21:23:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 21:28:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Fri Oct 11 23:29:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 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-all@freebsd.org Sat Oct 12 01:02:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EE55136C00; Sat, 12 Oct 2019 01:02:46 +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 46qmlB1rfKz4CP4; Sat, 12 Oct 2019 01:02:46 +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 23AE22293B; Sat, 12 Oct 2019 01:02:46 +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 x9C12k75086430; Sat, 12 Oct 2019 01:02:46 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9C12km1086429; Sat, 12 Oct 2019 01:02:46 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910120102.x9C12km1086429@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sat, 12 Oct 2019 01:02:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r353450 - in stable: 11/lib/libucl 12/lib/libucl X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/lib/libucl 12/lib/libucl X-SVN-Commit-Revision: 353450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 01:02:46 -0000 Author: gjb Date: Sat Oct 12 01:02:45 2019 New Revision: 353450 URL: https://svnweb.freebsd.org/changeset/base/353450 Log: MFC r353348: Connect the libucl(3) manual page to the build. Sponsored by: Rubicon Communications, LLC (Netgate) Modified: stable/11/lib/libucl/Makefile Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libucl/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libucl/Makefile ============================================================================== --- stable/11/lib/libucl/Makefile Fri Oct 11 21:28:02 2019 (r353449) +++ stable/11/lib/libucl/Makefile Sat Oct 12 01:02:45 2019 (r353450) @@ -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-all@freebsd.org Sat Oct 12 01:02:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF40A136C06; Sat, 12 Oct 2019 01:02:46 +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 46qmlB4FmLz4CP5; Sat, 12 Oct 2019 01:02:46 +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 7542B2293C; Sat, 12 Oct 2019 01:02:46 +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 x9C12kZB086436; Sat, 12 Oct 2019 01:02:46 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9C12kD1086435; Sat, 12 Oct 2019 01:02:46 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910120102.x9C12kD1086435@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sat, 12 Oct 2019 01:02:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r353450 - in stable: 11/lib/libucl 12/lib/libucl X-SVN-Group: stable-12 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/lib/libucl 12/lib/libucl X-SVN-Commit-Revision: 353450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 01:02:46 -0000 Author: gjb Date: Sat Oct 12 01:02:45 2019 New Revision: 353450 URL: https://svnweb.freebsd.org/changeset/base/353450 Log: MFC r353348: Connect the libucl(3) manual page to the build. Sponsored by: Rubicon Communications, LLC (Netgate) Modified: stable/12/lib/libucl/Makefile Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libucl/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libucl/Makefile ============================================================================== --- stable/12/lib/libucl/Makefile Fri Oct 11 21:28:02 2019 (r353449) +++ stable/12/lib/libucl/Makefile Sat Oct 12 01:02:45 2019 (r353450) @@ -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-all@freebsd.org Sat Oct 12 17:57:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 20:53:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 18:46:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 19:03:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 18:18:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 17:15:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 154F213CFC6; Sat, 12 Oct 2019 17:15:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46rBKc5j04z4KpH; Sat, 12 Oct 2019 17:15:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A20826C67; Sat, 12 Oct 2019 17:15:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9CHFWK7061374; Sat, 12 Oct 2019 17:15:32 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CHFWsl061373; Sat, 12 Oct 2019 17:15:32 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201910121715.x9CHFWsl061373@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sat, 12 Oct 2019 17:15:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r353451 - releng/12.1/lib/libucl X-SVN-Group: releng X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: releng/12.1/lib/libucl X-SVN-Commit-Revision: 353451 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 17:15:33 -0000 Author: gjb Date: Sat Oct 12 17:15:32 2019 New Revision: 353451 URL: https://svnweb.freebsd.org/changeset/base/353451 Log: MFS r353450: MFC r353348: Connect the libucl(3) manual page to the build. Approved by: re (kib) Sponsored by: Rubicon Communications, LLC (Netgate) Modified: releng/12.1/lib/libucl/Makefile Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/lib/libucl/Makefile ============================================================================== --- releng/12.1/lib/libucl/Makefile Sat Oct 12 01:02:45 2019 (r353450) +++ releng/12.1/lib/libucl/Makefile Sat Oct 12 17:15:32 2019 (r353451) @@ -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-all@freebsd.org Sat Oct 12 22:36:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DCDF7147CFA for ; Sat, 12 Oct 2019 22:36:42 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) (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 46rKS96z0mz4brF for ; Sat, 12 Oct 2019 22:36:41 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qt1-x841.google.com with SMTP id n17so78720qtr.4 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=RxS7N2wJSHP8B48x05FBgQy2C7fR4B4TgrJZ85tJze5GpX8kItAicIEf2IagemsHdj SsY3n7J7YbOTBCYjsFwFq2Q3vRaGEJhZXfRZ45vADXM9Jmq2Z6tQu0LFwYOdeEp9vZ6+ Fm3fVgj97UdwDWz/YuDj7trdvU2lZjly6nrPbLD+ns2Gmz93oon8c0V0VBLXXXwch8Ab tcC5/hpjUEt+M6DNGvKmN+b0Yjm8KFgIU/PY1TcvbVnpPK6PIUw+Qp2ZPAok9jnx3Zeg m2MM2EQUC5T1n1UiX86eyAOZape3AN2+zRrkex2WECO1PaNaNjNw4oNXma6c/CO1bibY 4pRg== X-Gm-Message-State: APjAAAUkW4OyXZytI+dkZ1sfGDmEaESTJd+kDVoeTz+oizeyAHhczyU/ thl8zjM1R1bZ4BYtTZniQFzFbg== 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: 46rKS96z0mz4brF 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::841 as permitted sender) smtp.mailfrom=shawn.webb@hardenedbsd.org X-Spamd-Result: default: False [-4.53 / 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:c]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@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)[1.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.43)[ip: (2.56), 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 22:27:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 23:01:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 23:16:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Sat Oct 12 22:58:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 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-all@freebsd.org Tue Sep 3 14:07:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:16 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:07:16 -0000 X-Original-Date: Tue, 9 Apr 2019 14:08:35 -0700 (PDT) X-List-Received-Date: Tue, 03 Sep 2019 14:07:16 -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-all@freebsd.org Tue Sep 3 14:07:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:16 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:07:17 -0000 X-Original-Date: Tue, 09 Apr 2019 22:24:16 +0100 X-List-Received-Date: Tue, 03 Sep 2019 14:07:17 -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. From owner-svn-src-all@freebsd.org Tue Sep 3 14:07:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:16 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:07:17 -0000 X-Original-Date: Tue, 9 Apr 2019 14:19:45 -0700 (PDT) X-List-Received-Date: Tue, 03 Sep 2019 14:07:17 -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-all@freebsd.org Thu Sep 26 19:50:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:15 +0000 Content-Type: text/plain X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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-all@freebsd.org Thu Sep 26 20:08:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:16 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" 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-all@freebsd.org Thu Sep 26 23:28:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D7F7136D53 for ; Thu, 26 Sep 2019 23:28:13 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46fWM03L2kz45Pt for ; Thu, 26 Sep 2019 23:28:12 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72d.google.com with SMTP id 201so457899qkd.13 for ; Thu, 26 Sep 2019 16:28:12 -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=dqogr68HxWbGis+Ejv1b9nqI3WnJ+QifNV4Xi09EE75YCK6gIqdKMJsH8WFVrY9Hvn rZToiQfvQi/z44959CGp14Kac+7qMzUcvncl7IucyjWmjC+HH7oERVMsCFQWvppRpyeU pSwA3aitkCLFYivJrQPnGl2gYIJez+BUj/+xr8iVWdPXt8CRKIyMO7oHybtQ0LYQwHNW ZoshfKy6WkCrCL0DdyHXoiQli2WblzlJ3jDx/5AraUJ6PIToviOXwvlocNwa26bcipHE jozoCZN82H2ZPmcnwHFEMSQ+XFqqtXLGmk+Us8su7xOYF9wiDL189QZjdfU+/ZoNSQF+ /2vw== X-Gm-Message-State: APjAAAWU46epSNUnw9ct5qZash693dHP4XllMkf24C/pEzDg1vXMN6Nr D8CY0kCF4Ch5Dseb6gFa6nVkFYOAjBzncCDpd4lK2w== 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: 46fWM03L2kz45Pt 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::72d) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.34 / 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-all@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)[d.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; 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.84)[ip: (-9.37), 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:42:15 +0000 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 26 Sep 2019 23:28:13 -0000 X-Original-Date: Thu, 26 Sep 2019 17:27:56 -0600 X-List-Received-Date: Thu, 26 Sep 2019 23:28:13 -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-all@freebsd.org Tue Sep 3 14:07:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org 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:42:16 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 03 Sep 2019 14:07:17 -0000 X-Original-Date: Tue, 9 Apr 2019 23:47:44 +0200 X-List-Received-Date: Tue, 03 Sep 2019 14:07:17 -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