From owner-svn-src-head@freebsd.org Sun Jul 12 00:02:45 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67E9F999661; Sun, 12 Jul 2015 00:02:45 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 543E319ED; Sun, 12 Jul 2015 00:02:45 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6C02jHc001158; Sun, 12 Jul 2015 00:02:45 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6C02i8i001155; Sun, 12 Jul 2015 00:02:44 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507120002.t6C02i8i001155@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 12 Jul 2015 00:02:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285415 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 00:02:45 -0000 Author: bapt Date: Sun Jul 12 00:02:43 2015 New Revision: 285415 URL: https://svnweb.freebsd.org/changeset/base/285415 Log: Make getarg return NULL if args is NULL Modified: head/usr.sbin/pw/pw.c head/usr.sbin/pw/pw_user.c Modified: head/usr.sbin/pw/pw.c ============================================================================== --- head/usr.sbin/pw/pw.c Sat Jul 11 23:56:55 2015 (r285414) +++ head/usr.sbin/pw/pw.c Sun Jul 12 00:02:43 2015 (r285415) @@ -582,7 +582,12 @@ cmdhelp(int mode, int which) struct carg * getarg(struct cargs * _args, int ch) { - struct carg *c = LIST_FIRST(_args); + struct carg *c; + + if (_args == NULL) + return (NULL); + + c = LIST_FIRST(_args); while (c != NULL && c->ch != ch) c = LIST_NEXT(c, list); Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Sat Jul 11 23:56:55 2015 (r285414) +++ head/usr.sbin/pw/pw_user.c Sun Jul 12 00:02:43 2015 (r285415) @@ -874,11 +874,8 @@ pw_gidpolicy(struct cargs * args, char * (grp->gr_mem == NULL || grp->gr_mem[0] == NULL)) { gid = grp->gr_gid; /* Already created? Use it anyway... */ } else { - struct cargs grpargs; gid_t grid = -1; - LIST_INIT(&grpargs); - /* * We need to auto-create a group with the user's name. We * can send all the appropriate output to our sister routine @@ -893,7 +890,7 @@ pw_gidpolicy(struct cargs * args, char * if (conf.dryrun) { gid = pw_groupnext(cnf, true); } else { - pw_group(M_ADD, nam, grid, &grpargs); + pw_group(M_ADD, nam, grid, NULL); if ((grp = GETGRNAM(nam)) != NULL) gid = grp->gr_gid; } From owner-svn-src-head@freebsd.org Sun Jul 12 00:26:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E88E9998C4; Sun, 12 Jul 2015 00:26:23 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7747313C; Sun, 12 Jul 2015 00:26:23 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6C0QNgL011843; Sun, 12 Jul 2015 00:26:23 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6C0QNUR011842; Sun, 12 Jul 2015 00:26:23 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201507120026.t6C0QNUR011842@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 12 Jul 2015 00:26:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285416 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 00:26:23 -0000 Author: bz Date: Sun Jul 12 00:26:22 2015 New Revision: 285416 URL: https://svnweb.freebsd.org/changeset/base/285416 Log: Try to unbreak the build after r285390 removing the obsolete static declaration. Modified: head/sys/kern/vfs_syscalls.c Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Sun Jul 12 00:02:43 2015 (r285415) +++ head/sys/kern/vfs_syscalls.c Sun Jul 12 00:26:22 2015 (r285416) @@ -94,7 +94,6 @@ SDT_PROVIDER_DEFINE(vfs); SDT_PROBE_DEFINE2(vfs, , stat, mode, "char *", "int"); SDT_PROBE_DEFINE2(vfs, , stat, reg, "char *", "int"); -static int chroot_refuse_vdir_fds(struct filedesc *fdp); static int kern_chflagsat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, u_long flags, int atflag); static int setfflags(struct thread *td, struct vnode *, u_long); From owner-svn-src-head@freebsd.org Sun Jul 12 03:39:38 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9208099E3; Sun, 12 Jul 2015 03:39:38 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 65DAA1063; Sun, 12 Jul 2015 03:39:38 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6C3dbWT007240; Sun, 12 Jul 2015 03:39:37 GMT (envelope-from rodrigc@FreeBSD.org) Received: (from rodrigc@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6C3dbS6007239; Sun, 12 Jul 2015 03:39:37 GMT (envelope-from rodrigc@FreeBSD.org) Message-Id: <201507120339.t6C3dbS6007239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rodrigc set sender to rodrigc@FreeBSD.org using -f From: Craig Rodrigues Date: Sun, 12 Jul 2015 03:39:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285417 - head/lib/libmd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 03:39:38 -0000 Author: rodrigc Date: Sun Jul 12 03:39:36 2015 New Revision: 285417 URL: https://svnweb.freebsd.org/changeset/base/285417 Log: Add new include path for sha256.h This fixes the bootstrap build on FreeBSD 10. Submitted by: andrew Modified: head/lib/libmd/Makefile Modified: head/lib/libmd/Makefile ============================================================================== --- head/lib/libmd/Makefile Sun Jul 12 00:26:22 2015 (r285416) +++ head/lib/libmd/Makefile Sun Jul 12 03:39:36 2015 (r285417) @@ -48,7 +48,8 @@ CLEANFILES+= md[245]hl.c md[245].ref md[ # in which case: # * macros are used to rename symbols to libcrypt internal names # * no weak aliases are generated -CFLAGS+= -I${.CURDIR} -DWEAK_REFS +CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../sys/crypto/sha2 +CFLAGS+= -DWEAK_REFS .PATH: ${.CURDIR}/${MACHINE_ARCH} ${.CURDIR}/../../sys/crypto/sha2 .if exists(${MACHINE_ARCH}/sha.S) From owner-svn-src-head@freebsd.org Sun Jul 12 05:47:04 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EEEF2998AD2; Sun, 12 Jul 2015 05:47:04 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "gold.funkthat.com", Issuer "gold.funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id B37427A3; Sun, 12 Jul 2015 05:47:04 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.14.5/8.14.5) with ESMTP id t6C5ku0d082803 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 11 Jul 2015 22:46:56 -0700 (PDT) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.14.5/8.14.5/Submit) id t6C5ktsa082802; Sat, 11 Jul 2015 22:46:55 -0700 (PDT) (envelope-from jmg) Date: Sat, 11 Jul 2015 22:46:55 -0700 From: John-Mark Gurney To: Andrew Turner Cc: Craig Rodrigues , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r285366 - in head: lib/libmd sys/crypto/sha2 Message-ID: <20150712054655.GF8523@funkthat.com> References: <201507110312.t6B3CZBv081280@repo.freebsd.org> <20150711080439.GD8523@funkthat.com> <20150711142920.GE8523@funkthat.com> <20150711180615.52a618b7@bender.Home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150711180615.52a618b7@bender.Home> X-Operating-System: FreeBSD 9.1-PRERELEASE amd64 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (gold.funkthat.com [127.0.0.1]); Sat, 11 Jul 2015 22:46:56 -0700 (PDT) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 05:47:05 -0000 Andrew Turner wrote this message on Sat, Jul 11, 2015 at 18:06 +0100: > On Sat, 11 Jul 2015 07:29:20 -0700 > John-Mark Gurney wrote: > ... > > The closest I can see is that sha256hl.c (from mdXhl.c) is including > > "sha256.h" with double quotes, and getting the wrong header file.. > > I concur, the following fixes libmd to use the correct header. Andrew, thanks for the fix and thanks Craig for the commit... I owe all of you a beer (or a drink of your choice)... > Index: lib/libmd/Makefile > =================================================================== > --- lib/libmd/Makefile (revision 285383) > +++ lib/libmd/Makefile (working copy) > @@ -49,6 +49,7 @@ > # * macros are used to rename symbols to libcrypt internal names > # * no weak aliases are generated > CFLAGS+= -I${.CURDIR} -DWEAK_REFS > +CFLAGS+= -I${.CURDIR}/../../sys/crypto/sha2 > .PATH: ${.CURDIR}/${MACHINE_ARCH} ${.CURDIR}/../../sys/crypto/sha2 > > .if exists(${MACHINE_ARCH}/sha.S) -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." From owner-svn-src-head@freebsd.org Sun Jul 12 08:47:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72D49999A4E; Sun, 12 Jul 2015 08:47:14 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2FD49EAF; Sun, 12 Jul 2015 08:47:13 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from [192.168.0.7] (cpc16-cmbg15-2-0-cust60.5-4.cable.virginm.net [86.5.162.61]) (authenticated bits=0) by theravensnest.org (8.15.1/8.15.1) with ESMTPSA id t6C8l3vR019440 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 12 Jul 2015 08:47:05 GMT (envelope-from theraven@FreeBSD.org) X-Authentication-Warning: theravensnest.org: Host cpc16-cmbg15-2-0-cust60.5-4.cable.virginm.net [86.5.162.61] claimed to be [192.168.0.7] Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: svn commit: r285404 - head/sys/compat/cloudabi From: David Chisnall In-Reply-To: <20150711205611.GC2404@kib.kiev.ua> Date: Sun, 12 Jul 2015 09:47:26 +0100 Cc: Ed Schouten , Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <6DE293FA-EE2B-4614-A4FF-E680F976FFB6@FreeBSD.org> References: <201507111941.t6BJfV1a072539@repo.freebsd.org> <20150711194732.GB2404@kib.kiev.ua> <20150711205611.GC2404@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.2098) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 08:47:14 -0000 On 11 Jul 2015, at 21:56, Konstantin Belousov = wrote: >=20 >> Bucket 2: The system call could also just fail and return an error >> (MSG_NOSIGPIPE). > SIGPIPE exists to ensure that naive programs do something reasonable > when their stdout suddenly goes away. Or, transposing the PoV, it = allows > to write useful and well-behaving programs while ignoring = complications. > If all programs must be aware of the special error code from write = which > indicates that nobody listens to the output anymore, it would cause > unneeded code copy/pasted all over the src. Presumably this could be handled in userspace in the system call = wrappers if someone wanted to do it that way - the syscall wrapper would = check for the error condition and call the system call handler (though = if you wanted the mcontext to be meaningful for the syscall return or = support separate signal stacks then this would be fairly complex). David From owner-svn-src-head@freebsd.org Sun Jul 12 09:42:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB61F998396; Sun, 12 Jul 2015 09:42:11 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B215D92D; Sun, 12 Jul 2015 09:42:11 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6C9gBdm085270; Sun, 12 Jul 2015 09:42:11 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6C9gB5r085268; Sun, 12 Jul 2015 09:42:11 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507120942.t6C9gB5r085268@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 12 Jul 2015 09:42:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285418 - head/usr.sbin/pw/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 09:42:12 -0000 Author: bapt Date: Sun Jul 12 09:42:10 2015 New Revision: 285418 URL: https://svnweb.freebsd.org/changeset/base/285418 Log: Add minimum regression tests for pw -R Modified: head/usr.sbin/pw/tests/helper_functions.shin head/usr.sbin/pw/tests/pw_useradd.sh Modified: head/usr.sbin/pw/tests/helper_functions.shin ============================================================================== --- head/usr.sbin/pw/tests/helper_functions.shin Sun Jul 12 03:39:36 2015 (r285417) +++ head/usr.sbin/pw/tests/helper_functions.shin Sun Jul 12 09:42:10 2015 (r285418) @@ -2,11 +2,12 @@ # The pw command PW="pw -V ${HOME}" +RPW="pw -R ${HOME}" # Workdir to run tests in TESTDIR=$(atf_get_srcdir) -# Populate the files pw needs to use into $HOME/etc +# Populate the files pw needs to use into $HOME populate_etc_skel() { cp ${TESTDIR}/master.passwd ${HOME} || \ atf_fail "Populating master.passwd in ${HOME}" @@ -16,3 +17,16 @@ populate_etc_skel() { pwd_mkdb -p -d ${HOME} ${HOME}/master.passwd || \ atf_fail "generate passwd from master.passwd" } + +# Populate the files pw needs to use into $HOME/etc +populate_root_etc_skel() { + mkdir ${HOME}/etc + cp ${TESTDIR}/master.passwd ${HOME}/etc || \ + atf_fail "Populating master.passwd in ${HOME}/etc" + cp ${TESTDIR}/group ${HOME}/etc || \ + atf_fail "Populating group in ${HOME}/etc" + + # Generate the passwd file + pwd_mkdb -p -d ${HOME}/etc ${HOME}//etc/master.passwd || \ + atf_fail "generate passwd from master.passwd" +} Modified: head/usr.sbin/pw/tests/pw_useradd.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 03:39:36 2015 (r285417) +++ head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 09:42:10 2015 (r285418) @@ -240,6 +240,21 @@ user_add_password_from_h_body() { EOF } +atf_test_case user_add_R +user_add_R_body() { + populate_root_etc_skel + + atf_check -s exit:0 ${RPW} useradd foo + mkdir -p ${HOME}/home + atf_check -s exit:0 ${RPW} useradd bar -m + test -d ${HOME}/home/bar || atf_fail "Directory not created" + atf_check -s exit:0 ${RPW} userdel bar + test -d ${HOME}/home/bar || atf_fail "Directory removed" +# atf_check -s exit:0 ${RPW} useradd bar +# atf_check -s exit:0 ${RPW} userdel bar -r +# test -d ${HOME}/home/bar && atf_fail "Directory not removed" +} + atf_init_test_cases() { atf_add_test_case user_add atf_add_test_case user_add_noupdate @@ -261,4 +276,5 @@ atf_init_test_cases() { atf_add_test_case user_add_invalid_user_entry atf_add_test_case user_add_invalid_group_entry atf_add_test_case user_add_password_from_h + atf_add_test_case user_add_R } From owner-svn-src-head@freebsd.org Sun Jul 12 17:03:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21E0999B95F; Sun, 12 Jul 2015 17:03:52 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 11E041BF5; Sun, 12 Jul 2015 17:03:52 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CH3pcH010104; Sun, 12 Jul 2015 17:03:51 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CH3pWE010102; Sun, 12 Jul 2015 17:03:51 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201507121703.t6CH3pWE010102@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 12 Jul 2015 17:03:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285420 - head/usr.sbin/jexec X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 17:03:52 -0000 Author: jamie Date: Sun Jul 12 17:03:50 2015 New Revision: 285420 URL: https://svnweb.freebsd.org/changeset/base/285420 Log: Run a shell in the jail when no command is specified. Add a new flag, -l, for a clean environment, same as jail(8) exec.clean. Change the GET_USER_INFO macro into a function. PR: 201300 Submitted by: Willem Jan Withagen MFC after: 3 days Modified: head/usr.sbin/jexec/jexec.8 head/usr.sbin/jexec/jexec.c Modified: head/usr.sbin/jexec/jexec.8 ============================================================================== --- head/usr.sbin/jexec/jexec.8 Sun Jul 12 15:24:05 2015 (r285419) +++ head/usr.sbin/jexec/jexec.8 Sun Jul 12 17:03:50 2015 (r285420) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 27, 2009 +.Dd Jul 11, 2015 .Dt JEXEC 8 .Os .Sh NAME @@ -33,8 +33,9 @@ .Nd "execute a command inside an existing jail" .Sh SYNOPSIS .Nm +.Op Fl l .Op Fl u Ar username | Fl U Ar username -.Ar jail command ... +.Ar jail Op Ar command ... .Sh DESCRIPTION The .Nm @@ -43,9 +44,17 @@ utility executes inside the .Ar jail identified by its jid or name. +If +.Ar command +is not specified then the user's shell is used. .Pp The following options are available: .Bl -tag -width indent +.It Fl l +Execute in a clean environment. +The environment is discarded except for +.Ev HOME , SHELL , TERM , USER , +and anything from the login class capability database for the user. .It Fl u Ar username The user name from host environment as whom the .Ar command Modified: head/usr.sbin/jexec/jexec.c ============================================================================== --- head/usr.sbin/jexec/jexec.c Sun Jul 12 15:24:05 2015 (r285419) +++ head/usr.sbin/jexec/jexec.c Sun Jul 12 17:03:50 2015 (r285420) @@ -40,49 +40,37 @@ #include #include #include +#include +#include #include #include #include -#include #include -static void usage(void); +extern char **environ; -#define GET_USER_INFO do { \ - pwd = getpwnam(username); \ - if (pwd == NULL) { \ - if (errno) \ - err(1, "getpwnam: %s", username); \ - else \ - errx(1, "%s: no such user", username); \ - } \ - lcap = login_getpwclass(pwd); \ - if (lcap == NULL) \ - err(1, "getpwclass: %s", username); \ - ngroups = ngroups_max; \ - if (getgrouplist(username, pwd->pw_gid, groups, &ngroups) != 0) \ - err(1, "getgrouplist: %s", username); \ -} while (0) +static void get_user_info(const char *username, const struct passwd **pwdp, + login_cap_t **lcapp); +static void usage(void); int main(int argc, char *argv[]) { int jid; login_cap_t *lcap = NULL; - struct passwd *pwd = NULL; - gid_t *groups = NULL; - int ch, ngroups, uflag, Uflag; - long ngroups_max; - char *username; + int ch, clean, uflag, Uflag; + char *cleanenv; + const struct passwd *pwd = NULL; + const char *username, *shell, *term; - ch = uflag = Uflag = 0; + ch = clean = uflag = Uflag = 0; username = NULL; - ngroups_max = sysconf(_SC_NGROUPS_MAX) + 1; - if ((groups = malloc(sizeof(gid_t) * ngroups_max)) == NULL) - err(1, "malloc"); - while ((ch = getopt(argc, argv, "nu:U:")) != -1) { + while ((ch = getopt(argc, argv, "lnu:U:")) != -1) { switch (ch) { + case 'l': + clean = 1; + break; case 'n': /* Specified name, now unused */ break; @@ -100,12 +88,15 @@ main(int argc, char *argv[]) } argc -= optind; argv += optind; - if (argc < 2) + if (argc < 1) usage(); if (uflag && Uflag) usage(); - if (uflag) - GET_USER_INFO; + if (uflag || (clean && !Uflag)) + /* User info from the home environment */ + get_user_info(username, &pwd, &lcap); + + /* Attach to the jail */ jid = jail_getid(argv[0]); if (jid < 0) errx(1, "%s", jail_errmsg); @@ -113,28 +104,88 @@ main(int argc, char *argv[]) err(1, "jail_attach(%d)", jid); if (chdir("/") == -1) err(1, "chdir(): /"); - if (username != NULL) { + + /* Set up user environment */ + if (clean || username != NULL) { if (Uflag) - GET_USER_INFO; - if (setgroups(ngroups, groups) != 0) - err(1, "setgroups"); + /* User info from the jail environment */ + get_user_info(username, &pwd, &lcap); + if (clean) { + term = getenv("TERM"); + cleanenv = NULL; + environ = &cleanenv; + setenv("PATH", "/bin:/usr/bin", 1); + if (term != NULL) + setenv("TERM", term, 1); + } if (setgid(pwd->pw_gid) != 0) err(1, "setgid"); - if (setusercontext(lcap, pwd, pwd->pw_uid, - LOGIN_SETALL & ~LOGIN_SETGROUP & ~LOGIN_SETLOGIN) != 0) + if (setusercontext(lcap, pwd, pwd->pw_uid, username + ? LOGIN_SETALL & ~LOGIN_SETGROUP & ~LOGIN_SETLOGIN + : LOGIN_SETPATH | LOGIN_SETENV) != 0) err(1, "setusercontext"); login_close(lcap); + setenv("USER", pwd->pw_name, 1); + setenv("HOME", pwd->pw_dir, 1); + setenv("SHELL", + *pwd->pw_shell ? pwd->pw_shell : _PATH_BSHELL, 1); + if (clean && chdir(pwd->pw_dir) < 0) + err(1, "chdir: %s", pwd->pw_dir); + endpwent(); + } + + /* Run the specified command, or the shell */ + if (argc > 1) { + if (execvp(argv[1], argv + 1) < 0) + err(1, "execvp: %s", argv[1]); + } else { + if (!(shell = getenv("SHELL"))) + shell = _PATH_BSHELL; + if (execlp(shell, shell, "-i", NULL) < 0) + err(1, "execlp: %s", shell); } - if (execvp(argv[1], argv + 1) == -1) - err(1, "execvp(): %s", argv[1]); exit(0); } static void +get_user_info(const char *username, const struct passwd **pwdp, + login_cap_t **lcapp) +{ + uid_t uid; + const struct passwd *pwd; + + errno = 0; + if (username) { + pwd = getpwnam(username); + if (pwd == NULL) { + if (errno) + err(1, "getpwnam: %s", username); + else + errx(1, "%s: no such user", username); + } + } else { + uid = getuid(); + pwd = getpwuid(uid); + if (pwd == NULL) { + if (errno) + err(1, "getpwuid: %d", uid); + else + errx(1, "unknown uid: %d", uid); + } + } + *pwdp = pwd; + *lcapp = login_getpwclass(pwd); + if (*lcapp == NULL) + err(1, "getpwclass: %s", pwd->pw_name); + if (initgroups(pwd->pw_name, pwd->pw_gid) < 0) + err(1, "initgroups: %s", pwd->pw_name); +} + +static void usage(void) { fprintf(stderr, "%s\n", - "usage: jexec [-u username | -U username] jail command ..."); + "usage: jexec [-l] [-u username | -U username] jail [command ...]"); exit(1); } From owner-svn-src-head@freebsd.org Sun Jul 12 17:28:33 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8300499BC3B; Sun, 12 Jul 2015 17:28:33 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 667FD1D29; Sun, 12 Jul 2015 17:28:33 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CHSXOS020883; Sun, 12 Jul 2015 17:28:33 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CHSWZU020877; Sun, 12 Jul 2015 17:28:32 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507121728.t6CHSWZU020877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Sun, 12 Jul 2015 17:28:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285421 - in head/sys: arm64/acpica arm64/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 17:28:33 -0000 Author: zbb Date: Sun Jul 12 17:28:31 2015 New Revision: 285421 URL: https://svnweb.freebsd.org/changeset/base/285421 Log: Implement stubs for ACPI PCI routines ACPI driver requires special functions to be provided by machdep code. Add temporary stubs to satisfy the compiler when both "pci" and "acpi" are enabled in the kernel configuration file. Reviewed by: andrew Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3028 Added: head/sys/arm64/acpica/pci_cfgreg.c (contents, props changed) Modified: head/sys/arm64/include/pci_cfgreg.h head/sys/conf/files.arm64 Added: head/sys/arm64/acpica/pci_cfgreg.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/acpica/pci_cfgreg.c Sun Jul 12 17:28:31 2015 (r285421) @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 2015 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under + * the sponsorship of the FreeBSD Foundation. + * + * 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 + +/* + * This file contains stubs for ACPI PCI functions + */ + +/* + * Read configuration space register + */ +uint32_t +pci_cfgregread(int bus, int slot, int func, int reg, int bytes) +{ + + panic("pci_cfgregread not implemented"); + return (0); +} + +/* + * Write configuration space register + */ +void +pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes) +{ + + panic("pci_cfgregwrite not implemented"); +} + +/* + * Initialize access to configuration space + */ +int +pci_cfgregopen(void) +{ + + panic("pci_cfgregopen not implemented"); + return (0); +} Modified: head/sys/arm64/include/pci_cfgreg.h ============================================================================== --- head/sys/arm64/include/pci_cfgreg.h Sun Jul 12 17:03:50 2015 (r285420) +++ head/sys/arm64/include/pci_cfgreg.h Sun Jul 12 17:28:31 2015 (r285421) @@ -1 +1,36 @@ -/* $FreeBSD$ */ +/*- + * Copyright (c) 2015 The FreeBSD Foundation + * 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 _MACHINE_PCI_CFGREG_H +#define _MACHINE_PCI_CFGREG_H + +int pci_cfgregopen(void); +uint32_t pci_cfgregread(int, int, int, int, int); +void pci_cfgregwrite(int, int, int, int, u_int32_t, int); + +#endif /* !_MACHINE_PCI_CFGREG_H */ Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Sun Jul 12 17:03:50 2015 (r285420) +++ head/sys/conf/files.arm64 Sun Jul 12 17:28:31 2015 (r285421) @@ -5,6 +5,7 @@ arm/arm/pmu.c standard arm64/acpica/acpi_machdep.c optional acpi arm64/acpica/OsdEnvironment.c optional acpi arm64/acpica/acpi_wakeup.c optional acpi +arm64/acpica/pci_cfgreg.c optional acpi pci arm64/arm64/autoconf.c standard arm64/arm64/bcopy.c standard arm64/arm64/bus_machdep.c standard From owner-svn-src-head@freebsd.org Sun Jul 12 18:14:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6EDC299950D; Sun, 12 Jul 2015 18:14:44 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 5CE761621; Sun, 12 Jul 2015 18:14:44 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CIEiv5045549; Sun, 12 Jul 2015 18:14:44 GMT (envelope-from markm@FreeBSD.org) Received: (from markm@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CIEdkN045519; Sun, 12 Jul 2015 18:14:39 GMT (envelope-from markm@FreeBSD.org) Message-Id: <201507121814.t6CIEdkN045519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markm set sender to markm@FreeBSD.org using -f From: Mark Murray Date: Sun, 12 Jul 2015 18:14:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 18:14:44 -0000 Author: markm Date: Sun Jul 12 18:14:38 2015 New Revision: 285422 URL: https://svnweb.freebsd.org/changeset/base/285422 Log: * Address review (and add a bit myself). - Tweek man page. - Remove all mention of RANDOM_FORTUNA. If the system owner wants YARROW or DUMMY, they ask for it, otherwise they get FORTUNA. - Tidy up headers a bit. - Tidy up declarations a bit. - Make static in a couple of places where needed. - Move Yarrow/Fortuna SYSINIT/SYSUNINIT to randomdev.c, moving us towards a single file where the algorithm context is used. - Get rid of random_*_process_buffer() functions. They were only used in one place each, and are better subsumed into those places. - Remove *_post_read() functions as they are stubs everywhere. - Assert against buffer size illegalities. - Clean up some silly code in the randomdev_read() routine. - Make the harvesting more consistent. - Make some requested argument name changes. - Tidy up and clarify a few comments. - Make some requested comment changes. - Make some requested macro changes. * NOTE: the thing calling itself a 'unit test' is not yet a proper unit test, but it helps me ensure things work. It may be a proper unit test at some time in the future, but for now please don't make any assumptions or hold any expectations. Differential Revision: https://reviews.freebsd.org/D2025 Approved by: so (/dev/random blanket) Modified: head/share/man/man4/random.4 head/sys/conf/NOTES head/sys/dev/random/build.sh head/sys/dev/random/fortuna.c head/sys/dev/random/hash.h head/sys/dev/random/random_harvestq.c head/sys/dev/random/randomdev.c head/sys/dev/random/randomdev.h head/sys/dev/random/unit_test.c head/sys/dev/random/unit_test.h head/sys/dev/random/yarrow.c head/sys/net/if_tun.c head/sys/netgraph/ng_iface.c Modified: head/share/man/man4/random.4 ============================================================================== --- head/share/man/man4/random.4 Sun Jul 12 17:28:31 2015 (r285421) +++ head/share/man/man4/random.4 Sun Jul 12 18:14:38 2015 (r285422) @@ -62,7 +62,7 @@ This sysctl will not return random bytes unless the .Xr random 4 -is seeded. +device is seeded. .Pp This initial seeding of random number generators Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/conf/NOTES Sun Jul 12 18:14:38 2015 (r285422) @@ -2978,8 +2978,8 @@ options MAXFILES=999 # Random number generator # Only ONE of the below two may be used; they are mutually exclusive. +# If neither is present, then the Fortuna algorithm is used. options RANDOM_YARROW # Yarrow CSPRNG (Default) -#options RANDOM_FORTUNA # Fortuna CSPRNG options RANDOM_DEBUG # Debugging messages # Module to enable execution of application via emulators like QEMU Modified: head/sys/dev/random/build.sh ============================================================================== --- head/sys/dev/random/build.sh Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/build.sh Sun Jul 12 18:14:38 2015 (r285422) @@ -28,7 +28,14 @@ # # Basic script to build crude unit tests. # -cc -g -O0 -pthread -DRANDOM_DEBUG -DRANDOM_YARROW \ +# Diff-reduction checking between Yarrow and fortuna is done like so: +# +# $ diff -u -B <(sed -e 's/yarrow/wombat/g' \ +# -e 's/YARROW/WOMBAT/g' yarrow.c) \ +# <(sed -e 's/fortuna/wombat/g' \ +# -e 's/FORTUNA/WOMBAT/g' fortuna.c) | less +# +cc -g -O0 -pthread -DRANDOM_DEBUG \ -I../.. -lstdthreads -Wall \ unit_test.c \ yarrow.c \ @@ -39,7 +46,7 @@ cc -g -O0 -pthread -DRANDOM_DEBUG -DRAND ../../crypto/sha2/sha256c.c \ -lz \ -o yunit_test -cc -g -O0 -pthread -DRANDOM_DEBUG -DRANDOM_FORTUNA \ +cc -g -O0 -pthread -DRANDOM_DEBUG \ -I../.. -lstdthreads -Wall \ unit_test.c \ fortuna.c \ Modified: head/sys/dev/random/fortuna.c ============================================================================== --- head/sys/dev/random/fortuna.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/fortuna.c Sun Jul 12 18:14:38 2015 (r285422) @@ -39,10 +39,8 @@ __FBSDID("$FreeBSD$"); #ifdef _KERNEL #include #include -#include #include #include -#include #include #include #include @@ -71,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #endif /* _KERNEL */ @@ -125,26 +124,28 @@ static uint8_t zero_region[RANDOM_ZERO_B static void random_fortuna_pre_read(void); static void random_fortuna_read(uint8_t *, u_int); -static void random_fortuna_post_read(void); static void random_fortuna_write(uint8_t *, u_int); static void random_fortuna_reseed(void); static int random_fortuna_seeded(void); static void random_fortuna_process_event(struct harvest_event *); +static void random_fortuna_init_alg(void *); +static void random_fortuna_deinit_alg(void *); + +static void random_fortuna_reseed_internal(uint32_t *entropy_data, u_int blockcount); -#ifdef _KERNEL /* Interface to Adaptors system */ struct random_algorithm random_alg_context = { .ra_ident = "Fortuna", + .ra_init_alg = random_fortuna_init_alg, + .ra_deinit_alg = random_fortuna_deinit_alg, .ra_pre_read = random_fortuna_pre_read, .ra_read = random_fortuna_read, - .ra_post_read = random_fortuna_post_read, .ra_write = random_fortuna_write, .ra_reseed = random_fortuna_reseed, .ra_seeded = random_fortuna_seeded, .ra_event_processor = random_fortuna_process_event, .ra_poolcount = RANDOM_FORTUNA_NPOOLS, }; -#endif /* ARGSUSED */ static void @@ -194,9 +195,6 @@ random_fortuna_init_alg(void *unused __u fortuna_state.fs_counter = UINT128_ZERO; explicit_bzero(&fortuna_state.fs_key, sizeof(fortuna_state.fs_key)); } -#ifdef _KERNEL -SYSINIT(random_fortuna, SI_SUB_RANDOM, SI_ORDER_THIRD, random_fortuna_init_alg, NULL); -#endif /* ARGSUSED */ static void @@ -209,15 +207,12 @@ random_fortuna_deinit_alg(void *unused _ sysctl_ctx_free(&random_clist); #endif } -#ifdef _KERNEL -SYSUNINIT(random_fortuna, SI_SUB_RANDOM, SI_ORDER_THIRD, random_fortuna_deinit_alg, NULL); -#endif /*- * FS&K - AddRandomEvent() * Process a single stochastic event off the harvest queue */ -void +static void random_fortuna_process_event(struct harvest_event *event) { u_int pl; @@ -251,29 +246,6 @@ random_fortuna_process_event(struct harv } /*- - * Process a block of data suspected to be slightly stochastic. - * Do this by breaking it up and inserting the pieces as if - * they were separate events. - */ -static void -random_fortuna_process_buffer(uint32_t *buf, u_int wordcount) -{ - static struct harvest_event event; - static u_int destination = 0; - int i; - - for (i = 0; i < wordcount; i += sizeof(event.he_entropy)/sizeof(event.he_entropy[0])) { - event.he_somecounter = (uint32_t)get_cyclecount(); - event.he_size = sizeof(event.he_entropy); - event.he_bits = event.he_size/8; - event.he_source = RANDOM_CACHED; - event.he_destination = destination++; /* Harmless cheating */ - memcpy(event.he_entropy, buf + i, sizeof(event.he_entropy)); - random_fortuna_process_event(&event); - } -} - -/*- * FS&K - Reseed() * This introduces new key material into the output generator. * Additionaly it increments the output generator's counter @@ -358,13 +330,10 @@ random_fortuna_genrandom(uint8_t *buf, u } /*- - * FS&K - RandomData() - * Used to return processed entropy from the PRNG. - * There is a pre_read and a post_read required to be present - * (but they can be null functions) in order to allow specific - * actions at the begin or the end of a read. Fortuna does its - * reseeding in the _pre_read() part, and _post_read() is not - * used. + * FS&K - RandomData() (Part 1) + * Used to return processed entropy from the PRNG. There is a pre_read + * required to be present (but it can be a stub) in order to allow + * specific actions at the begin of the read. */ void random_fortuna_pre_read(void) @@ -435,8 +404,10 @@ random_fortuna_pre_read(void) } /*- - * Main read from Fortuna. - * The supplied buf MUST be a multiple (>=0) of RANDOM_BLOCKSIZE in size. + * FS&K - RandomData() (Part 2) + * Main read from Fortuna, continued. May be called multiple times after + * the random_fortuna_pre_read() above. + * The supplied buf MUST be a multiple of RANDOM_BLOCKSIZE in size. * Lots of code presumes this for efficiency, both here and in other * routines. You are NOT allowed to break this! */ @@ -444,24 +415,21 @@ void random_fortuna_read(uint8_t *buf, u_int bytecount) { + KASSERT((bytecount % RANDOM_BLOCKSIZE) == 0, ("%s(): bytecount (= %d) must be a multiple of %d", __func__, bytecount, RANDOM_BLOCKSIZE )); RANDOM_RESEED_LOCK(); random_fortuna_genrandom(buf, bytecount); RANDOM_RESEED_UNLOCK(); } -void -random_fortuna_post_read(void) -{ - - /* CWOT */ -} - /* Internal function to hand external entropy to the PRNG. */ void random_fortuna_write(uint8_t *buf, u_int count) { + static u_int destination = 0; + struct harvest_event event; struct randomdev_hash hash; uint32_t entropy_data[RANDOM_KEYSIZE_WORDS], timestamp; + int i; /* Extra timing here is helpful to scrape scheduler timing entropy */ randomdev_hash_init(&hash); @@ -472,15 +440,21 @@ random_fortuna_write(uint8_t *buf, u_int randomdev_hash_iterate(&hash, ×tamp, sizeof(timestamp)); randomdev_hash_finish(&hash, entropy_data); explicit_bzero(&hash, sizeof(hash)); - random_fortuna_process_buffer(entropy_data, sizeof(entropy_data)/sizeof(entropy_data[0])); + for (i = 0; i < RANDOM_KEYSIZE_WORDS; i += sizeof(event.he_entropy)/sizeof(event.he_entropy[0])) { + event.he_somecounter = (uint32_t)get_cyclecount(); + event.he_size = sizeof(event.he_entropy); + event.he_bits = event.he_size/8; + event.he_source = RANDOM_CACHED; + event.he_destination = destination++; /* Harmless cheating */ + memcpy(event.he_entropy, entropy_data + i, sizeof(event.he_entropy)); + random_fortuna_process_event(&event); + } explicit_bzero(entropy_data, sizeof(entropy_data)); } void random_fortuna_reseed(void) { - - /* CWOT */ } int Modified: head/sys/dev/random/hash.h ============================================================================== --- head/sys/dev/random/hash.h Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/hash.h Sun Jul 12 18:14:38 2015 (r285422) @@ -29,18 +29,21 @@ #ifndef SYS_DEV_RANDOM_HASH_H_INCLUDED #define SYS_DEV_RANDOM_HASH_H_INCLUDED +/* Keys are formed from cipher blocks */ #define RANDOM_KEYSIZE 32 /* (in bytes) == 256 bits */ #define RANDOM_KEYSIZE_WORDS (RANDOM_KEYSIZE/sizeof(uint32_t)) #define RANDOM_BLOCKSIZE 16 /* (in bytes) == 128 bits */ #define RANDOM_BLOCKSIZE_WORDS (RANDOM_BLOCKSIZE/sizeof(uint32_t)) #define RANDOM_KEYS_PER_BLOCK (RANDOM_KEYSIZE/RANDOM_BLOCKSIZE) + +/* The size of the zero block portion used to form H_d(m) */ #define RANDOM_ZERO_BLOCKSIZE 64 /* (in bytes) == 512 zero bits */ -struct randomdev_hash { /* Big! Make static! */ +struct randomdev_hash { SHA256_CTX sha; }; -struct randomdev_key { /* Big! Make static! */ +struct randomdev_key { keyInstance key; /* Key schedule */ cipherInstance cipher; /* Rijndael internal */ }; Modified: head/sys/dev/random/random_harvestq.c ============================================================================== --- head/sys/dev/random/random_harvestq.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/random_harvestq.c Sun Jul 12 18:14:38 2015 (r285422) @@ -74,8 +74,8 @@ volatile int random_kthread_control; * this make is a bit easier to lock and protect. */ static struct harvest_context { - /* The harvest mutex protects the consistency of the entropy Fifos and - * empty fifo and other associated structures. + /* The harvest mutex protects all of harvest_context and + * the related data. */ struct mtx hc_mtx; /* Round-robin destination cache. */ @@ -95,6 +95,9 @@ static struct harvest_context { * If (ring.in + 1) == ring.out (mod RANDOM_RING_MAX), * the buffer is full. * + * NOTE: ring.in points to the last added element, + * and ring.out points to the last consumed element. + * * The ring.in variable needs locking as there are multiple * sources to the ring. Only the sources may change ring.in, * but the consumer may examine it. @@ -110,7 +113,7 @@ static struct harvest_context { } hc_entropy_ring; struct fast_entropy_accumulator { volatile u_int pos; - uint32_t buf[8]; + uint32_t buf[RANDOM_ACCUM_MAX]; } hc_entropy_fast_accumulator; } harvest_context; @@ -150,7 +153,7 @@ random_kthread(void) break; } random_sources_feed(); - /* XXX: FIX!! This This seems a little slow; 8 items every 0.1s from UMA? */ + /* XXX: FIX!! Increase the high-performance data rate? Need some measurements first. */ for (i = 0; i < RANDOM_ACCUM_MAX; i++) { if (harvest_context.hc_entropy_fast_accumulator.buf[i]) { random_harvest_direct(harvest_context.hc_entropy_fast_accumulator.buf + i, sizeof(harvest_context.hc_entropy_fast_accumulator.buf[0]), 4, RANDOM_FAST); @@ -238,8 +241,6 @@ random_harvestq_init(void *unused __unus { struct sysctl_oid *random_sys_o; - if (bootverbose) - printf("random: %s\n", __func__); random_sys_o = SYSCTL_ADD_NODE(&random_clist, SYSCTL_STATIC_CHILDREN(_kern_random), OID_AUTO, "harvest", CTLFLAG_RW, 0, @@ -285,6 +286,8 @@ random_harvestq_prime(void *unused __unu if (keyfile != NULL) { data = preload_fetch_addr(keyfile); size = preload_fetch_size(keyfile); + /* Trim the size. If the admin has a file with a funny size, we lose some. Tough. */ + size -= (size % sizeof(event.he_entropy)); if (data != NULL && size != 0) { for (i = 0; i < size; i += sizeof(event.he_entropy)) { count = sizeof(event.he_entropy); @@ -314,7 +317,7 @@ random_harvestq_deinit(void *unused __un /* Command the hash/reseed thread to end and wait for it to finish */ random_kthread_control = 0; - tsleep(&harvest_context.hc_kthread_proc, 0, "term", 0); + tsleep(&harvest_context.hc_kthread_proc, 0, "harvqterm", 0); sysctl_ctx_free(&random_clist); } SYSUNINIT(random_device_h_init, SI_SUB_RANDOM, SI_ORDER_SECOND, random_harvestq_deinit, NULL); @@ -334,7 +337,7 @@ SYSUNINIT(random_device_h_init, SI_SUB_R * read which can be quite expensive. */ void -random_harvest_queue(const void *entropy, u_int count, u_int bits, enum random_entropy_source origin) +random_harvest_queue(const void *entropy, u_int size, u_int bits, enum random_entropy_source origin) { struct harvest_event *event; u_int ring_in; @@ -351,14 +354,14 @@ random_harvest_queue(const void *entropy event->he_source = origin; event->he_destination = harvest_context.hc_destination[origin]++; event->he_bits = bits; - if (count <= sizeof(event->he_entropy)) { - event->he_size = count; - memcpy(event->he_entropy, entropy, count); + if (size <= sizeof(event->he_entropy)) { + event->he_size = size; + memcpy(event->he_entropy, entropy, size); } else { /* Big event, so squash it */ event->he_size = sizeof(event->he_entropy[0]); - event->he_entropy[0] = jenkins_hash(entropy, count, (uint32_t)(uintptr_t)event); + event->he_entropy[0] = jenkins_hash(entropy, size, (uint32_t)(uintptr_t)event); } harvest_context.hc_entropy_ring.in = ring_in; } @@ -372,7 +375,7 @@ random_harvest_queue(const void *entropy * This is the right place for high-rate harvested data. */ void -random_harvest_fast(const void *entropy, u_int count, u_int bits, enum random_entropy_source origin) +random_harvest_fast(const void *entropy, u_int size, u_int bits, enum random_entropy_source origin) { u_int pos; @@ -381,7 +384,7 @@ random_harvest_fast(const void *entropy, if (!(harvest_context.hc_source_mask & (1 << origin))) return; pos = harvest_context.hc_entropy_fast_accumulator.pos; - harvest_context.hc_entropy_fast_accumulator.buf[pos] ^= jenkins_hash(entropy, count, (uint32_t)get_cyclecount()); + harvest_context.hc_entropy_fast_accumulator.buf[pos] ^= jenkins_hash(entropy, size, (uint32_t)get_cyclecount()); harvest_context.hc_entropy_fast_accumulator.pos = (pos + 1)%RANDOM_ACCUM_MAX; } @@ -392,20 +395,20 @@ random_harvest_fast(const void *entropy, * (e.g.) booting when initial entropy is being gathered. */ void -random_harvest_direct(const void *entropy, u_int count, u_int bits, enum random_entropy_source origin) +random_harvest_direct(const void *entropy, u_int size, u_int bits, enum random_entropy_source origin) { struct harvest_event event; KASSERT(origin >= RANDOM_START && origin < ENTROPYSOURCE, ("%s: origin %d invalid\n", __func__, origin)); if (!(harvest_context.hc_source_mask & (1 << origin))) return; - count = MIN(count, sizeof(event.he_entropy)); + size = MIN(size, sizeof(event.he_entropy)); event.he_somecounter = (uint32_t)get_cyclecount(); - event.he_size = count; + event.he_size = size; event.he_bits = bits; event.he_source = origin; event.he_destination = harvest_context.hc_destination[origin]++; - memcpy(event.he_entropy, entropy, count); + memcpy(event.he_entropy, entropy, size); random_harvestq_fast_process_event(&event); explicit_bzero(&event, sizeof(event)); } Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/randomdev.c Sun Jul 12 18:14:38 2015 (r285422) @@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$"); #error "Cannot define both RANDOM_DUMMY and RANDOM_YARROW" #endif -#define RANDOM_MINOR 0 +#define RANDOM_UNIT 0 static d_read_t randomdev_read; static d_write_t randomdev_write; @@ -107,12 +107,13 @@ dummy_random(void) struct random_algorithm random_alg_context = { .ra_ident = "Dummy", - .ra_reseed = dummy_random, - .ra_seeded = (random_alg_seeded_t *)dummy_random_zero, + .ra_init_alg = NULL, + .ra_deinit_alg = NULL, .ra_pre_read = dummy_random, .ra_read = (random_alg_read_t *)dummy_random_zero, - .ra_post_read = dummy_random, .ra_write = (random_alg_write_t *)dummy_random_zero, + .ra_reseed = dummy_random, + .ra_seeded = (random_alg_seeded_t *)dummy_random_zero, .ra_event_processor = NULL, .ra_poolcount = 0, }; @@ -123,6 +124,23 @@ LIST_HEAD(sources_head, random_sources); static struct sources_head source_list = LIST_HEAD_INITIALIZER(source_list); static u_int read_rate; +static void +random_alg_context_ra_init_alg(void *data) +{ + + random_alg_context.ra_init_alg(data); +} + +static void +random_alg_context_ra_deinit_alg(void *data) +{ + + random_alg_context.ra_deinit_alg(data); +} + +SYSINIT(random_device, SI_SUB_RANDOM, SI_ORDER_THIRD, random_alg_context_ra_init_alg, NULL); +SYSUNINIT(random_device, SI_SUB_RANDOM, SI_ORDER_THIRD, random_alg_context_ra_deinit_alg, NULL); + #endif /* defined(RANDOM_DUMMY) */ static struct selinfo rsel; @@ -142,15 +160,15 @@ randomdev_read(struct cdev *dev __unused random_alg_context.ra_pre_read(); /* (Un)Blocking logic */ error = 0; - while (!random_alg_context.ra_seeded() && error == 0) { + while (!random_alg_context.ra_seeded()) { if (flags & O_NONBLOCK) { error = EWOULDBLOCK; break; } - tsleep(&random_alg_context, 0, "randrd", hz/10); + tsleep(&random_alg_context, 0, "randseed", hz/10); /* keep tapping away at the pre-read until we seed/unblock. */ random_alg_context.ra_pre_read(); - printf("random: %s unblock (error = %d)\n", __func__, error); + printf("random: %s unblock wait\n", __func__); } if (error == 0) { #if !defined(RANDOM_DUMMY) @@ -160,10 +178,10 @@ randomdev_read(struct cdev *dev __unused nbytes = uio->uio_resid; while (uio->uio_resid && !error) { c = MIN(uio->uio_resid, PAGE_SIZE); + /* See the random_buf size requirements in the Yarrow/Fortuna code */ random_alg_context.ra_read(random_buf, c); error = uiomove(random_buf, c, uio); } - random_alg_context.ra_post_read(); if (nbytes != uio->uio_resid && (error == ERESTART || error == EINTR) ) /* Return partial read, not error. */ error = 0; @@ -204,7 +222,6 @@ read_random(void *random_buf, u_int len) memcpy(random_buf, local_buf, len); } else len = 0; - random_alg_context.ra_post_read(); return (len); } @@ -382,7 +399,7 @@ randomdev_modevent(module_t mod __unused case MOD_LOAD: printf("random: entropy device external interface\n"); random_dev = make_dev_credf(MAKEDEV_ETERNAL_KLD, &random_cdevsw, - RANDOM_MINOR, NULL, UID_ROOT, GID_WHEEL, 0644, "random"); + RANDOM_UNIT, NULL, UID_ROOT, GID_WHEEL, 0644, "random"); make_dev_alias(random_dev, "urandom"); /* compatibility */ break; case MOD_UNLOAD: Modified: head/sys/dev/random/randomdev.h ============================================================================== --- head/sys/dev/random/randomdev.h Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/randomdev.h Sun Jul 12 18:14:38 2015 (r285422) @@ -29,6 +29,8 @@ #ifndef SYS_DEV_RANDOM_RANDOMDEV_H_INCLUDED #define SYS_DEV_RANDOM_RANDOMDEV_H_INCLUDED +#ifdef _KERNEL + /* This header contains only those definitions that are global * and non algorithm-specific for the entropy processor */ @@ -55,11 +57,12 @@ MALLOC_DECLARE(M_ENTROPY); #define RANDOM_ALG_READ_RATE_MINIMUM 32 +#endif /* _KERNEL */ + struct harvest_event; typedef void random_alg_pre_read_t(void); typedef void random_alg_read_t(uint8_t *, u_int); -typedef void random_alg_post_read_t(void); typedef void random_alg_write_t(uint8_t *, u_int); typedef int random_alg_seeded_t(void); typedef void random_alg_reseed_t(void); @@ -74,9 +77,10 @@ typedef u_int random_source_read_t(void struct random_algorithm { const char *ra_ident; u_int ra_poolcount; + void (*ra_init_alg)(void *); + void (*ra_deinit_alg)(void *); random_alg_pre_read_t *ra_pre_read; random_alg_read_t *ra_read; - random_alg_post_read_t *ra_post_read; random_alg_write_t *ra_write; random_alg_reseed_t *ra_reseed; random_alg_seeded_t *ra_seeded; @@ -85,6 +89,8 @@ struct random_algorithm { extern struct random_algorithm random_alg_context; +#ifdef _KERNEL + /* * Random Source is a source of entropy that can provide * specified or approximate amount of entropy immediately @@ -108,6 +114,8 @@ void random_source_deregister(struct ran void random_sources_feed(void); +#endif /* _KERNEL */ + void randomdev_unblock(void); #endif /* SYS_DEV_RANDOM_RANDOMDEV_H_INCLUDED */ Modified: head/sys/dev/random/unit_test.c ============================================================================== --- head/sys/dev/random/unit_test.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/unit_test.c Sun Jul 12 18:14:38 2015 (r285422) @@ -52,15 +52,9 @@ Where is YARROW or FORTUNA. #include #include +#include "randomdev.h" #include "unit_test.h" -#ifdef RANDOM_YARROW -#include "dev/random/yarrow.h" -#endif -#ifdef RANDOM_FORTUNA -#include "dev/random/fortuna.h" -#endif - #define NUM_THREADS 3 #define DEBUG @@ -112,7 +106,7 @@ block_deflate(uint8_t *uncompr, uint8_t while (c_stream.total_in != len && c_stream.total_out < (len*2u + 512u)) { err = deflate(&c_stream, Z_NO_FLUSH); #ifdef DEBUG - printf("deflate: len = %zd total_in = %lu total_out = %lu\n", len, c_stream.total_in, c_stream.total_out); + printf("deflate progress: len = %zd total_in = %lu total_out = %lu\n", len, c_stream.total_in, c_stream.total_out); #endif check_err(err, "deflate(..., Z_NO_FLUSH)"); } @@ -120,7 +114,7 @@ block_deflate(uint8_t *uncompr, uint8_t for (;;) { err = deflate(&c_stream, Z_FINISH); #ifdef DEBUG - printf("deflate: len = %zd total_in = %lu total_out = %lu\n", len, c_stream.total_in, c_stream.total_out); + printf("deflate final: len = %zd total_in = %lu total_out = %lu\n", len, c_stream.total_in, c_stream.total_out); #endif if (err == Z_STREAM_END) break; check_err(err, "deflate(..., Z_STREAM_END)"); @@ -133,7 +127,7 @@ block_deflate(uint8_t *uncompr, uint8_t } void -random_adaptor_unblock(void) +randomdev_unblock(void) { #if 0 @@ -166,12 +160,7 @@ RunHarvester(void *arg __unused) e.he_destination = i; e.he_source = (i + 3)%7; e.he_next = NULL; -#ifdef RANDOM_YARROW - random_yarrow_process_event(&e); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_process_event(&e); -#endif + random_alg_context.ra_event_processor(&e); usleep(r); } @@ -198,12 +187,7 @@ WriteCSPRNG(void *threadid) printf("Thread write 1 - %d\n", i); if (buf != NULL) { printf("Thread 1 writing.\n"); -#ifdef RANDOM_YARROW - random_yarrow_write(buf, i); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_write(buf, i); -#endif + random_alg_context.ra_write(buf, i); free(buf); } usleep(1000000); @@ -220,6 +204,7 @@ static int ReadCSPRNG(void *threadid) { size_t tid, zsize; + u_int buffersize; uint8_t *buf, *zbuf; int i; #ifdef DEBUG @@ -229,40 +214,22 @@ ReadCSPRNG(void *threadid) tid = (size_t)threadid; printf("Thread #%zd starts\n", tid); -#ifdef RANDOM_YARROW - while (!random_yarrow_seeded()) -#endif -#ifdef RANDOM_FORTUNA - while (!random_fortuna_seeded()) -#endif + while (!random_alg_context.ra_seeded()) { -#ifdef RANDOM_YARROW - random_yarrow_pre_read(); - random_yarrow_post_read(); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_pre_read(); - random_fortuna_post_read(); -#endif + random_alg_context.ra_pre_read(); usleep(100); } for (i = 0; i < 100000; i++) { - buf = malloc(i); + buffersize = i + RANDOM_BLOCKSIZE; + buffersize -= buffersize%RANDOM_BLOCKSIZE; + buf = malloc(buffersize); zbuf = malloc(2*i + 1024); if (i % 1000 == 0) printf("Thread read %zd - %d\n", tid, i); if (buf != NULL && zbuf != NULL) { -#ifdef RANDOM_YARROW - random_yarrow_pre_read(); - random_yarrow_read(buf, i); - random_yarrow_post_read(); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_pre_read(); - random_fortuna_read(buf, i); - random_fortuna_post_read(); -#endif + random_alg_context.ra_pre_read(); + random_alg_context.ra_read(buf, buffersize); zsize = block_deflate(buf, zbuf, i); if (zsize < i) printf("ERROR!! Compressible RNG output!\n"); @@ -300,12 +267,7 @@ main(int argc, char *argv[]) int rc; long t; -#ifdef RANDOM_YARROW - random_yarrow_init_alg(); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_init_alg(); -#endif + random_alg_context.ra_init_alg(NULL); for (t = 0; t < NUM_THREADS; t++) { printf("In main: creating thread %ld\n", t); @@ -324,12 +286,7 @@ main(int argc, char *argv[]) thrd_join(threads[1], &rc); thrd_join(threads[0], &rc); -#ifdef RANDOM_YARROW - random_yarrow_deinit_alg(); -#endif -#ifdef RANDOM_FORTUNA - random_fortuna_deinit_alg(); -#endif + random_alg_context.ra_deinit_alg(NULL); /* Last thing that main() should do */ thrd_exit(0); Modified: head/sys/dev/random/unit_test.h ============================================================================== --- head/sys/dev/random/unit_test.h Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/unit_test.h Sun Jul 12 18:14:38 2015 (r285422) @@ -34,7 +34,9 @@ #error "Random unit tests cannot be compiled into the kernel." #endif -void random_adaptor_unblock(void); +#include +#include +#include #if defined(clang) && __has_builtin(__builtin_readcyclecounter) #define rdtsc __builtin_readcyclecounter @@ -61,6 +63,7 @@ get_cyclecount(void) } #define HARVESTSIZE 2 +#define RANDOM_BLOCKSIZE 16 enum random_entropy_source { RANDOM_START = 0, Modified: head/sys/dev/random/yarrow.c ============================================================================== --- head/sys/dev/random/yarrow.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/dev/random/yarrow.c Sun Jul 12 18:14:38 2015 (r285422) @@ -30,11 +30,8 @@ __FBSDID("$FreeBSD$"); #ifdef _KERNEL #include -#include -#include #include #include -#include #include #include #include @@ -54,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -63,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #endif /* _KERNEL */ @@ -109,27 +108,28 @@ RANDOM_CHECK_UINT(slowoverthresh, 1, 5); static void random_yarrow_pre_read(void); static void random_yarrow_read(uint8_t *, u_int); -static void random_yarrow_post_read(void); static void random_yarrow_write(uint8_t *, u_int); static void random_yarrow_reseed(void); static int random_yarrow_seeded(void); -static void random_yarrow_reseed_internal(u_int); static void random_yarrow_process_event(struct harvest_event *); +static void random_yarrow_init_alg(void *); +static void random_yarrow_deinit_alg(void *); + +static void random_yarrow_reseed_internal(u_int); -#ifdef _KERNEL /* Interface to Adaptors system */ struct random_algorithm random_alg_context = { .ra_ident = "Yarrow", + .ra_init_alg = random_yarrow_init_alg, + .ra_deinit_alg = random_yarrow_deinit_alg, .ra_pre_read = random_yarrow_pre_read, .ra_read = random_yarrow_read, - .ra_post_read = random_yarrow_post_read, .ra_write = random_yarrow_write, .ra_reseed = random_yarrow_reseed, .ra_seeded = random_yarrow_seeded, .ra_event_processor = random_yarrow_process_event, .ra_poolcount = RANDOM_YARROW_NPOOLS, }; -#endif /* ARGSUSED */ static void @@ -199,9 +199,6 @@ random_yarrow_init_alg(void *unused __un /* Clear the counter */ yarrow_state.ys_counter = UINT128_ZERO; } -#ifdef _KERNEL -SYSINIT(random_yarrow, SI_SUB_RANDOM, SI_ORDER_THIRD, random_yarrow_init_alg, NULL); -#endif /* ARGSUSED */ static void @@ -214,9 +211,6 @@ random_yarrow_deinit_alg(void *unused __ sysctl_ctx_free(&random_clist); #endif } -#ifdef _KERNEL -SYSUNINIT(random_yarrow, SI_SUB_RANDOM, SI_ORDER_THIRD, random_yarrow_deinit_alg, NULL); -#endif /* Process a single stochastic event off the harvest queue */ static void @@ -255,25 +249,6 @@ random_yarrow_process_event(struct harve RANDOM_RESEED_UNLOCK(); } -/* Process a block of data suspected to be slightly stochastic. */ -static void -random_yarrow_process_buffer(uint32_t *buf, u_int wordcount) -{ - static struct harvest_event event; - static u_int destination = 0; - int i; - - for (i = 0; i < wordcount; i += sizeof(event.he_entropy)/sizeof(event.he_entropy[0])) { - event.he_somecounter = (uint32_t)get_cyclecount(); - event.he_size = sizeof(event.he_entropy); - event.he_bits = event.he_size/8; - event.he_source = RANDOM_CACHED; - event.he_destination = destination++; /* Harmless cheating */ - memcpy(event.he_entropy, buf + i, sizeof(event.he_entropy)); - random_yarrow_process_event(&event); - } -} - static void random_yarrow_reseed_internal(u_int fastslow) { @@ -384,12 +359,11 @@ random_yarrow_generator_gate(void) } /*- - * Used to return processed entropy from the PRNG. - * There is a pre_read and a post_read required to be present - * (but they can be null functions) in order to allow specific - * actions at the begin or the end of a read. Yarrow does its - * reseeding in its own thread. The _pre_read() and _post_read() - * are not used here, and must be kept for completeness. + * Used to return processed entropy from the PRNG. There is a pre_read + * required to be present (but it can be a stub) in order to allow + * specific actions at the begin of the read. + * Yarrow does its reseeding in its own thread; _pre_read() is not used + * by Yarrow but must be kept for completeness. */ void random_yarrow_pre_read(void) @@ -407,6 +381,7 @@ random_yarrow_read(uint8_t *buf, u_int b { u_int blockcount, i; + KASSERT((bytecount % RANDOM_BLOCKSIZE) == 0, ("%s(): bytecount (= %d) must be a multiple of %d", __func__, bytecount, RANDOM_BLOCKSIZE )); RANDOM_RESEED_LOCK(); blockcount = (bytecount + RANDOM_BLOCKSIZE - 1)/RANDOM_BLOCKSIZE; for (i = 0; i < blockcount; i++) { @@ -421,19 +396,15 @@ random_yarrow_read(uint8_t *buf, u_int b RANDOM_RESEED_UNLOCK(); } -void -random_yarrow_post_read(void) -{ - - /* CWOT */ -} - /* Internal function to hand external entropy to the PRNG. */ void random_yarrow_write(uint8_t *buf, u_int count) { + static u_int destination = 0; + static struct harvest_event event; struct randomdev_hash hash; uint32_t entropy_data[RANDOM_KEYSIZE_WORDS], timestamp; + int i; /* Extra timing here is helpful to scrape scheduler timing entropy */ randomdev_hash_init(&hash); @@ -444,7 +415,15 @@ random_yarrow_write(uint8_t *buf, u_int randomdev_hash_iterate(&hash, ×tamp, sizeof(timestamp)); randomdev_hash_finish(&hash, entropy_data); explicit_bzero(&hash, sizeof(hash)); - random_yarrow_process_buffer(entropy_data, sizeof(entropy_data)/sizeof(entropy_data[0])); + for (i = 0; i < RANDOM_KEYSIZE_WORDS; i += sizeof(event.he_entropy)/sizeof(event.he_entropy[0])) { + event.he_somecounter = (uint32_t)get_cyclecount(); + event.he_size = sizeof(event.he_entropy); + event.he_bits = event.he_size/8; + event.he_source = RANDOM_CACHED; + event.he_destination = destination++; /* Harmless cheating */ + memcpy(event.he_entropy, entropy_data + i, sizeof(event.he_entropy)); + random_yarrow_process_event(&event); + } explicit_bzero(entropy_data, sizeof(entropy_data)); } Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/net/if_tun.c Sun Jul 12 18:14:38 2015 (r285422) @@ -906,7 +906,7 @@ tunwrite(struct cdev *dev, struct uio *u m_freem(m); return (EAFNOSUPPORT); } - random_harvest_queue(&(m->m_data), 12, 2, RANDOM_NET_TUN); + random_harvest_queue(m, sizeof(*m), 2, RANDOM_NET_TUN); if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); CURVNET_SET(ifp->if_vnet); Modified: head/sys/netgraph/ng_iface.c ============================================================================== --- head/sys/netgraph/ng_iface.c Sun Jul 12 17:28:31 2015 (r285421) +++ head/sys/netgraph/ng_iface.c Sun Jul 12 18:14:38 2015 (r285422) @@ -705,7 +705,7 @@ ng_iface_rcvdata(hook_p hook, item_p ite m_freem(m); return (EAFNOSUPPORT); } - random_harvest_queue(&(m->m_data), 12, 2, RANDOM_NET_NG); + random_harvest_queue(m, sizeof(*m), 2, RANDOM_NET_NG); M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); return (0); From owner-svn-src-head@freebsd.org Sun Jul 12 18:32:17 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3EC93999881; Sun, 12 Jul 2015 18:32:17 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2F75E120D; Sun, 12 Jul 2015 18:32:17 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CIWHMp055512; Sun, 12 Jul 2015 18:32:17 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CIWHKE055511; Sun, 12 Jul 2015 18:32:17 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507121832.t6CIWHKE055511@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Sun, 12 Jul 2015 18:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285423 - head/sys/arm64/acpica X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 18:32:17 -0000 Author: zbb Date: Sun Jul 12 18:32:16 2015 New Revision: 285423 URL: https://svnweb.freebsd.org/changeset/base/285423 Log: Add ARM64TODO comments to ACPI PCI stubs This will make searching for missing functionalities easier. Modified: head/sys/arm64/acpica/pci_cfgreg.c Modified: head/sys/arm64/acpica/pci_cfgreg.c ============================================================================== --- head/sys/arm64/acpica/pci_cfgreg.c Sun Jul 12 18:14:38 2015 (r285422) +++ head/sys/arm64/acpica/pci_cfgreg.c Sun Jul 12 18:32:16 2015 (r285423) @@ -47,6 +47,7 @@ uint32_t pci_cfgregread(int bus, int slot, int func, int reg, int bytes) { + /* ARM64TODO */ panic("pci_cfgregread not implemented"); return (0); } @@ -58,6 +59,7 @@ void pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes) { + /* ARM64TODO */ panic("pci_cfgregwrite not implemented"); } @@ -68,6 +70,7 @@ int pci_cfgregopen(void) { + /* ARM64TODO */ panic("pci_cfgregopen not implemented"); return (0); } From owner-svn-src-head@freebsd.org Sun Jul 12 18:38:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7207199994E; Sun, 12 Jul 2015 18:38:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 4F5961631; Sun, 12 Jul 2015 18:38:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CIcIDp056498; Sun, 12 Jul 2015 18:38:18 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CIcILl056497; Sun, 12 Jul 2015 18:38:18 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201507121838.t6CIcILl056497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 12 Jul 2015 18:38:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285424 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 18:38:18 -0000 Author: ian Date: Sun Jul 12 18:38:17 2015 New Revision: 285424 URL: https://svnweb.freebsd.org/changeset/base/285424 Log: Use the monotonic (uptime) counter rather than time-of-day to measure elapsed time between ntp_adjtime() clock offset adjustments. This eliminates spurious frequency steering after a large clock step (such as a 1970->2015 step on a system with no battery-backed clock hardware). This problem was discovered after the import of ntpd 4.2.8, which does things in a slightly different (but still correct) order than the 4.2.4 we had previously. In particular, 4.2.4 would step the clock then immediately after use ntp_adjtime() to set the frequency and offset to zero, which captured the post-step time-of-day as a side effect. In 4.2.8, ntpd sets frequency and offset to zero before any initial clock step, capturing the time as 1970-ish, then when it next calls ntp_adjtime() it's with a non-zero offset measurement. This non-zero value gets multiplied by the apparent 45-year interval, which blows up into a completely bogus frequency steer. That gets clamped to 500ppm, but that's still enough to make the clock drift so fast that ntpd has to keep stepping it every few minutes to compensate. Modified: head/sys/kern/kern_ntptime.c Modified: head/sys/kern/kern_ntptime.c ============================================================================== --- head/sys/kern/kern_ntptime.c Sun Jul 12 18:32:16 2015 (r285423) +++ head/sys/kern/kern_ntptime.c Sun Jul 12 18:38:17 2015 (r285424) @@ -155,7 +155,7 @@ static long time_constant; /* poll inte static long time_precision = 1; /* clock precision (ns) */ static long time_maxerror = MAXPHASE / 1000; /* maximum error (us) */ long time_esterror = MAXPHASE / 1000; /* estimated error (us) */ -static long time_reftime; /* time at last adjustment (s) */ +static long time_reftime; /* uptime at last adjustment (s) */ static l_fp time_offset; /* time offset (ns) */ static l_fp time_freq; /* frequency offset (ns/s) */ static l_fp time_adj; /* tick adjust (ns/s) */ @@ -696,12 +696,12 @@ hardupdate(offset) * otherwise, the argument offset is used to compute it. */ if (time_status & STA_PPSFREQ && time_status & STA_PPSSIGNAL) { - time_reftime = time_second; + time_reftime = time_uptime; return; } if (time_status & STA_FREQHOLD || time_reftime == 0) - time_reftime = time_second; - mtemp = time_second - time_reftime; + time_reftime = time_uptime; + mtemp = time_uptime - time_reftime; L_LINT(ftemp, time_monitor); L_RSHIFT(ftemp, (SHIFT_PLL + 2 + time_constant) << 1); L_MPY(ftemp, mtemp); @@ -714,7 +714,7 @@ hardupdate(offset) L_ADD(time_freq, ftemp); time_status |= STA_MODE; } - time_reftime = time_second; + time_reftime = time_uptime; if (L_GINT(time_freq) > MAXFREQ) L_LINT(time_freq, MAXFREQ); else if (L_GINT(time_freq) < -MAXFREQ) From owner-svn-src-head@freebsd.org Sun Jul 12 18:40:32 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72AD79999AA; Sun, 12 Jul 2015 18:40:32 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 6370019B6; Sun, 12 Jul 2015 18:40:32 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CIeWDL059595; Sun, 12 Jul 2015 18:40:32 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CIeWuq059576; Sun, 12 Jul 2015 18:40:32 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201507121840.t6CIeWuq059576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 12 Jul 2015 18:40:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285425 - head/bin/ls X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 18:40:32 -0000 Author: marius Date: Sun Jul 12 18:40:31 2015 New Revision: 285425 URL: https://svnweb.freebsd.org/changeset/base/285425 Log: Since r284198, ls(1) just always depends libxo(3), not only in case of MK_LS_COLORS or !RELEASE_CRUNCH. Modified: head/bin/ls/Makefile Modified: head/bin/ls/Makefile ============================================================================== --- head/bin/ls/Makefile Sun Jul 12 18:38:17 2015 (r285424) +++ head/bin/ls/Makefile Sun Jul 12 18:40:31 2015 (r285425) @@ -5,12 +5,12 @@ PROG= ls SRCS= cmp.c ls.c print.c util.c -LIBADD= util +LIBADD= util xo .if !defined(RELEASE_CRUNCH) && \ ${MK_LS_COLORS} != no CFLAGS+= -DCOLORLS -LIBADD+= termcapw xo +LIBADD+= termcapw .endif .include From owner-svn-src-head@freebsd.org Sun Jul 12 19:16:21 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 206BE99B072; Sun, 12 Jul 2015 19:16:21 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0863B1C7E; Sun, 12 Jul 2015 19:16:21 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CJGKQ8076408; Sun, 12 Jul 2015 19:16:20 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CJGK89076403; Sun, 12 Jul 2015 19:16:20 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507121916.t6CJGK89076403@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sun, 12 Jul 2015 19:16:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285426 - head/usr.sbin/fstyp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 19:16:21 -0000 Author: allanjude (doc committer) Date: Sun Jul 12 19:16:19 2015 New Revision: 285426 URL: https://svnweb.freebsd.org/changeset/base/285426 Log: Remove excess copyright lines propogated by copy/paste Approved by: trasz Modified: head/usr.sbin/fstyp/geli.c head/usr.sbin/fstyp/zfs.c Modified: head/usr.sbin/fstyp/geli.c ============================================================================== --- head/usr.sbin/fstyp/geli.c Sun Jul 12 18:40:31 2015 (r285425) +++ head/usr.sbin/fstyp/geli.c Sun Jul 12 19:16:19 2015 (r285426) @@ -2,9 +2,6 @@ * Copyright (c) 2015 Allan Jude * All rights reserved. * - * This software was developed by Edward Tomasz Napierala under sponsorship - * from the FreeBSD Foundation. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: Modified: head/usr.sbin/fstyp/zfs.c ============================================================================== --- head/usr.sbin/fstyp/zfs.c Sun Jul 12 18:40:31 2015 (r285425) +++ head/usr.sbin/fstyp/zfs.c Sun Jul 12 19:16:19 2015 (r285426) @@ -2,9 +2,6 @@ * Copyright (c) 2015 Allan Jude * All rights reserved. * - * This software was developed by Edward Tomasz Napierala under sponsorship - * from the FreeBSD Foundation. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: From owner-svn-src-head@freebsd.org Sun Jul 12 19:17:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27C9399B0D8; Sun, 12 Jul 2015 19:17:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 183961EAC; Sun, 12 Jul 2015 19:17:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CJH5kF076560; Sun, 12 Jul 2015 19:17:05 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CJH5MX076559; Sun, 12 Jul 2015 19:17:05 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507121917.t6CJH5MX076559@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sun, 12 Jul 2015 19:17:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285427 - head/release/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 19:17:06 -0000 Author: gjb Date: Sun Jul 12 19:17:05 2015 New Revision: 285427 URL: https://svnweb.freebsd.org/changeset/base/285427 Log: Do not mount /var/log and /var/tmp as md(4)-backed devices. Discussed with: ian MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/release/tools/arm.subr Modified: head/release/tools/arm.subr ============================================================================== --- head/release/tools/arm.subr Sun Jul 12 19:16:19 2015 (r285426) +++ head/release/tools/arm.subr Sun Jul 12 19:17:05 2015 (r285427) @@ -112,10 +112,6 @@ arm_install_base() { >> ${CHROOTDIR}/${DESTDIR}/etc/fstab echo "md /tmp mfs rw,noatime,-s30m 0 0" \ >> ${CHROOTDIR}/${DESTDIR}/etc/fstab - echo "md /var/log mfs rw,noatime,-s15m 0 0" \ - >> ${CHROOTDIR}/${DESTDIR}/etc/fstab - echo "md /var/tmp mfs rw,noatime,-s12m 0 0" \ - >> ${CHROOTDIR}/${DESTDIR}/etc/fstab local hostname hostname="$(echo ${KERNEL} | tr '[:upper:]' '[:lower:]')" From owner-svn-src-head@freebsd.org Sun Jul 12 19:18:20 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2CAB599B125; Sun, 12 Jul 2015 19:18:20 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1D2F21010; Sun, 12 Jul 2015 19:18:20 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CJIJlG076798; Sun, 12 Jul 2015 19:18:19 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CJIJac076797; Sun, 12 Jul 2015 19:18:19 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201507121918.t6CJIJac076797@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sun, 12 Jul 2015 19:18:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285428 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 19:18:20 -0000 Author: alc Date: Sun Jul 12 19:18:19 2015 New Revision: 285428 URL: https://svnweb.freebsd.org/changeset/base/285428 Log: Correct the description of MADV_DONTNEED. Specifically, after using MADV_DONTNEED, while pages faults on the affected address range are more likely to occur, they are not guaranteed to occur. MFC after: 3 days Modified: head/lib/libc/sys/madvise.2 Modified: head/lib/libc/sys/madvise.2 ============================================================================== --- head/lib/libc/sys/madvise.2 Sun Jul 12 19:17:05 2015 (r285427) +++ head/lib/libc/sys/madvise.2 Sun Jul 12 19:18:19 2015 (r285428) @@ -28,7 +28,7 @@ .\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd January 30, 2014 +.Dd July 12, 2015 .Dt MADVISE 2 .Os .Sh NAME @@ -79,9 +79,9 @@ pages in from backing store, but quickly into the calling process. .It Dv MADV_DONTNEED Allows the VM system to decrease the in-memory priority -of pages in the specified range. -Additionally future references to -this address range will incur a page fault. +of pages in the specified address range. +Consequently, future references to this address range are more likely +to incur a page fault. .It Dv MADV_FREE Gives the VM system the freedom to free pages, and tells the system that information in the specified page range From owner-svn-src-head@freebsd.org Sun Jul 12 19:58:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D11BE99B7E8; Sun, 12 Jul 2015 19:58:13 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B75F91668; Sun, 12 Jul 2015 19:58:13 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CJwDt3097084; Sun, 12 Jul 2015 19:58:13 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CJwDGc097082; Sun, 12 Jul 2015 19:58:13 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201507121958.t6CJwDGc097082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 12 Jul 2015 19:58:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285429 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 19:58:13 -0000 Author: ian Date: Sun Jul 12 19:58:12 2015 New Revision: 285429 URL: https://svnweb.freebsd.org/changeset/base/285429 Log: Add PRINTF_BUFR_SIZE=128 to avoid interleaved output. Modified: head/sys/arm/conf/std.armv6 Modified: head/sys/arm/conf/std.armv6 ============================================================================== --- head/sys/arm/conf/std.armv6 Sun Jul 12 19:18:19 2015 (r285428) +++ head/sys/arm/conf/std.armv6 Sun Jul 12 19:58:12 2015 (r285429) @@ -32,6 +32,7 @@ options SYSVSHM # SYSV-style shared m options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed. options KBD_INSTALL_CDEV # install a CDEV entry in /dev options FREEBSD_BOOT_LOADER # Process metadata passed from loader(8) options VFP # Enable floating point hardware support From owner-svn-src-head@freebsd.org Sun Jul 12 20:29:54 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C71199BCC4; Sun, 12 Jul 2015 20:29:54 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 283041A28; Sun, 12 Jul 2015 20:29:54 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CKTsHt012506; Sun, 12 Jul 2015 20:29:54 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CKTqMd012496; Sun, 12 Jul 2015 20:29:52 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507122029.t6CKTqMd012496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 12 Jul 2015 20:29:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285430 - in head/usr.sbin/pw: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 20:29:54 -0000 Author: bapt Date: Sun Jul 12 20:29:51 2015 New Revision: 285430 URL: https://svnweb.freebsd.org/changeset/base/285430 Log: Rework the home directory creation and copy or the skel content to use *at functions This allows to simplify the code a bit for -R by not having to keep modifying path and also prepare the code to improve support -R in userdel While here, add regression tests for the functionality Modified: head/usr.sbin/pw/cpdir.c head/usr.sbin/pw/pw.c head/usr.sbin/pw/pw_user.c head/usr.sbin/pw/pwupd.h head/usr.sbin/pw/tests/pw_useradd.sh Modified: head/usr.sbin/pw/cpdir.c ============================================================================== --- head/usr.sbin/pw/cpdir.c Sun Jul 12 19:58:12 2015 (r285429) +++ head/usr.sbin/pw/cpdir.c Sun Jul 12 20:29:51 2015 (r285430) @@ -45,87 +45,85 @@ static const char rcsid[] = #include "pwupd.h" void -copymkdir(char const * dir, char const * skel, mode_t mode, uid_t uid, gid_t gid) +copymkdir(int rootfd, char const * dir, int skelfd, mode_t mode, uid_t uid, + gid_t gid, int flags) { - char src[MAXPATHLEN]; - char dst[MAXPATHLEN]; - char lnk[MAXPATHLEN]; - int len; + char *p, lnk[MAXPATHLEN], copybuf[4096]; + int len, homefd, srcfd, destfd; + ssize_t sz; + struct stat st; + struct dirent *e; + DIR *d; - if (mkdir(dir, mode) != 0 && errno != EEXIST) { + if (*dir == '/') + dir++; + + if (mkdirat(rootfd, dir, mode) != 0 && errno != EEXIST) { warn("mkdir(%s)", dir); - } else { - int infd, outfd; - struct stat st; - - static char counter = 0; - static char *copybuf = NULL; - - ++counter; - chown(dir, uid, gid); - if (skel != NULL && *skel != '\0') { - DIR *d = opendir(skel); - - if (d != NULL) { - struct dirent *e; - - while ((e = readdir(d)) != NULL) { - char *p = e->d_name; - - if (snprintf(src, sizeof(src), "%s/%s", skel, p) >= (int)sizeof(src)) - warn("warning: pathname too long '%s/%s' (skel not copied)", skel, p); - else if (lstat(src, &st) == 0) { - if (strncmp(p, "dot.", 4) == 0) /* Conversion */ - p += 3; - if (snprintf(dst, sizeof(dst), "%s/%s", dir, p) >= (int)sizeof(dst)) - warn("warning: path too long '%s/%s' (skel file skipped)", dir, p); - else { - if (S_ISDIR(st.st_mode)) { /* Recurse for this */ - if (strcmp(e->d_name, ".") != 0 && strcmp(e->d_name, "..") != 0) - copymkdir(dst, src, st.st_mode & _DEF_DIRMODE, uid, gid); - chflags(dst, st.st_flags); /* propagate flags */ - } else if (S_ISLNK(st.st_mode) && (len = readlink(src, lnk, sizeof(lnk) - 1)) != -1) { - lnk[len] = '\0'; - symlink(lnk, dst); - lchown(dst, uid, gid); - /* - * Note: don't propagate special attributes - * but do propagate file flags - */ - } else if (S_ISREG(st.st_mode) && (outfd = open(dst, O_RDWR | O_CREAT | O_EXCL, st.st_mode)) != -1) { - if ((infd = open(src, O_RDONLY)) == -1) { - close(outfd); - remove(dst); - } else { - int b; - - /* - * Allocate our copy buffer if we need to - */ - if (copybuf == NULL) - copybuf = malloc(4096); - while ((b = read(infd, copybuf, 4096)) > 0) - write(outfd, copybuf, b); - close(infd); - /* - * Propagate special filesystem flags - */ - fchown(outfd, uid, gid); - fchflags(outfd, st.st_flags); - close(outfd); - chown(dst, uid, gid); - } - } - } - } - } - closedir(d); - } + return; + } + fchownat(rootfd, dir, uid, gid, AT_SYMLINK_NOFOLLOW); + if (flags > 0) + chflagsat(rootfd, dir, flags, AT_SYMLINK_NOFOLLOW); + + if (skelfd == -1) + return; + + homefd = openat(rootfd, dir, O_DIRECTORY); + if ((d = fdopendir(skelfd)) == NULL) { + close(skelfd); + close(homefd); + return; + } + + while ((e = readdir(d)) != NULL) { + if (strcmp(e->d_name, ".") == 0 || strcmp(e->d_name, "..") == 0) + continue; + + p = e->d_name; + if (fstatat(skelfd, p, &st, AT_SYMLINK_NOFOLLOW) == -1) + continue; + + if (strncmp(p, "dot.", 4) == 0) /* Conversion */ + p += 3; + + if (S_ISDIR(st.st_mode)) { + copymkdir(homefd, p, openat(skelfd, e->d_name, O_DIRECTORY), + st.st_mode & _DEF_DIRMODE, uid, gid, st.st_flags); + continue; } - if (--counter == 0 && copybuf != NULL) { - free(copybuf); - copybuf = NULL; + + if (S_ISLNK(st.st_mode) && + (len = readlinkat(skelfd, e->d_name, lnk, sizeof(lnk) -1)) + != -1) { + lnk[len] = '\0'; + symlinkat(lnk, homefd, p); + fchownat(homefd, p, uid, gid, AT_SYMLINK_NOFOLLOW); + continue; } + + if (!S_ISREG(st.st_mode)) + continue; + + if ((srcfd = openat(skelfd, e->d_name, O_RDONLY)) == -1) + continue; + destfd = openat(homefd, p, O_RDWR | O_CREAT | O_EXCL, + st.st_mode); + if (destfd == -1) { + close(srcfd); + continue; + } + + while ((sz = read(srcfd, copybuf, sizeof(copybuf))) > 0) + write(destfd, copybuf, sz); + + close(srcfd); + /* + * Propagate special filesystem flags + */ + fchown(destfd, uid, gid); + fchflags(destfd, st.st_flags); + close(destfd); } + closedir(d); } - Modified: head/usr.sbin/pw/pw.c ============================================================================== --- head/usr.sbin/pw/pw.c Sun Jul 12 19:58:12 2015 (r285429) +++ head/usr.sbin/pw/pw.c Sun Jul 12 20:29:51 2015 (r285430) @@ -136,6 +136,7 @@ main(int argc, char *argv[]) name = NULL; relocated = nis = false; memset(&conf, 0, sizeof(conf)); + strlcpy(conf.rootdir, "/", sizeof(conf.rootdir)); strlcpy(conf.etcpath, _PATH_PWD, sizeof(conf.etcpath)); conf.fd = -1; @@ -215,6 +216,9 @@ main(int argc, char *argv[]) if (mode == -1 || which == -1) cmdhelp(mode, which); + conf.rootfd = open(conf.rootdir, O_DIRECTORY|O_CLOEXEC); + if (conf.rootfd == -1) + errx(EXIT_FAILURE, "Unable to open '%s'", conf.rootdir); conf.which = which; /* * We know which mode we're in and what we're about to do, so now Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Sun Jul 12 19:58:12 2015 (r285429) +++ head/usr.sbin/pw/pw_user.c Sun Jul 12 20:29:51 2015 (r285430) @@ -67,20 +67,19 @@ static void rmopie(char const * name static void create_and_populate_homedir(struct passwd *pwd) { - char *homedir, *dotdir; struct userconf *cnf = conf.userconf; + const char *skeldir; + int skelfd = -1; - homedir = dotdir = NULL; + skeldir = cnf->dotdir; - if (conf.rootdir[0] != '\0') { - asprintf(&homedir, "%s/%s", conf.rootdir, pwd->pw_dir); - if (homedir == NULL) - errx(EX_OSERR, "out of memory"); - asprintf(&dotdir, "%s/%s", conf.rootdir, cnf->dotdir); + if (skeldir != NULL && *skeldir != '\0') { + skelfd = openat(conf.rootfd, cnf->dotdir, + O_DIRECTORY|O_CLOEXEC); } - copymkdir(homedir ? homedir : pwd->pw_dir, dotdir ? dotdir: cnf->dotdir, - cnf->homemode, pwd->pw_uid, pwd->pw_gid); + copymkdir(conf.rootfd, pwd->pw_dir, skelfd, cnf->homemode, pwd->pw_uid, + pwd->pw_gid, 0); pw_log(cnf, M_ADD, W_USER, "%s(%u) home %s made", pwd->pw_name, pwd->pw_uid, pwd->pw_dir); } Modified: head/usr.sbin/pw/pwupd.h ============================================================================== --- head/usr.sbin/pw/pwupd.h Sun Jul 12 19:58:12 2015 (r285429) +++ head/usr.sbin/pw/pwupd.h Sun Jul 12 20:29:51 2015 (r285430) @@ -87,6 +87,7 @@ struct pwconf { char *config; char *gecos; int fd; + int rootfd; int which; bool quiet; bool force; @@ -156,7 +157,8 @@ struct group * vgetgrnam(const char * na RET_SETGRENT vsetgrent(void); void vendgrent(void); -void copymkdir(char const * dir, char const * skel, mode_t mode, uid_t uid, gid_t gid); +void copymkdir(int rootfd, char const * dir, int skelfd, mode_t mode, uid_t uid, + gid_t gid, int flags); void rm_r(char const * dir, uid_t uid); __END_DECLS Modified: head/usr.sbin/pw/tests/pw_useradd.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 19:58:12 2015 (r285429) +++ head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 20:29:51 2015 (r285430) @@ -255,6 +255,30 @@ user_add_R_body() { # test -d ${HOME}/home/bar && atf_fail "Directory not removed" } +atf_test_case user_add_skel +user_add_skel_body() { + populate_root_etc_skel + + mkdir ${HOME}/skel + echo "a" > ${HOME}/skel/.a + echo "b" > ${HOME}/skel/b + mkdir ${HOME}/skel/c + mkdir ${HOME}/skel/c/d + mkdir ${HOME}/skel/dot.plop + echo "c" > ${HOME}/skel/c/d/dot.c + mkdir ${HOME}/home + ln -sf /nonexistent ${HOME}/skel/c/foo + atf_check -s exit:0 ${RPW} useradd foo -k skel -m + test -d ${HOME}/home/foo || atf_fail "Directory not created" + test -f ${HOME}/home/foo/.a || atf_fail "File not created" + atf_check -o file:${HOME}/skel/.a -s exit:0 cat ${HOME}/home/foo/.a + atf_check -o file:${HOME}/skel/b -s exit:0 cat ${HOME}/home/foo/b + test -d ${HOME}/home/foo/c || atf_fail "Dotted directory in skel not copied" + test -d ${HOME}/home/foo/.plop || atf_fail "Directory in skell not created" + atf_check -o inline:"/nonexistent\n" -s ignore readlink -f ${HOME}/home/foo/c/foo + atf_check -o file:${HOME}/skel/c/d/dot.c -s exit:0 cat ${HOME}/home/foo/c/d/.c +} + atf_init_test_cases() { atf_add_test_case user_add atf_add_test_case user_add_noupdate @@ -277,4 +301,5 @@ atf_init_test_cases() { atf_add_test_case user_add_invalid_group_entry atf_add_test_case user_add_password_from_h atf_add_test_case user_add_R + atf_add_test_case user_add_skel } From owner-svn-src-head@freebsd.org Sun Jul 12 21:43:59 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE92199B989; Sun, 12 Jul 2015 21:43:59 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A27131F48; Sun, 12 Jul 2015 21:43:59 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CLhxdo050961; Sun, 12 Jul 2015 21:43:59 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CLhwx4050957; Sun, 12 Jul 2015 21:43:58 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507122143.t6CLhwx4050957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 12 Jul 2015 21:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285433 - in head/usr.sbin/pw: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 21:43:59 -0000 Author: bapt Date: Sun Jul 12 21:43:57 2015 New Revision: 285433 URL: https://svnweb.freebsd.org/changeset/base/285433 Log: pw -R userdel can now cleanup installation Rewrite rm_r to use *at function, allowing to remove home directories along with users. only crontabs and at(1) installation are not removed Relnotes: yes Modified: head/usr.sbin/pw/pw_user.c head/usr.sbin/pw/pwupd.h head/usr.sbin/pw/rm_r.c head/usr.sbin/pw/tests/pw_userdel.sh Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Sun Jul 12 21:43:31 2015 (r285432) +++ head/usr.sbin/pw/pw_user.c Sun Jul 12 21:43:57 2015 (r285433) @@ -746,12 +746,12 @@ pw_user(int mode, char *name, long id, s */ if (mode == M_ADD) { if (PWALTDIR() != PWF_ALT) { - arg = getarg(args, 'R'); - snprintf(path, sizeof(path), "%s%s/%s", - arg ? arg->val : "", _PATH_MAILDIR, pwd->pw_name); - close(open(path, O_RDWR | O_CREAT, 0600)); /* Preserve contents & - * mtime */ - chown(path, pwd->pw_uid, pwd->pw_gid); + snprintf(path, sizeof(path), "%s/%s", _PATH_MAILDIR, + pwd->pw_name); + close(openat(conf.rootfd, path +1, O_RDWR | O_CREAT, + 0600)); /* Preserve contents & mtime */ + fchownat(conf.rootfd, path + 1, pwd->pw_uid, + pwd->pw_gid, AT_SYMLINK_NOFOLLOW); } } @@ -1087,16 +1087,13 @@ pw_userdel(char *name, long id) if (strcmp(pwd->pw_name, "root") == 0) errx(EX_DATAERR, "cannot remove user 'root'"); - if (!PWALTDIR()) { - /* - * Remove opie record from /etc/opiekeys - */ + /* Remove opie record from /etc/opiekeys */ + if (PWALTDIR() != PWF_ALT) rmopie(pwd->pw_name); - /* - * Remove crontabs - */ + if (!PWALTDIR()) { + /* Remove crontabs */ snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); if (access(file, F_OK) == 0) { snprintf(file, sizeof(file), "crontab -u %s -r", pwd->pw_name); @@ -1158,28 +1155,23 @@ pw_userdel(char *name, long id) pw_log(conf.userconf, M_DELETE, W_USER, "%s(%u) account removed", name, uid); - if (!PWALTDIR()) { - /* - * Remove mail file - */ - remove(file); - - /* - * Remove at jobs - */ - if (getpwuid(uid) == NULL) - rmat(uid); - - /* - * Remove home directory and contents - */ - if (conf.deletehome && *home == '/' && getpwuid(uid) == NULL && - stat(home, &st) != -1) { - rm_r(home, uid); - pw_log(conf.userconf, M_DELETE, W_USER, "%s(%u) home '%s' %sremoved", - name, uid, home, - stat(home, &st) == -1 ? "" : "not completely "); - } + /* Remove mail file */ + if (PWALTDIR() != PWF_ALT) + unlinkat(conf.rootfd, file + 1, 0); + + /* Remove at jobs */ + if (!PWALTDIR() && getpwuid(uid) == NULL) + rmat(uid); + + /* Remove home directory and contents */ + if (PWALTDIR() != PWF_ALT && conf.deletehome && *home == '/' && + getpwuid(uid) == NULL && + fstatat(conf.rootfd, home + 1, &st, 0) != -1) { + rm_r(conf.rootfd, home, uid); + pw_log(conf.userconf, M_DELETE, W_USER, "%s(%u) home '%s' %s" + "removed", name, uid, home, + fstatat(conf.rootfd, home + 1, &st, 0) == -1 ? "" : "not " + "completely "); } return (EXIT_SUCCESS); @@ -1353,27 +1345,29 @@ rmat(uid_t uid) static void rmopie(char const * name) { - static const char etcopie[] = "/etc/opiekeys"; - FILE *fp = fopen(etcopie, "r+"); - - if (fp != NULL) { - char tmp[1024]; - off_t atofs = 0; - int length = strlen(name); - - while (fgets(tmp, sizeof tmp, fp) != NULL) { - if (strncmp(name, tmp, length) == 0 && tmp[length]==' ') { - if (fseek(fp, atofs, SEEK_SET) == 0) { - fwrite("#", 1, 1, fp); /* Comment username out */ - } - break; - } - atofs = ftell(fp); + char tmp[1014]; + FILE *fp; + int fd; + size_t len; + off_t atofs = 0; + + if ((fd = openat(conf.rootfd, "etc/opiekeys", O_RDWR)) == -1) + return; + + fp = fdopen(fd, "r+"); + len = strlen(name); + + while (fgets(tmp, sizeof(tmp), fp) != NULL) { + if (strncmp(name, tmp, len) == 0 && tmp[len]==' ') { + /* Comment username out */ + if (fseek(fp, atofs, SEEK_SET) == 0) + fwrite("#", 1, 1, fp); + break; } - /* - * If we got an error of any sort, don't update! - */ - fclose(fp); + atofs = ftell(fp); } + /* + * If we got an error of any sort, don't update! + */ + fclose(fp); } - Modified: head/usr.sbin/pw/pwupd.h ============================================================================== --- head/usr.sbin/pw/pwupd.h Sun Jul 12 21:43:31 2015 (r285432) +++ head/usr.sbin/pw/pwupd.h Sun Jul 12 21:43:57 2015 (r285433) @@ -159,7 +159,7 @@ void vendgrent(void); void copymkdir(int rootfd, char const * dir, int skelfd, mode_t mode, uid_t uid, gid_t gid, int flags); -void rm_r(char const * dir, uid_t uid); +void rm_r(int rootfd, char const * dir, uid_t uid); __END_DECLS #endif /* !_PWUPD_H */ Modified: head/usr.sbin/pw/rm_r.c ============================================================================== --- head/usr.sbin/pw/rm_r.c Sun Jul 12 21:43:31 2015 (r285432) +++ head/usr.sbin/pw/rm_r.c Sun Jul 12 21:43:57 2015 (r285433) @@ -37,39 +37,37 @@ static const char rcsid[] = #include #include #include +#include #include "pwupd.h" void -rm_r(char const * dir, uid_t uid) +rm_r(int rootfd, const char *path, uid_t uid) { - DIR *d = opendir(dir); + int dirfd; + DIR *d; + struct dirent *e; + struct stat st; - if (d != NULL) { - struct dirent *e; - struct stat st; - char file[MAXPATHLEN]; - - while ((e = readdir(d)) != NULL) { - if (strcmp(e->d_name, ".") != 0 && strcmp(e->d_name, "..") != 0) { - snprintf(file, sizeof(file), "%s/%s", dir, e->d_name); - if (lstat(file, &st) == 0) { /* Need symlinks, not - * linked file */ - if (S_ISDIR(st.st_mode)) /* Directory - recurse */ - rm_r(file, uid); - else { - if (S_ISLNK(st.st_mode) || st.st_uid == uid) - remove(file); - } - } - } - } - closedir(d); - if (lstat(dir, &st) == 0) { - if (S_ISLNK(st.st_mode)) - remove(dir); - else if (st.st_uid == uid) - rmdir(dir); - } + if (*path == '/') + path++; + + dirfd = openat(rootfd, path, O_DIRECTORY); + + d = fdopendir(dirfd); + while ((e = readdir(d)) != NULL) { + if (strcmp(e->d_name, ".") == 0 || strcmp(e->d_name, "..") == 0) + continue; + + if (fstatat(dirfd, e->d_name, &st, AT_SYMLINK_NOFOLLOW) != 0) + continue; + if (S_ISDIR(st.st_mode)) + rm_r(dirfd, e->d_name, uid); + else if (S_ISLNK(st.st_mode) || st.st_uid == uid) + unlinkat(dirfd, e->d_name, 0); } + closedir(d); + if (fstatat(rootfd, path, &st, AT_SYMLINK_NOFOLLOW) != 0) + return; + unlinkat(rootfd, path, S_ISDIR(st.st_mode) ? AT_REMOVEDIR : 0); } Modified: head/usr.sbin/pw/tests/pw_userdel.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 12 21:43:31 2015 (r285432) +++ head/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 12 21:43:57 2015 (r285433) @@ -31,7 +31,27 @@ user_do_not_try_to_delete_root_if_user_u ${PW} userdel -u plop } +atf_test_case delete_files +delete_files_body() { + populate_root_etc_skel + + mkdir -p ${HOME}/skel + touch ${HOME}/skel/a + mkdir -p ${HOME}/home + mkdir -p ${HOME}/var/mail + echo "foo wedontcare" > ${HOME}/etc/opiekeys + atf_check -s exit:0 ${RPW} useradd foo -k skel -m + test -d ${HOME}/home || atf_fail "Fail to create home directory" + test -f ${HOME}/var/mail/foo || atf_fail "Mail file not created" + atf_check -s exit:0 ${RPW} userdel foo -r + atf_check -s exit:0 -o inline:"#oo wedontcare\n" cat ${HOME}/etc/opiekeys + if test -f ${HOME}/var/mail/foo; then + atf_fail "Mail file not removed" + fi +} + atf_init_test_cases() { atf_add_test_case rmuser_seperate_group atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown + atf_add_test_case delete_files } From owner-svn-src-head@freebsd.org Sun Jul 12 22:09:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C8FA99BD2E; Sun, 12 Jul 2015 22:09:00 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 306361E50; Sun, 12 Jul 2015 22:09:00 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CM90U1061981; Sun, 12 Jul 2015 22:09:00 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CM8xgE061968; Sun, 12 Jul 2015 22:08:59 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507122208.t6CM8xgE061968@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 12 Jul 2015 22:08:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285434 - in head/usr.sbin/pw: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 22:09:00 -0000 Author: bapt Date: Sun Jul 12 22:08:58 2015 New Revision: 285434 URL: https://svnweb.freebsd.org/changeset/base/285434 Log: Ensure skeldir is abolute path (relatively to the rootdir) Modified: head/usr.sbin/pw/pw_user.c head/usr.sbin/pw/tests/pw_useradd.sh head/usr.sbin/pw/tests/pw_userdel.sh Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Sun Jul 12 21:43:57 2015 (r285433) +++ head/usr.sbin/pw/pw_user.c Sun Jul 12 22:08:58 2015 (r285434) @@ -74,8 +74,9 @@ create_and_populate_homedir(struct passw skeldir = cnf->dotdir; if (skeldir != NULL && *skeldir != '\0') { - skelfd = openat(conf.rootfd, cnf->dotdir, - O_DIRECTORY|O_CLOEXEC); + if (*skeldir == '/') + skeldir++; + skelfd = openat(conf.rootfd, skeldir, O_DIRECTORY|O_CLOEXEC); } copymkdir(conf.rootfd, pwd->pw_dir, skelfd, cnf->homemode, pwd->pw_uid, @@ -449,8 +450,13 @@ pw_user(int mode, char *name, long id, s } if ((arg = getarg(args, 'k')) != NULL) { - if (stat(cnf->dotdir = arg->val, &st) == -1 || !S_ISDIR(st.st_mode)) - errx(EX_OSFILE, "skeleton `%s' is not a directory or does not exist", cnf->dotdir); + char *tmp = cnf->dotdir = arg->val; + if (*tmp == '/') + tmp++; + if ((fstatat(conf.rootfd, tmp, &st, 0) == -1) || + !S_ISDIR(st.st_mode)) + errx(EX_OSFILE, "skeleton `%s' is not a directory or " + "does not exist", cnf->dotdir); } if ((arg = getarg(args, 's')) != NULL) Modified: head/usr.sbin/pw/tests/pw_useradd.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 21:43:57 2015 (r285433) +++ head/usr.sbin/pw/tests/pw_useradd.sh Sun Jul 12 22:08:58 2015 (r285434) @@ -268,7 +268,7 @@ user_add_skel_body() { echo "c" > ${HOME}/skel/c/d/dot.c mkdir ${HOME}/home ln -sf /nonexistent ${HOME}/skel/c/foo - atf_check -s exit:0 ${RPW} useradd foo -k skel -m + atf_check -s exit:0 ${RPW} useradd foo -k /skel -m test -d ${HOME}/home/foo || atf_fail "Directory not created" test -f ${HOME}/home/foo/.a || atf_fail "File not created" atf_check -o file:${HOME}/skel/.a -s exit:0 cat ${HOME}/home/foo/.a Modified: head/usr.sbin/pw/tests/pw_userdel.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 12 21:43:57 2015 (r285433) +++ head/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 12 22:08:58 2015 (r285434) @@ -40,7 +40,7 @@ delete_files_body() { mkdir -p ${HOME}/home mkdir -p ${HOME}/var/mail echo "foo wedontcare" > ${HOME}/etc/opiekeys - atf_check -s exit:0 ${RPW} useradd foo -k skel -m + atf_check -s exit:0 ${RPW} useradd foo -k /skel -m test -d ${HOME}/home || atf_fail "Fail to create home directory" test -f ${HOME}/var/mail/foo || atf_fail "Mail file not created" atf_check -s exit:0 ${RPW} userdel foo -r From owner-svn-src-head@freebsd.org Sun Jul 12 23:32:24 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACEDB99BBC3; Sun, 12 Jul 2015 23:32:24 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9DAFE11CC; Sun, 12 Jul 2015 23:32:24 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6CNWOxx007561; Sun, 12 Jul 2015 23:32:24 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6CNWOvm007560; Sun, 12 Jul 2015 23:32:24 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201507122332.t6CNWOvm007560@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 12 Jul 2015 23:32:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285435 - head/usr.sbin/ntp/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 23:32:24 -0000 Author: delphij Date: Sun Jul 12 23:32:23 2015 New Revision: 285435 URL: https://svnweb.freebsd.org/changeset/base/285435 Log: Bump version after 4.2.8p3 import. Note: currently 'mkver' script is using hardcoded knowledge and always emits -a in the version string, a more through solution would be to generate the script with something that we own. Modified: head/usr.sbin/ntp/scripts/mkver Modified: head/usr.sbin/ntp/scripts/mkver ============================================================================== --- head/usr.sbin/ntp/scripts/mkver Sun Jul 12 22:08:58 2015 (r285434) +++ head/usr.sbin/ntp/scripts/mkver Sun Jul 12 23:32:23 2015 (r285435) @@ -6,7 +6,7 @@ PROG=${1-UNKNOWN} ConfStr="$PROG" -ConfStr="$ConfStr 4.2.8p2" +ConfStr="$ConfStr 4.2.8p3" case "$CSET" in '') ;; From owner-svn-src-head@freebsd.org Mon Jul 13 00:52:43 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 769B7999CC0; Mon, 13 Jul 2015 00:52:43 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: from mail-yk0-x229.google.com (mail-yk0-x229.google.com [IPv6:2607:f8b0:4002:c07::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 369C61439; Mon, 13 Jul 2015 00:52:43 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: by ykeo3 with SMTP id o3so182543196yke.0; Sun, 12 Jul 2015 17:52:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=6/1X9LnHyubUYsCCzt4XELQj0B/qBDhPg+1O6qPeHCI=; b=HbS9cAtAxTDqR3RxW16MwfuTvAtlmpO9zmovAzKTxeuqgc3KXPd/U8b7+mN6P518LO rTgTf3EYdOKl7EIjanrZIVT/Fj4RiAZYwNyaRbwjh4lb3I/ezcwo8nSpNwK2GxK7Zppk ISTWWlUC0/PpD7yN3wIu0pwNMfbAZGqQAAo0eewri8NtsnGOoZh0+y10O5H4lpce/5p4 sXRQoHzdEWScCruMzKInn8rtoSNo+vzdunPK9dc4S9aNhvNHRw/eWHfYLwf6lYiYXdfc 4dH7a681e01hP1lmudcXdy2Gsg+WNgMy+WLQw6BdcsoQaWPftdH6jD8CG0C8BhzdNLk2 FATQ== MIME-Version: 1.0 X-Received: by 10.170.203.215 with SMTP id u206mr4936533yke.116.1436748762260; Sun, 12 Jul 2015 17:52:42 -0700 (PDT) Sender: crodr001@gmail.com Received: by 10.37.65.193 with HTTP; Sun, 12 Jul 2015 17:52:42 -0700 (PDT) Received: by 10.37.65.193 with HTTP; Sun, 12 Jul 2015 17:52:42 -0700 (PDT) In-Reply-To: <201507121814.t6CIEdkN045519@repo.freebsd.org> References: <201507121814.t6CIEdkN045519@repo.freebsd.org> Date: Sun, 12 Jul 2015 20:52:42 -0400 X-Google-Sender-Auth: rrXf81_0z2PvUzowbxtfgmJqHRk Message-ID: Subject: Re: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph From: Craig Rodrigues To: Mark Murray Cc: src-committers@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 00:52:43 -0000 On Jul 12, 2015 2:14 PM, "Mark Murray" wrote: > > Author: markm > Date: Sun Jul 12 18:14:38 2015 > New Revision: 285422 > URL: https://svnweb.freebsd.org/changeset/base/285422 > > Log: > * Address review (and add a bit myself). > - Tweek man page. > - Remove all mention of RANDOM_FORTUNA. If the system owner wants YARROW or DUMMY, they ask for it, otherwise they get FORTUNA. I started getting kernel panics on boot after this commit. Can you look at this: https://jenkins.freebsd.org/job/FreeBSD_HEAD-tests/1177/console Thanks. -- Craig From owner-svn-src-head@freebsd.org Mon Jul 13 05:13:40 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A82799B635; Mon, 13 Jul 2015 05:13:40 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 451D910D3; Mon, 13 Jul 2015 05:13:40 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D5Del8077097; Mon, 13 Jul 2015 05:13:40 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D5De8C077096; Mon, 13 Jul 2015 05:13:40 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201507130513.t6D5De8C077096@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Mon, 13 Jul 2015 05:13:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285436 - head/sys/dev/bwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 05:13:40 -0000 Author: adrian Date: Mon Jul 13 05:13:39 2015 New Revision: 285436 URL: https://svnweb.freebsd.org/changeset/base/285436 Log: Fixes the RF switch state polling by comparing with the revision of the PHY instead of the revision of the RADIO. This fixes the RF switch state polling. This is from DragonflyBSD, Commit 202e28d1f65e9f35df6032400df3242a3bafb483 Obtained from: DragonflyBSD Modified: head/sys/dev/bwn/if_bwn.c Modified: head/sys/dev/bwn/if_bwn.c ============================================================================== --- head/sys/dev/bwn/if_bwn.c Sun Jul 12 23:32:23 2015 (r285435) +++ head/sys/dev/bwn/if_bwn.c Mon Jul 13 05:13:39 2015 (r285436) @@ -10805,7 +10805,7 @@ bwn_rfswitch(void *arg) KASSERT(mac->mac_status >= BWN_MAC_STATUS_STARTED, ("%s: invalid MAC status %d", __func__, mac->mac_status)); - if (mac->mac_phy.rf_rev >= 3 || mac->mac_phy.type == BWN_PHYTYPE_LP) { + if (mac->mac_phy.rev >= 3 || mac->mac_phy.type == BWN_PHYTYPE_LP) { if (!(BWN_READ_4(mac, BWN_RF_HWENABLED_HI) & BWN_RF_HWENABLED_HI_MASK)) cur = 1; From owner-svn-src-head@freebsd.org Mon Jul 13 05:56:28 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD4A499BD6B; Mon, 13 Jul 2015 05:56:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B99B91085; Mon, 13 Jul 2015 05:56:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D5uS5K096859; Mon, 13 Jul 2015 05:56:28 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D5uSox096858; Mon, 13 Jul 2015 05:56:28 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130556.t6D5uSox096858@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 05:56:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285437 - head/bin/ls X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 05:56:28 -0000 Author: bapt Date: Mon Jul 13 05:56:27 2015 New Revision: 285437 URL: https://svnweb.freebsd.org/changeset/base/285437 Log: Prevent potential integer overflow PR: 192971 Submitted by: David Carlier Modified: head/bin/ls/ls.c Modified: head/bin/ls/ls.c ============================================================================== --- head/bin/ls/ls.c Mon Jul 13 05:13:39 2015 (r285436) +++ head/bin/ls/ls.c Mon Jul 13 05:56:27 2015 (r285437) @@ -158,6 +158,7 @@ main(int argc, char *argv[]) struct winsize win; int ch, fts_options, notused; char *p; + const char *errstr = NULL; #ifdef COLORLS char termcapbuf[1024]; /* termcap definition buffer */ char tcapbuf[512]; /* capability buffer */ @@ -170,7 +171,7 @@ main(int argc, char *argv[]) if (isatty(STDOUT_FILENO)) { termwidth = 80; if ((p = getenv("COLUMNS")) != NULL && *p != '\0') - termwidth = atoi(p); + termwidth = strtonum(p, 0, INT_MAX, &errstr); else if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) != -1 && win.ws_col > 0) termwidth = win.ws_col; @@ -180,9 +181,12 @@ main(int argc, char *argv[]) /* retrieve environment variable, in case of explicit -C */ p = getenv("COLUMNS"); if (p) - termwidth = atoi(p); + termwidth = strtonum(p, 0, INT_MAX, &errstr); } + if (errstr) + termwidth = 80; + fts_options = FTS_PHYSICAL; if (getenv("LS_SAMESORT")) f_samesort = 1; From owner-svn-src-head@freebsd.org Mon Jul 13 05:59:42 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A013C99BD9E; Mon, 13 Jul 2015 05:59:42 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8870C11F5; Mon, 13 Jul 2015 05:59:42 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D5xgNI097351; Mon, 13 Jul 2015 05:59:42 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D5xg1I097350; Mon, 13 Jul 2015 05:59:42 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130559.t6D5xg1I097350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 05:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285438 - head/bin/stty X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 05:59:42 -0000 Author: bapt Date: Mon Jul 13 05:59:41 2015 New Revision: 285438 URL: https://svnweb.freebsd.org/changeset/base/285438 Log: Prevent potential integer overflow PR: 192971 Submitted by: David Carlier Modified: head/bin/stty/stty.c Modified: head/bin/stty/stty.c ============================================================================== --- head/bin/stty/stty.c Mon Jul 13 05:56:27 2015 (r285437) +++ head/bin/stty/stty.c Mon Jul 13 05:59:41 2015 (r285438) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -61,7 +62,7 @@ main(int argc, char *argv[]) struct info i; enum FMT fmt; int ch; - const char *file; + const char *file, *errstr = NULL; fmt = NOTSET; i.fd = STDIN_FILENO; @@ -130,7 +131,9 @@ args: argc -= optind; if (isdigit(**argv)) { speed_t speed; - speed = atoi(*argv); + speed = strtonum(*argv, 0, UINT_MAX, &errstr); + if (errstr) + err(1, "speed"); cfsetospeed(&i.t, speed); cfsetispeed(&i.t, speed); i.set = 1; From owner-svn-src-head@freebsd.org Mon Jul 13 07:40:19 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF64B99BF66; Mon, 13 Jul 2015 07:40:19 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 6DDD11B1A; Mon, 13 Jul 2015 07:40:19 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZEYLW-000CQI-FY; Mon, 13 Jul 2015 08:40:16 +0100 Subject: Re: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) From: Mark R V Murray In-Reply-To: Date: Mon, 13 Jul 2015 08:40:08 +0100 Cc: src-committers@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org Message-Id: <70D653BC-BA44-4387-8ABC-0588948C7152@FreeBSD.org> References: <201507121814.t6CIEdkN045519@repo.freebsd.org> To: Craig Rodrigues X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 07:40:19 -0000 Hi, > On 13 Jul 2015, at 01:52, Craig Rodrigues = wrote: > On Jul 12, 2015 2:14 PM, "Mark Murray" > wrote: > > > > Author: markm > > Date: Sun Jul 12 18:14:38 2015 > > New Revision: 285422 > > URL: https://svnweb.freebsd.org/changeset/base/285422 = > > > > Log: > > * Address review (and add a bit myself). > > - Tweek man page. > > - Remove all mention of RANDOM_FORTUNA. If the system owner wants = YARROW or DUMMY, they ask for it, otherwise they get FORTUNA. >=20 > I started getting kernel panics on boot after this commit. > Can you look at this: >=20 > https://jenkins.freebsd.org/job/FreeBSD_HEAD-tests/1177/console = I'm = onto it now. Thanks and apologies. M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Mon Jul 13 08:38:22 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A7D899BCF7; Mon, 13 Jul 2015 08:38:22 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 12BA21CBB; Mon, 13 Jul 2015 08:38:22 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D8cLY1076019; Mon, 13 Jul 2015 08:38:21 GMT (envelope-from markm@FreeBSD.org) Received: (from markm@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D8cLEZ076018; Mon, 13 Jul 2015 08:38:21 GMT (envelope-from markm@FreeBSD.org) Message-Id: <201507130838.t6D8cLEZ076018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markm set sender to markm@FreeBSD.org using -f From: Mark Murray Date: Mon, 13 Jul 2015 08:38:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285439 - head/sys/dev/random X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 08:38:22 -0000 Author: markm Date: Mon Jul 13 08:38:21 2015 New Revision: 285439 URL: https://svnweb.freebsd.org/changeset/base/285439 Log: Rework the read routines to keep the PRNG sources happy. These work in units of crypto blocks, so must have adequate space to write. This means needing to be careful about buffers and keeping track of external read request length. Approved by: so (/dev/random blanket) Modified: head/sys/dev/random/randomdev.c Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Mon Jul 13 05:59:41 2015 (r285438) +++ head/sys/dev/random/randomdev.c Mon Jul 13 08:38:21 2015 (r285439) @@ -153,8 +153,8 @@ static int randomdev_read(struct cdev *dev __unused, struct uio *uio, int flags) { uint8_t *random_buf; - int c, error; - ssize_t nbytes; + int error; + ssize_t read_len, total_read, c; random_buf = malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); random_alg_context.ra_pre_read(); @@ -175,14 +175,24 @@ randomdev_read(struct cdev *dev __unused /* XXX: FIX!! Next line as an atomic operation? */ read_rate += (uio->uio_resid + sizeof(uint32_t))/sizeof(uint32_t); #endif - nbytes = uio->uio_resid; + total_read = 0; while (uio->uio_resid && !error) { - c = MIN(uio->uio_resid, PAGE_SIZE); - /* See the random_buf size requirements in the Yarrow/Fortuna code */ - random_alg_context.ra_read(random_buf, c); + read_len = uio->uio_resid; + /* + * Belt-and-braces. + * Round up the read length to a crypto block size multiple, + * which is what the underlying generator is expecting. + * See the random_buf size requirements in the Yarrow/Fortuna code. + */ + read_len += RANDOM_BLOCKSIZE; + read_len -= read_len % RANDOM_BLOCKSIZE; + read_len = MIN(read_len, PAGE_SIZE); + random_alg_context.ra_read(random_buf, read_len); + c = MIN(uio->uio_resid, read_len); error = uiomove(random_buf, c, uio); + total_read += c; } - if (nbytes != uio->uio_resid && (error == ERESTART || error == EINTR) ) + if (total_read != uio->uio_resid && (error == ERESTART || error == EINTR) ) /* Return partial read, not error. */ error = 0; } @@ -212,6 +222,13 @@ read_random(void *random_buf, u_int len) read_rate += (len + sizeof(uint32_t))/sizeof(uint32_t); #endif read_len = len; + /* + * Belt-and-braces. + * Round up the read length to a crypto block size multiple, + * which is what the underlying generator is expecting. + */ + read_len += RANDOM_BLOCKSIZE; + read_len -= read_len % RANDOM_BLOCKSIZE; total_read = 0; while (read_len) { c = MIN(read_len, PAGE_SIZE); From owner-svn-src-head@freebsd.org Mon Jul 13 08:44:31 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78FBE99BF10; Mon, 13 Jul 2015 08:44:31 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 37E13124E; Mon, 13 Jul 2015 08:44:31 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZEZLh-000CUE-9W; Mon, 13 Jul 2015 09:44:29 +0100 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Subject: Re: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph From: Mark R V Murray In-Reply-To: <70D653BC-BA44-4387-8ABC-0588948C7152@FreeBSD.org> Date: Mon, 13 Jul 2015 09:44:22 +0100 Cc: Craig Rodrigues , src-committers@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org Message-Id: References: <201507121814.t6CIEdkN045519@repo.freebsd.org> <70D653BC-BA44-4387-8ABC-0588948C7152@FreeBSD.org> To: Mark Robert Vaughan Murray X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 08:44:31 -0000 > On 13 Jul 2015, at 08:40, Mark R V Murray wrote: >=20 >> I started getting kernel panics on boot after this commit. >> Can you look at this: >>=20 >> https://jenkins.freebsd.org/job/FreeBSD_HEAD-tests/1177/console = I'm = onto it now. Thanks and apologies. A fix is in - r285439. Apologies again. M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Mon Jul 13 09:07:39 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4145C38AF; Mon, 13 Jul 2015 09:07:39 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2DC321E3A; Mon, 13 Jul 2015 09:07:39 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D97dhD090804; Mon, 13 Jul 2015 09:07:39 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D97d1T090803; Mon, 13 Jul 2015 09:07:39 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130907.t6D97d1T090803@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 09:07:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285440 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 09:07:39 -0000 Author: bapt Date: Mon Jul 13 09:07:38 2015 New Revision: 285440 URL: https://svnweb.freebsd.org/changeset/base/285440 Log: Fix logic of check duplicates that has been inverted Modified: head/usr.sbin/pw/pw.c Modified: head/usr.sbin/pw/pw.c ============================================================================== --- head/usr.sbin/pw/pw.c Mon Jul 13 08:38:21 2015 (r285439) +++ head/usr.sbin/pw/pw.c Mon Jul 13 09:07:38 2015 (r285440) @@ -139,6 +139,7 @@ main(int argc, char *argv[]) strlcpy(conf.rootdir, "/", sizeof(conf.rootdir)); strlcpy(conf.etcpath, _PATH_PWD, sizeof(conf.etcpath)); conf.fd = -1; + conf.checkduplicate = false; LIST_INIT(&arglist); @@ -325,7 +326,7 @@ main(int argc, char *argv[]) "descriptor or '-'"); break; case 'o': - conf.checkduplicate = true; + conf.checkduplicate = false; break; case 'q': conf.quiet = true; From owner-svn-src-head@freebsd.org Mon Jul 13 09:08:28 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DA6738E4; Mon, 13 Jul 2015 09:08:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 4E5C61F8B; Mon, 13 Jul 2015 09:08:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D98Srl090971; Mon, 13 Jul 2015 09:08:28 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D98SfB090970; Mon, 13 Jul 2015 09:08:28 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130908.t6D98SfB090970@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 09:08:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285441 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 09:08:28 -0000 Author: bapt Date: Mon Jul 13 09:08:27 2015 New Revision: 285441 URL: https://svnweb.freebsd.org/changeset/base/285441 Log: Regression fix: allow to create users with uid0 Reported by: Jan Mikkelsen Modified: head/usr.sbin/pw/pw_user.c Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Mon Jul 13 09:07:38 2015 (r285440) +++ head/usr.sbin/pw/pw_user.c Mon Jul 13 09:08:27 2015 (r285441) @@ -804,7 +804,7 @@ pw_uidpolicy(struct userconf * cnf, long /* * Check the given uid, if any */ - if (id > 0) { + if (id >= 0) { uid = (uid_t) id; if ((pwd = GETPWUID(uid)) != NULL && conf.checkduplicate) From owner-svn-src-head@freebsd.org Mon Jul 13 09:09:10 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0CB03914; Mon, 13 Jul 2015 09:09:10 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A14ED10F0; Mon, 13 Jul 2015 09:09:10 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D99Axv091123; Mon, 13 Jul 2015 09:09:10 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D99AKQ091122; Mon, 13 Jul 2015 09:09:10 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130909.t6D99AKQ091122@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 09:09:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285442 - head/usr.sbin/pw/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 09:09:10 -0000 Author: bapt Date: Mon Jul 13 09:09:09 2015 New Revision: 285442 URL: https://svnweb.freebsd.org/changeset/base/285442 Log: Add regression tests to ensure we keep allowing creating users with uid0 Modified: head/usr.sbin/pw/tests/pw_useradd.sh Modified: head/usr.sbin/pw/tests/pw_useradd.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_useradd.sh Mon Jul 13 09:08:27 2015 (r285441) +++ head/usr.sbin/pw/tests/pw_useradd.sh Mon Jul 13 09:09:09 2015 (r285442) @@ -279,6 +279,16 @@ user_add_skel_body() { atf_check -o file:${HOME}/skel/c/d/dot.c -s exit:0 cat ${HOME}/home/foo/c/d/.c } +atf_test_case user_add_uid0 +user_add_uid0_body() { + populate_etc_skel + atf_check -e inline:"pw: WARNING: new account \`foo' has a uid of 0 (superuser access!)\n" \ + -s exit:0 ${PW} useradd foo -u 0 -g 0 -d /root -s /bin/sh -c "Bourne-again Superuser" -o + atf_check \ + -o inline:"foo:*:0:0::0:0:Bourne-again Superuser:/root:/bin/sh\n" \ + -s exit:0 ${PW} usershow foo +} + atf_init_test_cases() { atf_add_test_case user_add atf_add_test_case user_add_noupdate @@ -302,4 +312,5 @@ atf_init_test_cases() { atf_add_test_case user_add_password_from_h atf_add_test_case user_add_R atf_add_test_case user_add_skel + atf_add_test_case user_add_uid0 } From owner-svn-src-head@freebsd.org Mon Jul 13 09:12:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60CA23ADC; Mon, 13 Jul 2015 09:12:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 5121F1935; Mon, 13 Jul 2015 09:12:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6D9C6QD095144; Mon, 13 Jul 2015 09:12:06 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6D9C6rb095143; Mon, 13 Jul 2015 09:12:06 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507130912.t6D9C6rb095143@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 13 Jul 2015 09:12:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285443 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 09:12:06 -0000 Author: bapt Date: Mon Jul 13 09:12:05 2015 New Revision: 285443 URL: https://svnweb.freebsd.org/changeset/base/285443 Log: Really fix -o Modified: head/usr.sbin/pw/pw.c Modified: head/usr.sbin/pw/pw.c ============================================================================== --- head/usr.sbin/pw/pw.c Mon Jul 13 09:09:09 2015 (r285442) +++ head/usr.sbin/pw/pw.c Mon Jul 13 09:12:05 2015 (r285443) @@ -139,7 +139,7 @@ main(int argc, char *argv[]) strlcpy(conf.rootdir, "/", sizeof(conf.rootdir)); strlcpy(conf.etcpath, _PATH_PWD, sizeof(conf.etcpath)); conf.fd = -1; - conf.checkduplicate = false; + conf.checkduplicate = true; LIST_INIT(&arglist); From owner-svn-src-head@freebsd.org Mon Jul 13 10:15:02 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1A17999202; Mon, 13 Jul 2015 10:15:02 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B991BCA8; Mon, 13 Jul 2015 10:15:02 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DAF2rQ025101; Mon, 13 Jul 2015 10:15:02 GMT (envelope-from jlh@FreeBSD.org) Received: (from jlh@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DAF2rV025100; Mon, 13 Jul 2015 10:15:02 GMT (envelope-from jlh@FreeBSD.org) Message-Id: <201507131015.t6DAF2rV025100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jlh set sender to jlh@FreeBSD.org using -f From: Jeremie Le Hen Date: Mon, 13 Jul 2015 10:15:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285444 - head/etc/defaults X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 10:15:02 -0000 Author: jlh Date: Mon Jul 13 10:15:01 2015 New Revision: 285444 URL: https://svnweb.freebsd.org/changeset/base/285444 Log: Allow again periodic scripts to be run from command-line. PR: 188109 Submitted by: Jason Unovitch MFC after: 1 week Modified: head/etc/defaults/periodic.conf Modified: head/etc/defaults/periodic.conf ============================================================================== --- head/etc/defaults/periodic.conf Mon Jul 13 09:12:05 2015 (r285443) +++ head/etc/defaults/periodic.conf Mon Jul 13 10:15:01 2015 (r285444) @@ -357,8 +357,12 @@ if [ -z "${source_periodic_confs_defined *) return 0 ;; esac ;; + '') + # Script run manually. + return 0 + ;; *) - echo "ASSERTION FAILED: Unexpected value for " \ + echo "ASSERTION FAILED: Unexpected value for" \ "\$PERIODIC: '$PERIODIC'" >&2 exit 127 ;; From owner-svn-src-head@freebsd.org Mon Jul 13 10:23:53 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B45159995C3; Mon, 13 Jul 2015 10:23:53 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A11E5121E; Mon, 13 Jul 2015 10:23:53 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DANrc4029872; Mon, 13 Jul 2015 10:23:53 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DANrZc029871; Mon, 13 Jul 2015 10:23:53 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201507131023.t6DANrZc029871@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Mon, 13 Jul 2015 10:23:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285445 - head/sys/dev/netmap X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 10:23:53 -0000 Author: luigi Date: Mon Jul 13 10:23:52 2015 New Revision: 285445 URL: https://svnweb.freebsd.org/changeset/base/285445 Log: set the refcount for the structure (dropped by mistake in the last commit). Modified: head/sys/dev/netmap/netmap_freebsd.c Modified: head/sys/dev/netmap/netmap_freebsd.c ============================================================================== --- head/sys/dev/netmap/netmap_freebsd.c Mon Jul 13 10:15:01 2015 (r285444) +++ head/sys/dev/netmap/netmap_freebsd.c Mon Jul 13 10:23:52 2015 (r285445) @@ -638,6 +638,7 @@ netmap_open(struct cdev *dev, int oflags M_NOWAIT | M_ZERO); if (priv == NULL) return ENOMEM; + priv->np_refs = 1; error = devfs_set_cdevpriv(priv, netmap_dtor); if (error) { free(priv, M_DEVBUF); From owner-svn-src-head@freebsd.org Mon Jul 13 10:43:28 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 636B09999E4; Mon, 13 Jul 2015 10:43:28 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pd0-x236.google.com (mail-pd0-x236.google.com [IPv6:2607:f8b0:400e:c02::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 355341CC7; Mon, 13 Jul 2015 10:43:28 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by pdbqm3 with SMTP id qm3so78422012pdb.0; Mon, 13 Jul 2015 03:43:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=caug1ya4wAWAoC/TStllC6ifnWy6MLpLzT9OEO8HX9I=; b=h0hmzurxoB/2AN28tg1etEkPjuq51cS6SlnXKa7L9RS4gY2cgIQKAe7q0yDnsk3vnV pAoWkSnuQuiVcSI03yX45O7lv8vise8FzArDt2ftEaZKejz82bqfxH6T9SyZDiWTup4/ 4mwZ+E4KKNvrnrT0O1Z6jM+EbauHzH9IkCusyGmcHNXCnHCw7LtVdpaZbv0lo52RPRUW Nf5ZfTt6CZd6+bJVW4I9gPwDxlBHw3zhjMRjaJdUlOHG23dqbbQwZn/GWiXZNrz4g37v QJx2NT/B9gxswIvpa/P167v/Se3iKk2wDw2lYYXLO5Ye+A0HRiTJk0VkPvXQe28mBttj 5frA== X-Received: by 10.68.69.47 with SMTP id b15mr69054584pbu.38.1436784207384; Mon, 13 Jul 2015 03:43:27 -0700 (PDT) Received: from ?IPv6:2601:602:8001:6c87:8872:4b52:f76f:3721? ([2601:602:8001:6c87:8872:4b52:f76f:3721]) by smtp.gmail.com with ESMTPSA id fe10sm18415145pdb.59.2015.07.13.03.43.26 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 13 Jul 2015 03:43:26 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r285444 - head/etc/defaults From: Garrett Cooper X-Mailer: iPhone Mail (12H143) In-Reply-To: <201507131015.t6DAF2rV025100@repo.freebsd.org> Date: Mon, 13 Jul 2015 03:43:25 -0700 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <528265C1-8B55-41D0-BF89-3A8AEF810D7F@gmail.com> References: <201507131015.t6DAF2rV025100@repo.freebsd.org> To: Jeremie Le Hen X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 10:43:28 -0000 > On Jul 13, 2015, at 03:15, Jeremie Le Hen wrote: >=20 > Author: jlh > Date: Mon Jul 13 10:15:01 2015 > New Revision: 285444 > URL: https://svnweb.freebsd.org/changeset/base/285444 >=20 > Log: > Allow again periodic scripts to be run from command-line. >=20 > PR: 188109 > Submitted by: Jason Unovitch > MFC after: 1 week >=20 > Modified: > head/etc/defaults/periodic.conf >=20 > Modified: head/etc/defaults/periodic.conf > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=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/etc/defaults/periodic.conf Mon Jul 13 09:12:05 2015 (r28544= 3) > +++ head/etc/defaults/periodic.conf Mon Jul 13 10:15:01 2015 (r28544= 4) > @@ -357,8 +357,12 @@ if [ -z "${source_periodic_confs_defined > *) return 0 ;; > esac > ;; > + '') > + # Script run manually. > + return 0 > + ;; > *) > - echo "ASSERTION FAILED: Unexpected value for " \ > + echo "ASSERTION FAILED: Unexpected value for" \ Please restore this space.= From owner-svn-src-head@freebsd.org Mon Jul 13 10:56:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B23D8999CBD; Mon, 13 Jul 2015 10:56:18 +0000 (UTC) (envelope-from jlehen@gmail.com) Received: from mail-la0-x230.google.com (mail-la0-x230.google.com [IPv6:2a00:1450:4010:c03::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 32C6E17B; Mon, 13 Jul 2015 10:56:18 +0000 (UTC) (envelope-from jlehen@gmail.com) Received: by laem6 with SMTP id m6so6806962lae.0; Mon, 13 Jul 2015 03:56:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=cBbr8SL9FNTKMpAooBI3Fgpei1Ktgm19ckcn1CgY1IM=; b=esybSoce65gc4x4uM6TMxHTtFVeYriErHaanSrAdE9ZU8paUYMukvFuf+OeA0sSQ+Z /UMh/tzdwgIESpm5i9D7kUI9xwksGa90M5cVceeIr662i8Rn0qNTMROdTZlFp8Q9v8ml tPEnJWStbfAnSQmaNJbBEGoEL+0G/UXSeiD8f7udJ+Magmm8pClYMsU+lcrMcntZcfqq 9AMlkbS7edtglR5len8xNQ1Bnl/1YzGwdo4JGet/taswmmS3DXGmSzsD5uCFD3pcFCFn kx8F4VMOhZrbML5ZJhWa6OYd/0WssTivTwn1gMlMWNUjSMNsIocUj+cvys2bsyK2u/7N l1JQ== MIME-Version: 1.0 X-Received: by 10.152.26.163 with SMTP id m3mr31827410lag.86.1436784976363; Mon, 13 Jul 2015 03:56:16 -0700 (PDT) Sender: jlehen@gmail.com Received: by 10.112.58.169 with HTTP; Mon, 13 Jul 2015 03:56:16 -0700 (PDT) In-Reply-To: <528265C1-8B55-41D0-BF89-3A8AEF810D7F@gmail.com> References: <201507131015.t6DAF2rV025100@repo.freebsd.org> <528265C1-8B55-41D0-BF89-3A8AEF810D7F@gmail.com> Date: Mon, 13 Jul 2015 12:56:16 +0200 X-Google-Sender-Auth: Qhi72RHo2EALBFGFjVZlGe0xWlE Message-ID: Subject: Re: svn commit: r285444 - head/etc/defaults From: Jeremie Le Hen To: Garrett Cooper Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 10:56:18 -0000 On Mon, Jul 13, 2015 at 12:43 PM, Garrett Cooper wrote: > >> On Jul 13, 2015, at 03:15, Jeremie Le Hen wrote: >> >> Author: jlh >> Date: Mon Jul 13 10:15:01 2015 >> New Revision: 285444 >> URL: https://svnweb.freebsd.org/changeset/base/285444 >> >> Log: >> Allow again periodic scripts to be run from command-line. >> >> PR: 188109 >> Submitted by: Jason Unovitch >> MFC after: 1 week >> >> Modified: >> head/etc/defaults/periodic.conf >> >> Modified: head/etc/defaults/periodic.conf >> ============================================================================== >> --- head/etc/defaults/periodic.conf Mon Jul 13 09:12:05 2015 (r285443) >> +++ head/etc/defaults/periodic.conf Mon Jul 13 10:15:01 2015 (r285444) >> @@ -357,8 +357,12 @@ if [ -z "${source_periodic_confs_defined >> *) return 0 ;; >> esac >> ;; >> + '') >> + # Script run manually. >> + return 0 >> + ;; >> *) >> - echo "ASSERTION FAILED: Unexpected value for " \ >> + echo "ASSERTION FAILED: Unexpected value for" \ Actually I removed it because while trying to run one periodic script manually, I realized there was one additional space: # /etc/periodic/security/410.logincheck ASSERTION FAILED: Unexpected value for $PERIODIC: '' -- Jeremie Le Hen jlh@FreeBSD.org From owner-svn-src-head@freebsd.org Mon Jul 13 14:13:16 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF3A5999273; Mon, 13 Jul 2015 14:13:16 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A740214A6; Mon, 13 Jul 2015 14:13:16 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DEDGf3045422; Mon, 13 Jul 2015 14:13:16 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DEDG0P045420; Mon, 13 Jul 2015 14:13:16 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507131413.t6DEDG0P045420@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Mon, 13 Jul 2015 14:13:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285457 - head/usr.bin/c99 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 14:13:16 -0000 Author: brueffer Date: Mon Jul 13 14:13:15 2015 New Revision: 285457 URL: https://svnweb.freebsd.org/changeset/base/285457 Log: Don't claim c99 is a wrapper around gcc; it's a wrapper around the system cc. PR: 201303 Submitted by: Bruce Cran MFC after: 1 week Modified: head/usr.bin/c99/c99.1 Modified: head/usr.bin/c99/c99.1 ============================================================================== --- head/usr.bin/c99/c99.1 Mon Jul 13 13:43:57 2015 (r285456) +++ head/usr.bin/c99/c99.1 Mon Jul 13 14:13:15 2015 (r285457) @@ -26,7 +26,7 @@ .\" From FreeBSD: src/usr.bin/c89/c89.1,v 1.11 2007/03/10 07:10:01 ru Exp .\" $FreeBSD$ .\" -.Dd June 17, 2010 +.Dd July 13, 2015 .Dt C99 1 .Os .Sh NAME @@ -188,12 +188,3 @@ The .Nm utility interface conforms to .St -p1003.1-2001 . -Since it is a wrapper around -.Tn GCC , -it is limited to the -.Tn C99 -features that -.Tn GCC -actually implements. -See -.Pa http://gcc.gnu.org/gcc-4.2/c99status.html . From owner-svn-src-head@freebsd.org Mon Jul 13 14:25:16 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04A529996E9; Mon, 13 Jul 2015 14:25:16 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E91671F44; Mon, 13 Jul 2015 14:25:15 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DEPF5K050877; Mon, 13 Jul 2015 14:25:15 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DEPF2K050876; Mon, 13 Jul 2015 14:25:15 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507131425.t6DEPF2K050876@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Mon, 13 Jul 2015 14:25:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285458 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 14:25:16 -0000 Author: brueffer Date: Mon Jul 13 14:25:15 2015 New Revision: 285458 URL: https://svnweb.freebsd.org/changeset/base/285458 Log: Fix a typo and duplicate word. Modified: head/share/man/man9/random_harvest.9 Modified: head/share/man/man9/random_harvest.9 ============================================================================== --- head/share/man/man9/random_harvest.9 Mon Jul 13 14:13:15 2015 (r285457) +++ head/share/man/man9/random_harvest.9 Mon Jul 13 14:25:15 2015 (r285458) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 30, 2015 +.Dd July 13, 2015 .Dt RANDOM_HARVEST 9 .Os .Sh NAME @@ -96,7 +96,7 @@ from harvesting, as they are high-rate sources. Some entropy is sacrificed, -but the hig rate of supply +but the high rate of supply will compensate for this. .Pp The @@ -121,7 +121,7 @@ and pass this in .Fa bits . .Pp Interrupt harvesting has been -in part simplified simplified +in part simplified for the kernel programmer. If a device driver registers an interrupt handler with From owner-svn-src-head@freebsd.org Mon Jul 13 15:11:07 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BF6C99B197; Mon, 13 Jul 2015 15:11:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 074271D31; Mon, 13 Jul 2015 15:11:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFB6cn072789; Mon, 13 Jul 2015 15:11:06 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFB6KF072785; Mon, 13 Jul 2015 15:11:06 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201507131511.t6DFB6KF072785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 13 Jul 2015 15:11:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285459 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:11:07 -0000 Author: mav Date: Mon Jul 13 15:11:05 2015 New Revision: 285459 URL: https://svnweb.freebsd.org/changeset/base/285459 Log: Unify port database use for target and initiator roles. Aside from cleaner and more consistent code, this allows ports to be both target and initiator same time, and easily switch from any role to any. Sponsored by: iXsystems, Inc. Modified: head/sys/dev/isp/isp.c head/sys/dev/isp/isp_freebsd.c head/sys/dev/isp/isp_library.c head/sys/dev/isp/isp_library.h head/sys/dev/isp/isp_target.h head/sys/dev/isp/ispvar.h Modified: head/sys/dev/isp/isp.c ============================================================================== --- head/sys/dev/isp/isp.c Mon Jul 13 14:25:15 2015 (r285458) +++ head/sys/dev/isp/isp.c Mon Jul 13 15:11:05 2015 (r285459) @@ -65,16 +65,18 @@ __FBSDID("$FreeBSD$"); */ #define MBOX_DELAY_COUNT 1000000 / 100 #define ISP_MARK_PORTDB(a, b, c) \ - isp_prt(isp, ISP_LOG_SANCFG, \ - "Chan %d ISP_MARK_PORTDB@LINE %d", b, __LINE__); \ - isp_mark_portdb(a, b, c) + do { \ + isp_prt(isp, ISP_LOG_SANCFG, \ + "Chan %d ISP_MARK_PORTDB@LINE %d", (b), __LINE__); \ + isp_mark_portdb((a), (b), (c)); \ + } while (0) /* * Local static data */ static const char fconf[] = "Chan %d PortDB[%d] changed:\n current =(0x%x@0x%06x 0x%08x%08x 0x%08x%08x)\n database=(0x%x@0x%06x 0x%08x%08x 0x%08x%08x)"; static const char notresp[] = "Not RESPONSE in RESPONSE Queue (type 0x%x) @ idx %d (next %d) nlooked %d"; -static const char topology[] = "Chan %d WWPN 0x%08x%08x PortID 0x%06x N-Port Handle %d, Connection '%s'"; +static const char topology[] = "Chan %d WWPN 0x%08x%08x PortID 0x%06x handle 0x%x, Connection '%s'"; static const char bun[] = "bad underrun (count %d, resid %d, status %s)"; static const char lipd[] = "Chan %d LIP destroyed %d active commands"; static const char sacq[] = "unable to acquire scratch area"; @@ -2223,36 +2225,10 @@ isp_fibre_init_2400(ispsoftc_t *isp) } static void -isp_del_all_init_entries(ispsoftc_t *isp, int chan) -{ - fcparam *fcp = FCPARAM(isp, chan); - fcportdb_t *lp; - int i; - - for (i = 0; i < MAX_FC_TARG; i++) { - lp = &fcp->portdb[i]; - if (lp->state == FC_PORTDB_STATE_NIL || lp->target_mode) - continue; - lp->state = FC_PORTDB_STATE_NIL; - isp_async(isp, ISPASYNC_DEV_GONE, chan, lp, 1); - if (lp->autologin == 0) { - (void) isp_plogx(isp, chan, lp->handle, - lp->portid, - PLOGX_FLG_CMD_LOGO | - PLOGX_FLG_IMPLICIT | - PLOGX_FLG_FREE_NPHDL, 0); - } else { - lp->autologin = 0; - } - lp->new_prli_word3 = 0; - lp->new_portid = 0; - } -} - -static void isp_mark_portdb(ispsoftc_t *isp, int chan, int disposition) { fcparam *fcp = FCPARAM(isp, chan); + fcportdb_t *lp; int i; if (chan < 0 || chan >= isp->isp_nchan) { @@ -2260,32 +2236,28 @@ isp_mark_portdb(ispsoftc_t *isp, int cha return; } for (i = 0; i < MAX_FC_TARG; i++) { - if (fcp->portdb[i].target_mode) { - if (disposition < 0) { - isp_prt(isp, ISP_LOGTINFO, "isp_mark_portdb: Chan %d zeroing handle 0x" "%04x port 0x%06x", chan, - fcp->portdb[i].handle, fcp->portdb[i].portid); - ISP_MEMZERO(&fcp->portdb[i], sizeof (fcportdb_t)); - } - continue; - } - if (disposition == 0) { - ISP_MEMZERO(&fcp->portdb[i], sizeof (fcportdb_t)); - } else { - switch (fcp->portdb[i].state) { - case FC_PORTDB_STATE_CHANGED: - case FC_PORTDB_STATE_PENDING_VALID: - case FC_PORTDB_STATE_VALID: - case FC_PORTDB_STATE_PROBATIONAL: - fcp->portdb[i].state = FC_PORTDB_STATE_PROBATIONAL; - break; - case FC_PORTDB_STATE_ZOMBIE: - break; - case FC_PORTDB_STATE_NIL: - default: - ISP_MEMZERO(&fcp->portdb[i], sizeof (fcportdb_t)); - fcp->portdb[i].state = FC_PORTDB_STATE_NIL; - break; + lp = &fcp->portdb[i]; + switch (lp->state) { + case FC_PORTDB_STATE_PROBATIONAL: + case FC_PORTDB_STATE_DEAD: + case FC_PORTDB_STATE_CHANGED: + case FC_PORTDB_STATE_PENDING_VALID: + case FC_PORTDB_STATE_VALID: + if (disposition > 0) + lp->state = FC_PORTDB_STATE_PROBATIONAL; + else { + lp->state = FC_PORTDB_STATE_NIL; + isp_async(isp, ISPASYNC_DEV_GONE, chan, lp); } + break; + case FC_PORTDB_STATE_ZOMBIE: + break; + case FC_PORTDB_STATE_NIL: + case FC_PORTDB_STATE_NEW: + default: + ISP_MEMZERO(lp, sizeof(*lp)); + lp->state = FC_PORTDB_STATE_NIL; + break; } } } @@ -2473,7 +2445,7 @@ isp_port_login(ispsoftc_t *isp, uint16_t return (MBOX_PORT_ID_USED | (mbs.param[1] << 16)); case MBOX_LOOP_ID_USED: - isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1, "isp_port_login: handle 0x%04x in use for port id 0x%02xXXXX", handle, mbs.param[1] & 0xff); + isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1, "isp_port_login: handle 0x%x in use for port id 0x%02xXXXX", handle, mbs.param[1] & 0xff); return (MBOX_LOOP_ID_USED); case MBOX_COMMAND_COMPLETE: @@ -2559,7 +2531,7 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui pdb->portid = BITS2WORD_24XX(un.bill.pdb_portid_bits); ISP_MEMCPY(pdb->portname, un.bill.pdb_portname, 8); ISP_MEMCPY(pdb->nodename, un.bill.pdb_nodename, 8); - isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Port 0x%06x flags 0x%x curstate %x", chan, pdb->portid, un.bill.pdb_flags, un.bill.pdb_curstate); + isp_prt(isp, ISP_LOG_SANCFG, "Chan %d handle 0x%x Port 0x%06x flags 0x%x curstate %x", chan, id, pdb->portid, un.bill.pdb_flags, un.bill.pdb_curstate); if (un.bill.pdb_curstate < PDB2400_STATE_PLOGI_DONE || un.bill.pdb_curstate > PDB2400_STATE_LOGGED_IN) { mbs.param[0] = MBOX_NOT_LOGGED_IN; if (dolock) { @@ -2587,6 +2559,7 @@ isp_dump_chip_portdb(ispsoftc_t *isp, in isp_pdb_t pdb; int lim, loopid; + isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGINFO, "Chan %d chip port dump", chan); if (ISP_CAP_2KLOGIN(isp)) { lim = NPH_MAX_2K; } else { @@ -2988,16 +2961,8 @@ isp_pdb_sync(ispsoftc_t *isp, int chan) for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &fcp->portdb[dbidx]; - if (lp->state == FC_PORTDB_STATE_NIL || lp->target_mode) { - continue; - } - - if (lp->state == FC_PORTDB_STATE_VALID) { - if (dbidx != FL_ID) { - isp_prt(isp, - ISP_LOGERR, "portdb idx %d already valid", - dbidx); - } + if (lp->state == FC_PORTDB_STATE_NIL || + lp->state == FC_PORTDB_STATE_VALID) { continue; } @@ -3005,7 +2970,7 @@ isp_pdb_sync(ispsoftc_t *isp, int chan) case FC_PORTDB_STATE_PROBATIONAL: case FC_PORTDB_STATE_DEAD: lp->state = FC_PORTDB_STATE_NIL; - isp_async(isp, ISPASYNC_DEV_GONE, chan, lp, 0); + isp_async(isp, ISPASYNC_DEV_GONE, chan, lp); if (lp->autologin == 0) { (void) isp_plogx(isp, chan, lp->handle, lp->portid, @@ -3029,17 +2994,14 @@ isp_pdb_sync(ispsoftc_t *isp, int chan) isp_async(isp, ISPASYNC_DEV_ARRIVED, chan, lp); lp->new_prli_word3 = 0; lp->new_portid = 0; - lp->announced = 0; break; case FC_PORTDB_STATE_CHANGED: -/* - * XXXX FIX THIS - */ lp->state = FC_PORTDB_STATE_VALID; isp_async(isp, ISPASYNC_DEV_CHANGED, chan, lp); + lp->portid = lp->new_portid; + lp->prli_word3 = lp->new_prli_word3; lp->new_prli_word3 = 0; lp->new_portid = 0; - lp->announced = 0; break; case FC_PORTDB_STATE_PENDING_VALID: lp->portid = lp->new_portid; @@ -3050,13 +3012,12 @@ isp_pdb_sync(ispsoftc_t *isp, int chan) lp->new_prli_word3 = 0; lp->new_portid = 0; } - lp->announced = 0; break; case FC_PORTDB_STATE_ZOMBIE: break; default: isp_prt(isp, ISP_LOGWARN, - "isp_scan_loop: state %d for idx %d", + "isp_pdb_sync: state %d for idx %d", lp->state, dbidx); isp_dump_portdb(isp, chan); } @@ -3127,7 +3088,6 @@ isp_scan_loop(ispsoftc_t *isp, int chan) isp_prt(isp, ISP_LOG_SANCFG, "Chan %d FC scan loop 0..%d", chan, lim-1); - /* * Run through the list and get the port database info for each one. */ @@ -3211,6 +3171,9 @@ isp_scan_loop(ispsoftc_t *isp, int chan) */ if (tmp.node_wwn == 0 || tmp.port_wwn == 0 || tmp.portid == 0) { int a, b, c; + isp_prt(isp, ISP_LOGWARN, + "Chan %d bad pdb (WWNN %016jx, WWPN %016jx, PortID %06x, W3 0x%x, H 0x%x) @ handle 0x%x", + chan, tmp.node_wwn, tmp.port_wwn, tmp.portid, tmp.prli_word3, tmp.handle, handle); a = (tmp.node_wwn == 0); b = (tmp.port_wwn == 0); c = (tmp.portid == 0); @@ -3220,13 +3183,10 @@ isp_scan_loop(ispsoftc_t *isp, int chan) tmp.port_wwn = isp_get_wwn(isp, chan, handle, 0); if (tmp.node_wwn && tmp.port_wwn) { - isp_prt(isp, ISP_LOGINFO, "DODGED!"); + isp_prt(isp, ISP_LOGWARN, "DODGED!"); goto cont; } } - isp_prt(isp, ISP_LOGWARN, - "Chan %d bad pdb (%1d%1d%1d) @ handle 0x%x", chan, - a, b, c, handle); isp_dump_portdb(isp, chan); continue; } @@ -3234,30 +3194,19 @@ isp_scan_loop(ispsoftc_t *isp, int chan) /* * Now search the entire port database - * for the same Port and Node WWN. + * for the same Port WWN. */ - for (i = 0; i < MAX_FC_TARG; i++) { - lp = &fcp->portdb[i]; - - if (lp->state == FC_PORTDB_STATE_NIL || lp->target_mode) { - continue; - } - if (lp->node_wwn != tmp.node_wwn) { - continue; - } - if (lp->port_wwn != tmp.port_wwn) { - continue; - } - + if (isp_find_pdb_by_wwn(isp, chan, tmp.port_wwn, &lp)) { /* * Okay- we've found a non-nil entry that matches. * Check to make sure it's probational or a zombie. */ if (lp->state != FC_PORTDB_STATE_PROBATIONAL && - lp->state != FC_PORTDB_STATE_ZOMBIE) { + lp->state != FC_PORTDB_STATE_ZOMBIE && + lp->state != FC_PORTDB_STATE_VALID) { isp_prt(isp, ISP_LOGERR, "Chan %d [%d] not probational/zombie (0x%x)", - chan, i, lp->state); + chan, FC_PORTDB_TGT(isp, chan, lp), lp->state); isp_dump_portdb(isp, chan); ISP_MARK_PORTDB(isp, chan, 1); isp_prt(isp, ISP_LOG_SANCFG, "Chan %d FC scan loop DONE (bad)", chan); @@ -3269,6 +3218,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan) * automatically. */ lp->autologin = 1; + lp->node_wwn = tmp.node_wwn; /* * Check to make see if really still the same @@ -3279,7 +3229,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan) lp->new_prli_word3 = tmp.prli_word3; lp->state = FC_PORTDB_STATE_PENDING_VALID; isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Loop Port 0x%06x@0x%04x Pending Valid", chan, tmp.portid, tmp.handle); - break; + continue; } /* @@ -3296,13 +3246,6 @@ isp_scan_loop(ispsoftc_t *isp, int chan) lp->state = FC_PORTDB_STATE_CHANGED; lp->new_portid = tmp.portid; lp->new_prli_word3 = tmp.prli_word3; - break; - } - - /* - * Did we find and update an old entry? - */ - if (i < MAX_FC_TARG) { continue; } @@ -3311,9 +3254,6 @@ isp_scan_loop(ispsoftc_t *isp, int chan) * for it and save info for later disposition. */ for (i = 0; i < MAX_FC_TARG; i++) { - if (fcp->portdb[i].target_mode) { - continue; - } if (fcp->portdb[i].state == FC_PORTDB_STATE_NIL) { break; } @@ -3739,7 +3679,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &fcp->portdb[dbidx]; - if (lp->state != FC_PORTDB_STATE_PROBATIONAL || lp->target_mode) { + if (lp->state != FC_PORTDB_STATE_PROBATIONAL) { continue; } if (lp->portid == portid) { @@ -3781,7 +3721,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha if (r != 0) { lp->new_portid = portid; lp->state = FC_PORTDB_STATE_DEAD; - isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Fabric Port 0x%06x is dead", chan, portid); + isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Fabric PortID 0x%06x handle 0x%x is dead (%d)", chan, portid, lp->handle, r); continue; } @@ -3797,7 +3737,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha if (pdb.handle != lp->handle || pdb.portid != portid || wwpn != lp->port_wwn || - wwnn != lp->node_wwn) { + (lp->node_wwn != 0 && wwnn != lp->node_wwn)) { isp_prt(isp, ISP_LOG_SANCFG, fconf, chan, dbidx, pdb.handle, pdb.portid, (uint32_t) (wwnn >> 32), (uint32_t) wwnn, @@ -3815,8 +3755,9 @@ isp_scan_fabric(ispsoftc_t *isp, int cha * portid consistency after re-login. * */ - if (isp_login_device(isp, chan, portid, &pdb, - &oldhandle)) { + if ((fcp->role & ISP_ROLE_INITIATOR) == 0 || + isp_login_device(isp, chan, portid, &pdb, + &oldhandle)) { lp->new_portid = portid; lp->state = FC_PORTDB_STATE_DEAD; if (fcp->isp_loopstate != @@ -3837,7 +3778,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha MAKE_WWN_FROM_NODE_NAME(wwnn, pdb.nodename); MAKE_WWN_FROM_NODE_NAME(wwpn, pdb.portname); if (wwpn != lp->port_wwn || - wwnn != lp->node_wwn) { + (lp->node_wwn != 0 && wwnn != lp->node_wwn)) { isp_prt(isp, ISP_LOGWARN, "changed WWN" " after relogin"); lp->new_portid = portid; @@ -3875,6 +3816,9 @@ isp_scan_fabric(ispsoftc_t *isp, int cha continue; } + if ((fcp->role & ISP_ROLE_INITIATOR) == 0) + continue; + /* * Ah- a new entry. Search the database again for all non-NIL * entries to make sure we never ever make a new database entry @@ -3888,12 +3832,6 @@ isp_scan_fabric(ispsoftc_t *isp, int cha lp <= &fcp->portdb[SNS_ID]) { continue; } - /* - * Skip any target mode entries. - */ - if (lp->target_mode) { - continue; - } if (lp->state == FC_PORTDB_STATE_NIL) { if (dbidx == MAX_FC_TARG) { dbidx = lp - fcp->portdb; @@ -3966,10 +3904,9 @@ isp_scan_fabric(ispsoftc_t *isp, int cha if (dbidx >= FL_ID && dbidx <= SNS_ID) { continue; } - if (fcp->portdb[dbidx].target_mode) { - continue; - } - if (fcp->portdb[dbidx].node_wwn == wwnn && fcp->portdb[dbidx].port_wwn == wwpn) { + if ((fcp->portdb[dbidx].node_wwn == wwnn || + fcp->portdb[dbidx].node_wwn == 0) && + fcp->portdb[dbidx].port_wwn == wwpn) { break; } } @@ -4007,6 +3944,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha */ lp = &fcp->portdb[dbidx]; lp->handle = handle; + lp->node_wwn = wwnn; lp->new_portid = portid; lp->new_prli_word3 = nr; if (lp->portid != portid || lp->prli_word3 != nr) { @@ -4393,7 +4331,7 @@ isp_start(XS_T *xs) isp_prt(isp, ISP_LOGDEBUG2, "XS_TGT(xs)=%d", target); lp = &fcp->portdb[target]; if (target < 0 || target >= MAX_FC_TARG || - lp->dev_map_idx == 0) { + lp->is_target == 0) { XS_SETERR(xs, HBA_SELTIMEOUT); return (CMD_COMPLETE); } @@ -4406,7 +4344,6 @@ isp_start(XS_T *xs) XS_SETERR(xs, HBA_SELTIMEOUT); return (CMD_COMPLETE); } - lp->dirty = 1; } else { sdparam *sdp = SDPARAM(isp, XS_CHANNEL(xs)); if ((sdp->role & ISP_ROLE_INITIATOR) == 0) { @@ -4417,6 +4354,7 @@ isp_start(XS_T *xs) if (sdp->update) { isp_spi_update(isp, XS_CHANNEL(xs)); } + lp = NULL; } start_again: @@ -4703,7 +4641,7 @@ isp_control(ispsoftc_t *isp, ispctl_t ct break; } lp = &fcp->portdb[tgt]; - if (lp->dev_map_idx == 0 || + if (lp->is_target == 0 || lp->state != FC_PORTDB_STATE_VALID) { isp_prt(isp, ISP_LOGWARN, "Chan %d abort of no longer valid target %d", chan, tgt); break; @@ -4793,7 +4731,7 @@ isp_control(ispsoftc_t *isp, ispctl_t ct break; } lp = &fcp->portdb[tgt]; - if (lp->dev_map_idx == 0 || + if (lp->is_target == 0 || lp->state != FC_PORTDB_STATE_VALID) { isp_prt(isp, ISP_LOGWARN, "Chan %d abort of no longer valid target %d", chan, tgt); break; @@ -5004,12 +4942,6 @@ isp_control(ispsoftc_t *isp, ispctl_t ct role = va_arg(ap, int); va_end(ap); if (IS_FC(isp)) { -#ifdef ISP_TARGET_MODE - if ((role & ISP_ROLE_TARGET) == 0) - isp_del_all_wwn_entries(isp, chan); -#endif - if ((role & ISP_ROLE_INITIATOR) == 0) - isp_del_all_init_entries(isp, chan); r = isp_fc_change_role(isp, chan, role); } else { SDPARAM(isp, chan)->role = role; @@ -7887,26 +7819,26 @@ isp_setdfltfcparm(ispsoftc_t *isp, int c * not disturb an already active list of commands. */ -void +int isp_reinit(ispsoftc_t *isp, int do_load_defaults) { - int i; + int i, res = 0; isp_reset(isp, do_load_defaults); - if (isp->isp_state != ISP_RESETSTATE) { + res = EIO; isp_prt(isp, ISP_LOGERR, "%s: cannot reset card", __func__); ISP_DISABLE_INTS(isp); goto cleanup; } isp_init(isp); - if (isp->isp_state == ISP_INITSTATE) { isp->isp_state = ISP_RUNSTATE; } if (isp->isp_state != ISP_RUNSTATE) { + res = EIO; #ifndef ISP_TARGET_MODE isp_prt(isp, ISP_LOGWARN, "%s: not at runstate", __func__); #endif @@ -7923,18 +7855,16 @@ isp_reinit(ispsoftc_t *isp, int do_load_ ISP_WRITE(isp, BIU2100_CSR, BIU2100_RISC_REGS); } } - } + } cleanup: - isp->isp_nactive = 0; - isp_clear_commands(isp); if (IS_FC(isp)) { - for (i = 0; i < isp->isp_nchan; i++) { + for (i = 0; i < isp->isp_nchan; i++) ISP_MARK_PORTDB(isp, i, -1); - } } + return (res); } /* Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Mon Jul 13 14:25:15 2015 (r285458) +++ head/sys/dev/isp/isp_freebsd.c Mon Jul 13 15:11:05 2015 (r285459) @@ -52,11 +52,10 @@ MODULE_DEPEND(isp, cam, 1, 1, 1); int isp_announced = 0; int isp_fabric_hysteresis = 5; int isp_loop_down_limit = 60; /* default loop down limit */ -int isp_change_is_bad = 0; /* "changed" devices are bad */ int isp_quickboot_time = 7; /* don't wait more than N secs for loop up */ int isp_gone_device_time = 30; /* grace time before reporting device lost */ int isp_autoconfig = 1; /* automatically attach/detach devices */ -static const char prom3[] = "Chan %d PortID 0x%06x Departed from Target %u because of %s"; +static const char prom3[] = "Chan %d [%u] PortID 0x%06x Departed because of %s"; static void isp_freeze_loopdown(ispsoftc_t *, int, char *); static d_ioctl_t ispioctl; @@ -474,9 +473,6 @@ ispioctl(struct cdev *dev, u_long c, cad case ISP_RESETHBA: ISP_LOCK(isp); -#ifdef ISP_TARGET_MODE - isp_del_all_wwn_entries(isp, ISP_NOCHAN); -#endif isp_reinit(isp, 0); ISP_UNLOCK(isp); retval = 0; @@ -528,7 +524,7 @@ ispioctl(struct cdev *dev, u_long c, cad break; } lp = &FCPARAM(isp, ifc->chan)->portdb[ifc->loopid]; - if (lp->state == FC_PORTDB_STATE_VALID || lp->target_mode) { + if (lp->state != FC_PORTDB_STATE_NIL) { ifc->role = (lp->prli_word3 & SVC3_ROLE_MASK) >> SVC3_ROLE_SHIFT; ifc->loopid = lp->handle; ifc->portid = lp->portid; @@ -1512,13 +1508,7 @@ isp_disable_lun(ispsoftc_t *isp, union c done: if (status == CAM_REQ_CMP) { tptr->enabled = 0; - /* - * If we have no more luns enabled for this bus, - * delete all tracked wwns for it (if we are FC), - * and disable target mode. - */ if (is_any_lun_enabled(isp, bus) == 0) { - isp_del_all_wwn_entries(isp, bus); if (isp_disable_target_mode(isp, bus)) { status = CAM_REQ_CMP_ERR; } @@ -2467,7 +2457,9 @@ isp_handle_platform_atio2(ispsoftc_t *is /* * If we're not in the port database, add ourselves. */ - if (!IS_2100(isp) && isp_find_pdb_by_loopid(isp, 0, atiop->init_id, &lp) == 0) { + if (!IS_2100(isp) && + (isp_find_pdb_by_handle(isp, 0, atiop->init_id, &lp) == 0 || + lp->state == FC_PORTDB_STATE_ZOMBIE)) { uint64_t iid = (((uint64_t) aep->at_wwpn[0]) << 48) | (((uint64_t) aep->at_wwpn[1]) << 32) | @@ -2594,6 +2586,7 @@ isp_handle_platform_atio7(ispsoftc_t *is */ isp_prt(isp, ISP_LOGTINFO, "%s: [RX_ID 0x%x] D_ID 0x%06x found on Chan %d for S_ID 0x%06x wasn't in PDB already", __func__, aep->at_rxid, did, chan, sid); + isp_dump_portdb(isp, chan); isp_endcmd(isp, aep, NIL_HANDLE, chan, ECMD_TERMINATE, 0); return; } @@ -3116,7 +3109,7 @@ isp_handle_platform_notify_fc(ispsoftc_t } else { loopid = inp->in_iid; } - if (isp_find_pdb_by_loopid(isp, 0, loopid, &lp)) { + if (isp_find_pdb_by_handle(isp, 0, loopid, &lp)) { wwn = lp->port_wwn; } else { wwn = INI_ANY; @@ -3270,7 +3263,7 @@ isp_handle_platform_notify_24xx(ispsoftc case IN24XX_PORT_LOGOUT: ptr = "PORT LOGOUT"; - if (isp_find_pdb_by_loopid(isp, ISP_GET_VPIDX(isp, inot->in_vpidx), nphdl, &lp)) { + if (isp_find_pdb_by_handle(isp, ISP_GET_VPIDX(isp, inot->in_vpidx), nphdl, &lp)) { isp_del_wwn_entry(isp, ISP_GET_VPIDX(isp, inot->in_vpidx), lp->port_wwn, nphdl, lp->portid); } /* FALLTHROUGH */ @@ -4606,13 +4599,6 @@ isp_make_here(ispsoftc_t *isp, fcportdb_ xpt_free_ccb(ccb); return; } - - /* - * Since we're about to issue a rescan, mark this device as not - * reported gone. - */ - fcp->reported_gone = 0; - xpt_rescan(ccb); } @@ -4626,11 +4612,6 @@ isp_make_gone(ispsoftc_t *isp, fcportdb_ return; } if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { - /* - * We're about to send out the lost device async - * notification, so indicate that we have reported it gone. - */ - fcp->reported_gone = 1; xpt_async(AC_LOST_DEVICE, tp, NULL); xpt_free_path(tp); } @@ -4660,6 +4641,8 @@ isp_gdt_task(void *arg, int pending) ispsoftc_t *isp = fc->isp; int chan = fc - isp->isp_osinfo.pc.fc; fcportdb_t *lp; + struct ac_contract ac; + struct ac_device_changed *adc; int dbidx, more_to_do = 0; ISP_LOCK(isp); @@ -4670,19 +4653,27 @@ isp_gdt_task(void *arg, int pending) if (lp->state != FC_PORTDB_STATE_ZOMBIE) { continue; } - if (lp->dev_map_idx == 0 || lp->target_mode) { - continue; - } if (lp->gone_timer != 0) { - isp_prt(isp, ISP_LOG_SANCFG, "%s: Chan %d more to do for target %u (timer=%u)", __func__, chan, lp->dev_map_idx - 1, lp->gone_timer); lp->gone_timer -= 1; more_to_do++; continue; } - lp->dev_map_idx = 0; + isp_prt(isp, ISP_LOGCONFIG, prom3, chan, dbidx, lp->portid, "Gone Device Timeout"); + if (lp->is_target) { + lp->is_target = 0; + isp_make_gone(isp, lp, chan, dbidx); + } + if (lp->is_initiator) { + lp->is_initiator = 0; + ac.contract_number = AC_CONTRACT_DEV_CHG; + adc = (struct ac_device_changed *) ac.contract_data; + adc->wwpn = lp->port_wwn; + adc->port = lp->portid; + adc->target = lp->handle; + adc->arrived = 0; + xpt_async(AC_CONTRACT, fc->path, &ac); + } lp->state = FC_PORTDB_STATE_NIL; - isp_prt(isp, ISP_LOGCONFIG, prom3, chan, lp->portid, dbidx, "Gone Device Timeout"); - isp_make_gone(isp, lp, chan, dbidx); } if (fc->ready) { if (more_to_do) { @@ -4718,6 +4709,8 @@ isp_ldt_task(void *arg, int pending) ispsoftc_t *isp = fc->isp; int chan = fc - isp->isp_osinfo.pc.fc; fcportdb_t *lp; + struct ac_contract ac; + struct ac_device_changed *adc; int dbidx, i; ISP_LOCK(isp); @@ -4730,18 +4723,12 @@ isp_ldt_task(void *arg, int pending) for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &FCPARAM(isp, chan)->portdb[dbidx]; - if (lp->state != FC_PORTDB_STATE_PROBATIONAL) { - continue; - } - if (lp->dev_map_idx == 0 || lp->target_mode) { + if (lp->state == FC_PORTDB_STATE_NIL) continue; - } /* * XXX: CLEAN UP AND COMPLETE ANY PENDING COMMANDS FIRST! */ - - for (i = 0; i < isp->isp_maxcmds; i++) { struct ccb_scsiio *xs; @@ -4758,19 +4745,24 @@ isp_ldt_task(void *arg, int pending) isp->isp_xflist[i].handle, chan, XS_TGT(xs), XS_LUN(xs)); } - /* - * Mark that we've announced that this device is gone.... - */ - lp->announced = 1; - lp->dev_map_idx = 0; - lp->state = FC_PORTDB_STATE_NIL; - isp_prt(isp, ISP_LOGCONFIG, prom3, chan, lp->portid, dbidx, "Loop Down Timeout"); - isp_make_gone(isp, lp, chan, dbidx); + isp_prt(isp, ISP_LOGCONFIG, prom3, chan, dbidx, lp->portid, "Loop Down Timeout"); + if (lp->is_target) { + lp->is_target = 0; + isp_make_gone(isp, lp, chan, dbidx); + } + if (lp->is_initiator) { + lp->is_initiator = 0; + ac.contract_number = AC_CONTRACT_DEV_CHG; + adc = (struct ac_device_changed *) ac.contract_data; + adc->wwpn = lp->port_wwn; + adc->port = lp->portid; + adc->target = lp->handle; + adc->arrived = 0; + xpt_async(AC_CONTRACT, fc->path, &ac); + } } - if (FCPARAM(isp, chan)->role & ISP_ROLE_INITIATOR) { - isp_unfreeze_loopdown(isp, chan); - } + isp_unfreeze_loopdown(isp, chan); /* * The loop down timer has expired. Wake up the kthread * to notice that fact (or make it false). @@ -5585,7 +5577,7 @@ isp_done(XS_T *sccb) fcparam *fcp; fcp = FCPARAM(isp, XS_CHANNEL(sccb)); - fcp->portdb[XS_TGT(sccb)].reported_gone = 1; + fcp->portdb[XS_TGT(sccb)].is_target = 0; } if ((sccb->ccb_h.status & CAM_DEV_QFRZN) == 0) { sccb->ccb_h.status |= CAM_DEV_QFRZN; @@ -5608,15 +5600,16 @@ isp_done(XS_T *sccb) void isp_async(ispsoftc_t *isp, ispasync_t cmd, ...) { - int bus, now; - static const char prom0[] = "Chan %d PortID 0x%06x handle 0x%x %s %s WWPN 0x%08x%08x"; - static const char prom2[] = "Chan %d PortID 0x%06x handle 0x%x %s %s tgt %u WWPN 0x%08x%08x"; + int bus; + static const char prom[] = "Chan %d [%d] WWPN 0x%16jx PortID 0x%06x handle 0x%x %s %s"; char buf[64]; char *msg = NULL; target_id_t tgt; fcportdb_t *lp; struct isp_fc *fc; struct cam_path *tmppath; + struct ac_contract ac; + struct ac_device_changed *adc; va_list ap; switch (cmd) { @@ -5718,10 +5711,10 @@ isp_async(ispsoftc_t *isp, ispasync_t cm if (fc->path) { isp_freeze_loopdown(isp, bus, msg); } - if (!callout_active(&fc->ldt)) { - callout_reset(&fc->ldt, fc->loop_down_limit * hz, isp_ldt, fc); - isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Starting Loop Down Timer @ %lu", (unsigned long) time_uptime); - } + } + if (!callout_active(&fc->ldt)) { + callout_reset(&fc->ldt, fc->loop_down_limit * hz, isp_ldt, fc); + isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Starting Loop Down Timer @ %lu", (unsigned long) time_uptime); } } isp_fcp_reset_crn(fc, /*tgt*/0, /*tgt_set*/ 0); @@ -5751,19 +5744,25 @@ isp_async(ispsoftc_t *isp, ispasync_t cm lp = va_arg(ap, fcportdb_t *); va_end(ap); fc = ISP_FC_PC(isp, bus); - lp->announced = 0; - lp->gone_timer = 0; - if ((FCPARAM(isp, bus)->role & ISP_ROLE_INITIATOR) && (lp->prli_word3 & PRLI_WD3_TARGET_FUNCTION)) { - lp->dev_map_idx = (lp - FCPARAM(isp, bus)->portdb) + 1; - } + tgt = FC_PORTDB_TGT(isp, bus, lp); isp_gen_role_str(buf, sizeof (buf), lp->prli_word3); - if (lp->dev_map_idx) { - tgt = lp->dev_map_idx - 1; - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "arrived at", tgt, (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); + isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "arrived"); + if ((FCPARAM(isp, bus)->role & ISP_ROLE_INITIATOR) && + (lp->prli_word3 & PRLI_WD3_TARGET_FUNCTION)) { + lp->is_target = 1; isp_fcp_reset_crn(fc, tgt, /*tgt_set*/ 1); isp_make_here(isp, lp, bus, tgt); - } else { - isp_prt(isp, ISP_LOGCONFIG, prom0, bus, lp->portid, lp->handle, buf, "arrived", (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); + } + if ((FCPARAM(isp, bus)->role & ISP_ROLE_TARGET) && + (lp->prli_word3 & PRLI_WD3_INITIATOR_FUNCTION)) { + lp->is_initiator = 1; + ac.contract_number = AC_CONTRACT_DEV_CHG; + adc = (struct ac_device_changed *) ac.contract_data; + adc->wwpn = lp->port_wwn; + adc->port = lp->portid; + adc->target = lp->handle; + adc->arrived = 1; + xpt_async(AC_CONTRACT, fc->path, &ac); } break; case ISPASYNC_DEV_CHANGED: @@ -5772,97 +5771,68 @@ isp_async(ispsoftc_t *isp, ispasync_t cm lp = va_arg(ap, fcportdb_t *); va_end(ap); fc = ISP_FC_PC(isp, bus); - lp->announced = 0; - lp->gone_timer = 0; - if (isp_change_is_bad) { - lp->state = FC_PORTDB_STATE_NIL; - if (lp->dev_map_idx) { - tgt = lp->dev_map_idx - 1; - lp->dev_map_idx = 0; - isp_prt(isp, ISP_LOGCONFIG, prom3, bus, lp->portid, tgt, "change is bad"); - isp_make_gone(isp, lp, bus, tgt); - } else { - isp_gen_role_str(buf, sizeof (buf), lp->prli_word3); - isp_prt(isp, ISP_LOGCONFIG, prom0, bus, lp->portid, lp->handle, buf, "changed and departed", - (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - } - } else { - lp->portid = lp->new_portid; - lp->prli_word3 = lp->new_prli_word3; - isp_gen_role_str(buf, sizeof (buf), lp->prli_word3); - if (lp->dev_map_idx) { - tgt = lp->dev_map_idx - 1; - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "changed at", tgt, - (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); + tgt = FC_PORTDB_TGT(isp, bus, lp); + isp_gen_role_str(buf, sizeof (buf), lp->new_prli_word3); + isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->new_portid, lp->handle, buf, "changed"); +changed: + if (lp->is_target != + ((FCPARAM(isp, bus)->role & ISP_ROLE_INITIATOR) && + (lp->new_prli_word3 & PRLI_WD3_TARGET_FUNCTION))) { + lp->is_target = !lp->is_target; + if (lp->is_target) { isp_fcp_reset_crn(fc, tgt, /*tgt_set*/ 1); + isp_make_here(isp, lp, bus, tgt); } else { - isp_prt(isp, ISP_LOGCONFIG, prom0, bus, lp->portid, lp->handle, buf, "changed", (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); + isp_make_gone(isp, lp, bus, tgt); + isp_fcp_reset_crn(fc, tgt, /*tgt_set*/ 1); } } + if (lp->is_initiator != + ((FCPARAM(isp, bus)->role & ISP_ROLE_TARGET) && + (lp->new_prli_word3 & PRLI_WD3_INITIATOR_FUNCTION))) { + lp->is_initiator = !lp->is_initiator; + ac.contract_number = AC_CONTRACT_DEV_CHG; + adc = (struct ac_device_changed *) ac.contract_data; + adc->wwpn = lp->port_wwn; + adc->port = lp->portid; + adc->target = lp->handle; + adc->arrived = lp->is_initiator; + xpt_async(AC_CONTRACT, fc->path, &ac); + } break; case ISPASYNC_DEV_STAYED: va_start(ap, cmd); bus = va_arg(ap, int); lp = va_arg(ap, fcportdb_t *); va_end(ap); + fc = ISP_FC_PC(isp, bus); + tgt = FC_PORTDB_TGT(isp, bus, lp); isp_gen_role_str(buf, sizeof (buf), lp->prli_word3); - if (lp->dev_map_idx) { - fc = ISP_FC_PC(isp, bus); - tgt = lp->dev_map_idx - 1; - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "stayed at", tgt, - (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - /* - * Only issue a rescan if we've actually reported - * that this device is gone. - */ - if (lp->reported_gone != 0) { - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "rescanned at", tgt, - (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - isp_make_here(isp, lp, bus, tgt); - } - } else { - isp_prt(isp, ISP_LOGCONFIG, prom0, bus, lp->portid, lp->handle, buf, "stayed", - (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - } - break; + isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "stayed"); + goto changed; case ISPASYNC_DEV_GONE: va_start(ap, cmd); bus = va_arg(ap, int); lp = va_arg(ap, fcportdb_t *); - now = va_arg(ap, int); va_end(ap); fc = ISP_FC_PC(isp, bus); + tgt = FC_PORTDB_TGT(isp, bus, lp); /* - * If this has a virtual target and we haven't marked it - * that we're going to have isp_gdt tell the OS it's gone, - * set the isp_gdt timer running on it. - * - * If it isn't marked that isp_gdt is going to get rid of it, - * announce that it's gone. - * + * If this has a virtual target or initiator set the isp_gdt + * timer running on it to delay its departure. */ isp_gen_role_str(buf, sizeof (buf), lp->prli_word3); - if (lp->dev_map_idx && lp->announced == 0 && now) { - lp->announced = 1; - tgt = lp->dev_map_idx - 1; - lp->dev_map_idx = 0; - isp_make_gone(isp, lp, bus, tgt); - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "gone at", tgt, (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - isp_fcp_reset_crn(fc, tgt, /*tgt_set*/ 1); - } else if (lp->dev_map_idx && lp->announced == 0) { - lp->announced = 1; + if (lp->is_target || lp->is_initiator) { lp->state = FC_PORTDB_STATE_ZOMBIE; - lp->gone_timer = ISP_FC_PC(isp, bus)->gone_device_time; + lp->gone_timer = fc->gone_device_time; + isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "gone zombie"); if (fc->ready && !callout_active(&fc->gdt)) { isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Chan %d Starting Gone Device Timer with %u seconds time now %lu", bus, lp->gone_timer, (unsigned long)time_uptime); callout_reset(&fc->gdt, hz, isp_gdt, fc); } - tgt = lp->dev_map_idx - 1; - isp_prt(isp, ISP_LOGCONFIG, prom2, bus, lp->portid, lp->handle, buf, "gone zombie at", tgt, (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); - isp_fcp_reset_crn(fc, tgt, /*tgt_set*/ 1); - } else if (lp->announced == 0) { - isp_prt(isp, ISP_LOGCONFIG, prom0, bus, lp->portid, lp->handle, buf, "departed", (uint32_t) (lp->port_wwn >> 32), (uint32_t) lp->port_wwn); + break; } + isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "gone"); break; case ISPASYNC_CHANGE_NOTIFY: { @@ -5928,13 +5898,11 @@ isp_async(ispsoftc_t *isp, ispasync_t cm case NT_LIP_RESET: case NT_LINK_UP: case NT_LINK_DOWN: + case NT_HBA_RESET: /* * No action need be taken here. */ break; - case NT_HBA_RESET: - isp_del_all_wwn_entries(isp, ISP_NOCHAN); - break; case NT_GLOBAL_LOGOUT: case NT_LOGOUT: /* @@ -5942,34 +5910,6 @@ isp_async(ispsoftc_t *isp, ispasync_t cm */ isp_handle_platform_target_notify_ack(isp, notify); break; - case NT_ARRIVED: - { - struct ac_contract ac; - struct ac_device_changed *fc; - - ac.contract_number = AC_CONTRACT_DEV_CHG; - fc = (struct ac_device_changed *) ac.contract_data; - fc->wwpn = notify->nt_wwn; - fc->port = notify->nt_sid; - fc->target = notify->nt_nphdl; - fc->arrived = 1; - xpt_async(AC_CONTRACT, ISP_FC_PC(isp, notify->nt_channel)->path, &ac); - break; - } - case NT_DEPARTED: - { - struct ac_contract ac; - struct ac_device_changed *fc; - - ac.contract_number = AC_CONTRACT_DEV_CHG; - fc = (struct ac_device_changed *) ac.contract_data; - fc->wwpn = notify->nt_wwn; - fc->port = notify->nt_sid; - fc->target = notify->nt_nphdl; - fc->arrived = 0; - xpt_async(AC_CONTRACT, ISP_FC_PC(isp, notify->nt_channel)->path, &ac); - break; - } default: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Jul 13 15:26:04 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48A9099B383; Mon, 13 Jul 2015 15:26:04 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 395C2A2C; Mon, 13 Jul 2015 15:26:04 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFQ4te082139; Mon, 13 Jul 2015 15:26:04 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFQ4Ii082138; Mon, 13 Jul 2015 15:26:04 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507131526.t6DFQ4Ii082138@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Mon, 13 Jul 2015 15:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285460 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:26:04 -0000 Author: brueffer Date: Mon Jul 13 15:26:03 2015 New Revision: 285460 URL: https://svnweb.freebsd.org/changeset/base/285460 Log: Markup fixes. Modified: head/share/man/man9/nv.9 Modified: head/share/man/man9/nv.9 ============================================================================== --- head/share/man/man9/nv.9 Mon Jul 13 15:11:05 2015 (r285459) +++ head/share/man/man9/nv.9 Mon Jul 13 15:26:03 2015 (r285460) @@ -66,7 +66,7 @@ .Ft int .Fn nvlist_error "const nvlist_t *nvl" .Ft void -.Fn nvlist_set_error "nvlist_t *nvl, int error" +.Fn nvlist_set_error "nvlist_t *nvl" "int error" .Ft bool .Fn nvlist_empty "const nvlist_t *nvl" .Ft int @@ -76,9 +76,9 @@ .Fn nvlist_clone "const nvlist_t *nvl" .\" .Ft void -.Fn nvlist_dump "const nvlist_t *nvl, int fd" +.Fn nvlist_dump "const nvlist_t *nvl" "int fd" .Ft void -.Fn nvlist_fdump "const nvlist_t *nvl, FILE *fp" +.Fn nvlist_fdump "const nvlist_t *nvl" "FILE *fp" .\" .Ft size_t .Fn nvlist_size "const nvlist_t *nvl" From owner-svn-src-head@freebsd.org Mon Jul 13 15:26:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6453C99B37E; Mon, 13 Jul 2015 15:26:03 +0000 (UTC) (envelope-from gnn@freebsd.org) Received: from smtp.hungerhost.com (smtp.hungerhost.com [216.38.53.177]) (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 3E8B9A2B; Mon, 13 Jul 2015 15:26:02 +0000 (UTC) (envelope-from gnn@freebsd.org) Received: from [50.153.131.148] (port=22553 helo=[172.20.20.20]) by vps.hungerhost.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85) (envelope-from ) id 1ZEfcF-0007f1-R5; Mon, 13 Jul 2015 11:25:59 -0400 From: "George Neville-Neil" To: "John-Mark Gurney" Cc: "Matthew D. Fuller" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285336 - in head/sys: netipsec opencrypto Date: Mon, 13 Jul 2015 11:25:51 -0400 Message-ID: <815B402A-A14F-40F7-91CA-899C7A9597B3@freebsd.org> In-Reply-To: <20150711075705.GC8523@funkthat.com> References: <201507091816.t69IGawf097288@repo.freebsd.org> <20150711044843.GG96394@over-yonder.net> <20150711075705.GC8523@funkthat.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Mailer: MailMate (1.9.1r5084) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vps.hungerhost.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - freebsd.org X-Get-Message-Sender-Via: vps.hungerhost.com: authenticated_id: gnn@neville-neil.com X-Source: X-Source-Args: X-Source-Dir: X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:26:03 -0000 On 11 Jul 2015, at 3:57, John-Mark Gurney wrote: > Matthew D. Fuller wrote this message on Fri, Jul 10, 2015 at 23:48 > -0500: >> On Thu, Jul 09, 2015 at 06:16:36PM +0000 I heard the voice of >> George V. Neville-Neil, and lo! it spake thus: >>> New Revision: 285336 >>> URL: https://svnweb.freebsd.org/changeset/base/285336 >>> >>> Log: >>> Add support for AES modes to IPSec. These modes work both in >>> software only >>> mode and with hardware support on systems that have AESNI >>> instructions. >> >> With (apparently) this change, I can trigger a panic at will by >> running >> >> % geli onetime -e AES-XTS -d /dev/ada0s1 >> >> My best guess is that it comes from >> >>> -#define RIJNDAEL128_BLOCK_LEN 16 >>> +#define AES_MIN_BLOCK_LEN 1 >> >>> - RIJNDAEL128_BLOCK_LEN, 8, 32, 64, >>> + AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, >>> AES_XTS_MAX_KEY, >> >> changing that first arg from 16 to 1. It seems to be avoided with >> the >> following patch: >> >> ------8K-------- >> >> Index: sys/opencrypto/xform.c >> =================================================================== >> --- sys/opencrypto/xform.c (revision 285365) >> +++ sys/opencrypto/xform.c (working copy) >> @@ -257,7 +257,7 @@ >> >> struct enc_xform enc_xform_aes_xts = { >> CRYPTO_AES_XTS, "AES-XTS", >> - AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, >> AES_XTS_MAX_KEY, >> + AES_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, >> aes_xts_encrypt, >> aes_xts_decrypt, >> aes_xts_setkey, >> >> ------8K-------- >> >> at least in a little testing here. If that's the actual fix, some of >> the other MIN_BLOCK_LEN changes in GCM and GMAC are probably suspect >> too. >> >> >> (I also wonder why AES-ICM is still using the RIJNDAEL128 #defines; >> shouldn't it be using the AES's too? But that's cosmtic...) > > Our XTS though should be a block size of 1, doesn't implement > cipher text stealing, so still must be 16... I assumed that the values > of all the defines did not change... That is clearly not the case... > > gnn, can you please make sure that the tables in xform.c match before > your change? If you think there needs to be a value changed, please > run it by me.. > Correct, I changed it from the RIJNDAEL value to the "correct" minimum value of 1. I can do a followup commit to bump it back to 16 if that's what you think it ought to be. Best, George From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:39 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1615D99B73B; Mon, 13 Jul 2015 15:44:39 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0691F1688; Mon, 13 Jul 2015 15:44:39 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFicZC092595; Mon, 13 Jul 2015 15:44:38 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFicG2092594; Mon, 13 Jul 2015 15:44:38 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFicG2092594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285461 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:39 -0000 Author: gjb Date: Mon Jul 13 15:44:37 2015 New Revision: 285461 URL: https://svnweb.freebsd.org/changeset/base/285461 Log: Document r282608, date(1) update for compatibility with GNU. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:26:03 2015 (r285460) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:37 2015 (r285461) @@ -376,6 +376,12 @@ sponsor="&scaleengine;">The &man.fstyp.8; utility has been updated to be able to detect &man.zfs.8; and &man.geli.8; filesystems. + + The &man.date.1; utility has been + updated to print the modification time of the file passed as + an argument to the -r flag, improving + compatibility with the GNU &man.date.1; + utility behavior. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:41 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86CFA99B758; Mon, 13 Jul 2015 15:44:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 72466168B; Mon, 13 Jul 2015 15:44:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFifJ9092646; Mon, 13 Jul 2015 15:44:41 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFifuC092645; Mon, 13 Jul 2015 15:44:41 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFifuC092645@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285462 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:41 -0000 Author: gjb Date: Mon Jul 13 15:44:40 2015 New Revision: 285462 URL: https://svnweb.freebsd.org/changeset/base/285462 Log: Document r284398, tzdata update to 2015e. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:37 2015 (r285461) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:40 2015 (r285462) @@ -391,9 +391,6 @@ sponsor="&darpa_afrl;">&man.lldb.1; has been updated to upstream snapshot version r196259. - Timezone data files have been updated to - version 2013i. - &man.byacc.1; has been updated to version 20140101. @@ -480,6 +477,9 @@ The &man.file.1; utility has been updated to version 5.23. + Timezone data files have been updated to + version 2015e. + sendmail has been updated to 8.15.2. Starting with &os; 11.0 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 303FD99B771; Mon, 13 Jul 2015 15:44:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0834E18AF; Mon, 13 Jul 2015 15:44:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFihhq092692; Mon, 13 Jul 2015 15:44:43 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFihvN092691; Mon, 13 Jul 2015 15:44:43 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFihvN092691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285463 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:44 -0000 Author: gjb Date: Mon Jul 13 15:44:42 2015 New Revision: 285463 URL: https://svnweb.freebsd.org/changeset/base/285463 Log: Fix revision for zoneinfo update. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:40 2015 (r285462) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:42 2015 (r285463) @@ -477,7 +477,7 @@ The &man.file.1; utility has been updated to version 5.23. - Timezone data files have been updated to + Timezone data files have been updated to version 2015e. sendmail has From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:46 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9AD6699B793; Mon, 13 Jul 2015 15:44:46 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7CBBF196E; Mon, 13 Jul 2015 15:44:46 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFikKs092739; Mon, 13 Jul 2015 15:44:46 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFik10092738; Mon, 13 Jul 2015 15:44:46 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFik10092738@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285464 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:46 -0000 Author: gjb Date: Mon Jul 13 15:44:45 2015 New Revision: 285464 URL: https://svnweb.freebsd.org/changeset/base/285464 Log: Document r282613, nc(1) update to OpenBSD 5.7's version. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:42 2015 (r285463) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:45 2015 (r285464) @@ -468,6 +468,9 @@ &man.resolvconf.8; utility has been updated to version 3.7.0. + The &man.nc.1; utility has been updated + to the OpenBSD 5.7 version. + bmake has been updated to version 20150606. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:49 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E5D199B7B7; Mon, 13 Jul 2015 15:44:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 F22A41A1B; Mon, 13 Jul 2015 15:44:48 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFimsc092797; Mon, 13 Jul 2015 15:44:48 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFimlT092796; Mon, 13 Jul 2015 15:44:48 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFimlT092796@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285465 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:49 -0000 Author: gjb Date: Mon Jul 13 15:44:47 2015 New Revision: 285465 URL: https://svnweb.freebsd.org/changeset/base/285465 Log: Document r284683, ttyu{1,2,3} enabled by default on arm. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:45 2015 (r285464) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:47 2015 (r285465) @@ -1208,6 +1208,12 @@ geom_eli_passphrase_prompt="YES" to &man.loader.conf.5;. + The &man.ttys.5; file for &os;/&arch.arm; has been + updated to enable ttyu1, + ttyu2, and ttyu3 by + default, if the callin port is an active console port. + The memory test run at boot time on &os;/&arch.amd64; platforms has been disabled by default. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:51 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4105499B7CF; Mon, 13 Jul 2015 15:44:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 152F71AA4; Mon, 13 Jul 2015 15:44:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFioNQ092857; Mon, 13 Jul 2015 15:44:50 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFio89092854; Mon, 13 Jul 2015 15:44:50 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFio89092854@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285466 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:51 -0000 Author: gjb Date: Mon Jul 13 15:44:50 2015 New Revision: 285466 URL: https://svnweb.freebsd.org/changeset/base/285466 Log: Document r273955, growfs rc(8) script addition. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:47 2015 (r285465) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:50 2015 (r285466) @@ -552,6 +552,11 @@ iovctl, has been added, which allows automatically starting the &man.iovctl.8; utility at boot. + + A new &man.rc.8; script, + growfs, has been added, which will resize + the root filesystem on boot if /firstboot + exists. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:53 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7DEA99B7F5; Mon, 13 Jul 2015 15:44:53 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8C8371B45; Mon, 13 Jul 2015 15:44:53 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFirVu092933; Mon, 13 Jul 2015 15:44:53 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFirRU092932; Mon, 13 Jul 2015 15:44:53 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFirRU092932@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285467 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:53 -0000 Author: gjb Date: Mon Jul 13 15:44:52 2015 New Revision: 285467 URL: https://svnweb.freebsd.org/changeset/base/285467 Log: Sort by previous commit by revision ID. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:50 2015 (r285466) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:52 2015 (r285467) @@ -542,6 +542,11 @@ If LOCALBASE is unset, it defaults to /usr/local. + A new &man.rc.8; script, + growfs, has been added, which will resize + the root filesystem on boot if /firstboot + exists. + The mrouted &man.rc.8; script has been removed from the base system. An equivalent script is available from the iovctl, has been added, which allows automatically starting the &man.iovctl.8; utility at boot. - - A new &man.rc.8; script, - growfs, has been added, which will resize - the root filesystem on boot if /firstboot - exists. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:56 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49A8B99B814; Mon, 13 Jul 2015 15:44:56 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 17EE61C15; Mon, 13 Jul 2015 15:44:56 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFitXf092986; Mon, 13 Jul 2015 15:44:55 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFitrr092985; Mon, 13 Jul 2015 15:44:55 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFitrr092985@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285468 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:56 -0000 Author: gjb Date: Mon Jul 13 15:44:55 2015 New Revision: 285468 URL: https://svnweb.freebsd.org/changeset/base/285468 Log: Document r262955, 3wire ttys class. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:52 2015 (r285467) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:55 2015 (r285468) @@ -1222,6 +1222,11 @@ The memory test run at boot time on &os;/&arch.amd64; platforms has been disabled by default. + + A new &man.ttys.5; class, + 3wire, has been added. This is similar to + the existing terminal classes, but does not have a defined + baudrate. From owner-svn-src-head@freebsd.org Mon Jul 13 15:44:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0F5799B843; Mon, 13 Jul 2015 15:44:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 620051CBC; Mon, 13 Jul 2015 15:44:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFiwNW093037; Mon, 13 Jul 2015 15:44:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFiwQ3093036; Mon, 13 Jul 2015 15:44:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131544.t6DFiwQ3093036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:44:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285469 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:44:58 -0000 Author: gjb Date: Mon Jul 13 15:44:57 2015 New Revision: 285469 URL: https://svnweb.freebsd.org/changeset/base/285469 Log: Document r282693, native FreeBSD/arm build support in release tools. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:55 2015 (r285468) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:57 2015 (r285469) @@ -1394,6 +1394,13 @@ Release Engineering build tools have been updated to include support for building &os;/&arch.arm64; virtual machine and memory stick installation images. + + The + Release Engineering build tools have been updated to support + building &os;/&arch.arm; images without external utilities for + supported boards where a corresponding + u-boot port exists in the Ports + Collection. From owner-svn-src-head@freebsd.org Mon Jul 13 15:45:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E14299B877; Mon, 13 Jul 2015 15:45:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 08F4D1DE2; Mon, 13 Jul 2015 15:45:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFj2WT093192; Mon, 13 Jul 2015 15:45:02 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFj21Z093191; Mon, 13 Jul 2015 15:45:02 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131545.t6DFj21Z093191@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:45:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285471 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:45:03 -0000 Author: gjb Date: Mon Jul 13 15:45:02 2015 New Revision: 285471 URL: https://svnweb.freebsd.org/changeset/base/285471 Log: Document r283307, mkimg(1) now used for i386 memstick images. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:59 2015 (r285470) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:45:02 2015 (r285471) @@ -1409,6 +1409,11 @@ supported boards where a corresponding u-boot port exists in the Ports Collection. + + The + &os;/&arch.i386; memory stick installation images are now + created using the &man.mkimg.1; utility, matching the way + the &os;/&arch.amd64; images are created. From owner-svn-src-head@freebsd.org Mon Jul 13 15:45:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C51CF99B861; Mon, 13 Jul 2015 15:45:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 941F81D43; Mon, 13 Jul 2015 15:45:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFj0Cx093117; Mon, 13 Jul 2015 15:45:00 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFj0Kf093116; Mon, 13 Jul 2015 15:45:00 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131545.t6DFj0Kf093116@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 15:45:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285470 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:45:00 -0000 Author: gjb Date: Mon Jul 13 15:44:59 2015 New Revision: 285470 URL: https://svnweb.freebsd.org/changeset/base/285470 Log: Document r277216, 510.status-world-kernel addition. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:57 2015 (r285469) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 15:44:59 2015 (r285470) @@ -567,6 +567,14 @@ 110.clean-tmps has been updated to avoid crossing filesystem mount boundaries when cleaning files in /tmp. + + A new + &man.periodic.8; script, + 510.status-world-kernel, has been added, + which evaluates the running userland and kernel versions from + the &man.uname.1; -U and + -K arguments, and prints an error if the + system userland and kernel are not in sync. From owner-svn-src-head@freebsd.org Mon Jul 13 15:51:29 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A49EF99BBD5; Mon, 13 Jul 2015 15:51:29 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 959521A52; Mon, 13 Jul 2015 15:51:29 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DFpTfX096972; Mon, 13 Jul 2015 15:51:29 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DFpTmG096971; Mon, 13 Jul 2015 15:51:29 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201507131551.t6DFpTmG096971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 13 Jul 2015 15:51:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285481 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 15:51:29 -0000 Author: mav Date: Mon Jul 13 15:51:28 2015 New Revision: 285481 URL: https://svnweb.freebsd.org/changeset/base/285481 Log: Make role sysctl handling from r284727 less strict. Modified: head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Mon Jul 13 15:46:01 2015 (r285480) +++ head/sys/dev/isp/isp_freebsd.c Mon Jul 13 15:51:28 2015 (r285481) @@ -101,18 +101,15 @@ isp_role_sysctl(SYSCTL_HANDLER_ARGS) ISP_LOCK(isp); old = FCPARAM(isp, chan)->role; + /* We don't allow target mode switch from here. */ + value = (old & ISP_ROLE_TARGET) | (value & ISP_ROLE_INITIATOR); + /* If nothing has changed -- we are done. */ if (value == old) { ISP_UNLOCK(isp); return (0); } - /* We don't allow target mode switch from here. */ - if ((value ^ old) & ISP_ROLE_TARGET) { - ISP_UNLOCK(isp); - return (EPERM); - } - /* Actually change the role. */ error = isp_control(isp, ISPCTL_CHANGE_ROLE, chan, value); ISP_UNLOCK(isp); From owner-svn-src-head@freebsd.org Mon Jul 13 17:40:26 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07A7E99B419; Mon, 13 Jul 2015 17:40:26 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 EBF235F7; Mon, 13 Jul 2015 17:40:25 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DHePgM058028; Mon, 13 Jul 2015 17:40:25 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DHePjd058027; Mon, 13 Jul 2015 17:40:25 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507131740.t6DHePjd058027@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Mon, 13 Jul 2015 17:40:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285482 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 17:40:26 -0000 Author: allanjude (doc committer) Date: Mon Jul 13 17:40:24 2015 New Revision: 285482 URL: https://svnweb.freebsd.org/changeset/base/285482 Log: Fix a typo in bsdinstall A variable was misspelled resulting in chmod executing on the installer instead of on the target chroot PR: 191402 Submitted by: Martin Simmons Approved by: brueffer MFC after: 3 days Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3061 Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Mon Jul 13 15:51:28 2015 (r285481) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Mon Jul 13 17:40:24 2015 (r285482) @@ -1241,7 +1241,7 @@ zfs_create_boot() local dir for dir in /tmp /var/tmp; do f_eval_catch $funcname chmod "$CHMOD_MODE" 1777 \ - $BSDINSTALL_CHROOTDIR$dir || return $FAILURE + $BSDINSTALL_CHROOT$dir || return $FAILURE done # Create symlink(s) From owner-svn-src-head@freebsd.org Mon Jul 13 17:45:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4723999B4A4; Mon, 13 Jul 2015 17:45:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 38203AA0; Mon, 13 Jul 2015 17:45:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DHjNmb061455; Mon, 13 Jul 2015 17:45:23 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DHjNSn061454; Mon, 13 Jul 2015 17:45:23 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201507131745.t6DHjNSn061454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Mon, 13 Jul 2015 17:45:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285483 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 17:45:23 -0000 Author: cem Date: Mon Jul 13 17:45:22 2015 New Revision: 285483 URL: https://svnweb.freebsd.org/changeset/base/285483 Log: pipe_direct_write: Fix mismatched pipelock/unlock If a signal is caught in pipelock, causing it to fail, pipe_direct_write should not try to pipeunlock. Reported by: pho Differential Revision: https://reviews.freebsd.org/D3069 Reviewed by: kib Approved by: markj (mentor) MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/sys_pipe.c Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Mon Jul 13 17:40:24 2015 (r285482) +++ head/sys/kern/sys_pipe.c Mon Jul 13 17:45:22 2015 (r285483) @@ -946,9 +946,10 @@ pipe_direct_write(wpipe, uio) retry: PIPE_LOCK_ASSERT(wpipe, MA_OWNED); error = pipelock(wpipe, 1); - if (wpipe->pipe_state & PIPE_EOF) + if (error != 0) + goto error1; + if ((wpipe->pipe_state & PIPE_EOF) != 0) { error = EPIPE; - if (error) { pipeunlock(wpipe); goto error1; } From owner-svn-src-head@freebsd.org Mon Jul 13 18:19:27 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BDB999BAFF; Mon, 13 Jul 2015 18:19:27 +0000 (UTC) (envelope-from loos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 3BACF1C4D; Mon, 13 Jul 2015 18:19:27 +0000 (UTC) (envelope-from loos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIJRnf078779; Mon, 13 Jul 2015 18:19:27 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIJRYd078777; Mon, 13 Jul 2015 18:19:27 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201507131819.t6DIJRYd078777@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Mon, 13 Jul 2015 18:19:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285484 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:19:27 -0000 Author: loos Date: Mon Jul 13 18:19:26 2015 New Revision: 285484 URL: https://svnweb.freebsd.org/changeset/base/285484 Log: Bring a few simplifications to a10_gpio: o Return the real hardware state in gpio_pin_getflags() instead of keep the last state in an internal table. Now the driver returns the real state of pins (input/output and pull-up/pull-down) at all times. o Use a spin mutex. This is required by interrupts and the 1-wire code. o Use better variable names and place parentheses around them in MACROS. o Do not lock the driver when returning static data. Tested with gpioled(4) and DS1820 (1-wire) sensors on banana pi. Modified: head/sys/arm/allwinner/a10_gpio.c Modified: head/sys/arm/allwinner/a10_gpio.c ============================================================================== --- head/sys/arm/allwinner/a10_gpio.c Mon Jul 13 17:45:22 2015 (r285483) +++ head/sys/arm/allwinner/a10_gpio.c Mon Jul 13 18:19:26 2015 (r285484) @@ -82,18 +82,16 @@ struct a10_gpio_softc { bus_space_tag_t sc_bst; bus_space_handle_t sc_bsh; void * sc_intrhand; - int sc_gpio_npins; - struct gpio_pin sc_gpio_pins[A10_GPIO_PINS]; }; -#define A10_GPIO_LOCK(_sc) mtx_lock(&_sc->sc_mtx) -#define A10_GPIO_UNLOCK(_sc) mtx_unlock(&_sc->sc_mtx) -#define A10_GPIO_LOCK_ASSERT(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED) +#define A10_GPIO_LOCK(_sc) mtx_lock_spin(&(_sc)->sc_mtx) +#define A10_GPIO_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->sc_mtx) +#define A10_GPIO_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_OWNED) -#define A10_GPIO_GP_CFG(_bank, _pin) 0x00 + ((_bank) * 0x24) + ((_pin)<<2) +#define A10_GPIO_GP_CFG(_bank, _idx) 0x00 + ((_bank) * 0x24) + ((_idx) << 2) #define A10_GPIO_GP_DAT(_bank) 0x10 + ((_bank) * 0x24) -#define A10_GPIO_GP_DRV(_bank, _pin) 0x14 + ((_bank) * 0x24) + ((_pin)<<2) -#define A10_GPIO_GP_PUL(_bank, _pin) 0x1c + ((_bank) * 0x24) + ((_pin)<<2) +#define A10_GPIO_GP_DRV(_bank, _idx) 0x14 + ((_bank) * 0x24) + ((_idx) << 2) +#define A10_GPIO_GP_PUL(_bank, _idx) 0x1c + ((_bank) * 0x24) + ((_idx) << 2) #define A10_GPIO_GP_INT_CFG0 0x200 #define A10_GPIO_GP_INT_CFG1 0x204 @@ -116,106 +114,106 @@ a10_gpio_get_function(struct a10_gpio_so { uint32_t bank, func, offset; + /* Must be called with lock held. */ + A10_GPIO_LOCK_ASSERT(sc); + bank = pin / 32; - pin = pin - 32 * bank; - func = pin >> 3; + pin = pin % 32; offset = ((pin & 0x07) << 2); - A10_GPIO_LOCK(sc); - func = (A10_GPIO_READ(sc, A10_GPIO_GP_CFG(bank, func)) >> offset) & 7; - A10_GPIO_UNLOCK(sc); - - return (func); -} - -static uint32_t -a10_gpio_func_flag(uint32_t nfunc) -{ - - switch (nfunc) { + func = A10_GPIO_READ(sc, A10_GPIO_GP_CFG(bank, pin >> 3)); + switch ((func >> offset) & 0x7) { case A10_GPIO_INPUT: return (GPIO_PIN_INPUT); case A10_GPIO_OUTPUT: return (GPIO_PIN_OUTPUT); } + return (0); } static void a10_gpio_set_function(struct a10_gpio_softc *sc, uint32_t pin, uint32_t f) { - uint32_t bank, func, data, offset; + uint32_t bank, data, offset; /* Must be called with lock held. */ A10_GPIO_LOCK_ASSERT(sc); bank = pin / 32; - pin = pin - 32 * bank; - func = pin >> 3; + pin = pin % 32; offset = ((pin & 0x07) << 2); - data = A10_GPIO_READ(sc, A10_GPIO_GP_CFG(bank, func)); + data = A10_GPIO_READ(sc, A10_GPIO_GP_CFG(bank, pin >> 3)); data &= ~(7 << offset); data |= (f << offset); - A10_GPIO_WRITE(sc, A10_GPIO_GP_CFG(bank, func), data); + A10_GPIO_WRITE(sc, A10_GPIO_GP_CFG(bank, pin >> 3), data); +} + +static uint32_t +a10_gpio_get_pud(struct a10_gpio_softc *sc, uint32_t pin) +{ + uint32_t bank, offset, val; + + /* Must be called with lock held. */ + A10_GPIO_LOCK_ASSERT(sc); + + bank = pin / 32; + pin = pin % 32; + offset = ((pin & 0x0f) << 1); + + val = A10_GPIO_READ(sc, A10_GPIO_GP_PUL(bank, pin >> 4)); + switch ((val >> offset) & 0x3) { + case A10_GPIO_PULLDOWN: + return (GPIO_PIN_PULLDOWN); + case A10_GPIO_PULLUP: + return (GPIO_PIN_PULLUP); + } + + return (0); } static void a10_gpio_set_pud(struct a10_gpio_softc *sc, uint32_t pin, uint32_t state) { - uint32_t bank, offset, pull, val; + uint32_t bank, offset, val; /* Must be called with lock held. */ A10_GPIO_LOCK_ASSERT(sc); bank = pin / 32; - pin = pin - 32 * bank; - pull = pin >> 4; + pin = pin % 32; offset = ((pin & 0x0f) << 1); - val = A10_GPIO_READ(sc, A10_GPIO_GP_PUL(bank, pull)); + val = A10_GPIO_READ(sc, A10_GPIO_GP_PUL(bank, pin >> 4)); val &= ~(0x03 << offset); val |= (state << offset); - A10_GPIO_WRITE(sc, A10_GPIO_GP_PUL(bank, pull), val); + A10_GPIO_WRITE(sc, A10_GPIO_GP_PUL(bank, pin >> 4), val); } static void -a10_gpio_pin_configure(struct a10_gpio_softc *sc, struct gpio_pin *pin, - unsigned int flags) +a10_gpio_pin_configure(struct a10_gpio_softc *sc, uint32_t pin, uint32_t flags) { - A10_GPIO_LOCK(sc); + /* Must be called with lock held. */ + A10_GPIO_LOCK_ASSERT(sc); - /* - * Manage input/output. - */ - if (flags & (GPIO_PIN_INPUT|GPIO_PIN_OUTPUT)) { - pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT); - if (flags & GPIO_PIN_OUTPUT) { - pin->gp_flags |= GPIO_PIN_OUTPUT; - a10_gpio_set_function(sc, pin->gp_pin, - A10_GPIO_OUTPUT); - } else { - pin->gp_flags |= GPIO_PIN_INPUT; - a10_gpio_set_function(sc, pin->gp_pin, - A10_GPIO_INPUT); - } + /* Manage input/output. */ + if (flags & (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT)) { + if (flags & GPIO_PIN_OUTPUT) + a10_gpio_set_function(sc, pin, A10_GPIO_OUTPUT); + else + a10_gpio_set_function(sc, pin, A10_GPIO_INPUT); } /* Manage Pull-up/pull-down. */ - pin->gp_flags &= ~(GPIO_PIN_PULLUP|GPIO_PIN_PULLDOWN); - if (flags & (GPIO_PIN_PULLUP|GPIO_PIN_PULLDOWN)) { - if (flags & GPIO_PIN_PULLUP) { - pin->gp_flags |= GPIO_PIN_PULLUP; - a10_gpio_set_pud(sc, pin->gp_pin, A10_GPIO_PULLUP); - } else { - pin->gp_flags |= GPIO_PIN_PULLDOWN; - a10_gpio_set_pud(sc, pin->gp_pin, A10_GPIO_PULLDOWN); - } + if (flags & (GPIO_PIN_PULLUP | GPIO_PIN_PULLDOWN)) { + if (flags & GPIO_PIN_PULLUP) + a10_gpio_set_pud(sc, pin, A10_GPIO_PULLUP); + else + a10_gpio_set_pud(sc, pin, A10_GPIO_PULLDOWN); } else - a10_gpio_set_pud(sc, pin->gp_pin, A10_GPIO_NONE); - - A10_GPIO_UNLOCK(sc); + a10_gpio_set_pud(sc, pin, A10_GPIO_NONE); } static device_t @@ -239,20 +237,11 @@ a10_gpio_pin_max(device_t dev, int *maxp static int a10_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) { - struct a10_gpio_softc *sc = device_get_softc(dev); - int i; - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } - - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); - A10_GPIO_LOCK(sc); - *caps = sc->sc_gpio_pins[i].gp_caps; - A10_GPIO_UNLOCK(sc); + *caps = A10_GPIO_DEFAULT_CAPS; return (0); } @@ -260,19 +249,15 @@ a10_gpio_pin_getcaps(device_t dev, uint3 static int a10_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags) { - struct a10_gpio_softc *sc = device_get_softc(dev); - int i; - - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } + struct a10_gpio_softc *sc; - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); + sc = device_get_softc(dev); A10_GPIO_LOCK(sc); - *flags = sc->sc_gpio_pins[i].gp_flags; + *flags = a10_gpio_get_function(sc, pin); + *flags |= a10_gpio_get_pud(sc, pin); A10_GPIO_UNLOCK(sc); return (0); @@ -281,20 +266,15 @@ a10_gpio_pin_getflags(device_t dev, uint static int a10_gpio_pin_getname(device_t dev, uint32_t pin, char *name) { - struct a10_gpio_softc *sc = device_get_softc(dev); - int i; + uint32_t bank; - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } - - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); - A10_GPIO_LOCK(sc); - memcpy(name, sc->sc_gpio_pins[i].gp_name, GPIOMAXNAME); - A10_GPIO_UNLOCK(sc); + bank = pin / 32; + snprintf(name, GPIOMAXNAME - 1, "pin %d (P%c%d)", + pin, bank + 'A', pin % 32); + name[GPIOMAXNAME - 1] = '\0'; return (0); } @@ -302,18 +282,15 @@ a10_gpio_pin_getname(device_t dev, uint3 static int a10_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) { - struct a10_gpio_softc *sc = device_get_softc(dev); - int i; - - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } + struct a10_gpio_softc *sc; - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); - a10_gpio_pin_configure(sc, &sc->sc_gpio_pins[i], flags); + sc = device_get_softc(dev); + A10_GPIO_LOCK(sc); + a10_gpio_pin_configure(sc, pin, flags); + A10_GPIO_UNLOCK(sc); return (0); } @@ -321,28 +298,22 @@ a10_gpio_pin_setflags(device_t dev, uint static int a10_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value) { - struct a10_gpio_softc *sc = device_get_softc(dev); - uint32_t bank, offset, data; - int i; - - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } + struct a10_gpio_softc *sc; + uint32_t bank, data; - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); bank = pin / 32; - pin = pin - 32 * bank; - offset = pin & 0x1f; + pin = pin % 32; + sc = device_get_softc(dev); A10_GPIO_LOCK(sc); data = A10_GPIO_READ(sc, A10_GPIO_GP_DAT(bank)); if (value) - data |= (1 << offset); + data |= (1 << pin); else - data &= ~(1 << offset); + data &= ~(1 << pin); A10_GPIO_WRITE(sc, A10_GPIO_GP_DAT(bank), data); A10_GPIO_UNLOCK(sc); @@ -352,26 +323,20 @@ a10_gpio_pin_set(device_t dev, uint32_t static int a10_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val) { - struct a10_gpio_softc *sc = device_get_softc(dev); - uint32_t bank, offset, reg_data; - int i; - - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } + struct a10_gpio_softc *sc; + uint32_t bank, reg_data; - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); bank = pin / 32; - pin = pin - 32 * bank; - offset = pin & 0x1f; + pin = pin % 32; + sc = device_get_softc(dev); A10_GPIO_LOCK(sc); reg_data = A10_GPIO_READ(sc, A10_GPIO_GP_DAT(bank)); A10_GPIO_UNLOCK(sc); - *val = (reg_data & (1 << offset)) ? 1 : 0; + *val = (reg_data & (1 << pin)) ? 1 : 0; return (0); } @@ -379,28 +344,22 @@ a10_gpio_pin_get(device_t dev, uint32_t static int a10_gpio_pin_toggle(device_t dev, uint32_t pin) { - struct a10_gpio_softc *sc = device_get_softc(dev); - uint32_t bank, data, offset; - int i; - - for (i = 0; i < sc->sc_gpio_npins; i++) { - if (sc->sc_gpio_pins[i].gp_pin == pin) - break; - } + struct a10_gpio_softc *sc; + uint32_t bank, data; - if (i >= sc->sc_gpio_npins) + if (pin >= A10_GPIO_PINS) return (EINVAL); bank = pin / 32; - pin = pin - 32 * bank; - offset = pin & 0x1f; + pin = pin % 32; + sc = device_get_softc(dev); A10_GPIO_LOCK(sc); data = A10_GPIO_READ(sc, A10_GPIO_GP_DAT(bank)); - if (data & (1 << offset)) - data &= ~(1 << offset); + if (data & (1 << pin)) + data &= ~(1 << pin); else - data |= (1 << offset); + data |= (1 << pin); A10_GPIO_WRITE(sc, A10_GPIO_GP_DAT(bank), data); A10_GPIO_UNLOCK(sc); @@ -424,14 +383,14 @@ a10_gpio_probe(device_t dev) static int a10_gpio_attach(device_t dev) { - struct a10_gpio_softc *sc = device_get_softc(dev); - uint32_t func; - int i, rid; + int rid; phandle_t gpio; + struct a10_gpio_softc *sc; + sc = device_get_softc(dev); sc->sc_dev = dev; - mtx_init(&sc->sc_mtx, "a10 gpio", "gpio", MTX_DEF); + mtx_init(&sc->sc_mtx, "a10 gpio", "gpio", MTX_SPIN); rid = 0; sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, @@ -454,21 +413,10 @@ a10_gpio_attach(device_t dev) /* Find our node. */ gpio = ofw_bus_get_node(sc->sc_dev); - if (!OF_hasprop(gpio, "gpio-controller")) /* Node is not a GPIO controller. */ goto fail; - /* Initialize the software controlled pins. */ - for (i = 0; i < A10_GPIO_PINS; i++) { - snprintf(sc->sc_gpio_pins[i].gp_name, GPIOMAXNAME, - "pin %d", i); - func = a10_gpio_get_function(sc, i); - sc->sc_gpio_pins[i].gp_pin = i; - sc->sc_gpio_pins[i].gp_caps = A10_GPIO_DEFAULT_CAPS; - sc->sc_gpio_pins[i].gp_flags = a10_gpio_func_flag(func); - } - sc->sc_gpio_npins = i; a10_gpio_sc = sc; sc->sc_busdev = gpiobus_attach_bus(dev); if (sc->sc_busdev == NULL) From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:37 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AD1499C372; Mon, 13 Jul 2015 18:53:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7B83318DF; Mon, 13 Jul 2015 18:53:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrbD2099499; Mon, 13 Jul 2015 18:53:37 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrb7H099497; Mon, 13 Jul 2015 18:53:37 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrb7H099497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285486 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:37 -0000 Author: gjb Date: Mon Jul 13 18:53:36 2015 New Revision: 285486 URL: https://svnweb.freebsd.org/changeset/base/285486 Log: Document r276893, EFI support added to mkimg(1). Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:34 2015 (r285485) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:36 2015 (r285486) @@ -295,6 +295,11 @@ has been updated to support UTF-8, which additionally provides unicode support to &man.sh.1;. + The + &man.mkimg.1; utility has been updated to support the + MBR EFI partition + type. + The &man.ptrace.2; system call has been updated include support for Altivec registers on &os;/&arch.powerpc;. From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:35 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1641D99C35E; Mon, 13 Jul 2015 18:53:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 06D0218DC; Mon, 13 Jul 2015 18:53:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrYIA099445; Mon, 13 Jul 2015 18:53:34 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrYrs099444; Mon, 13 Jul 2015 18:53:34 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrYrs099444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285485 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:35 -0000 Author: gjb Date: Mon Jul 13 18:53:34 2015 New Revision: 285485 URL: https://svnweb.freebsd.org/changeset/base/285485 Log: Document r282465, apple-boot, apple-hfs, apple-ufs support in gpart(8). Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:19:26 2015 (r285484) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:34 2015 (r285485) @@ -1195,6 +1195,11 @@ Support for the disklabel64 partitioning scheme has been added to &man.gpart.8;. + + Support for the + apple-boot, apple-hfs, + and apple-ufs MBR + partitioning schemes have been added to &man.gpart.8;. From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:40 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 318B199C391; Mon, 13 Jul 2015 18:53:40 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 01C4E194B; Mon, 13 Jul 2015 18:53:40 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrdlo099547; Mon, 13 Jul 2015 18:53:39 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrdNC099546; Mon, 13 Jul 2015 18:53:39 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrdNC099546@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285487 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:40 -0000 Author: gjb Date: Mon Jul 13 18:53:38 2015 New Revision: 285487 URL: https://svnweb.freebsd.org/changeset/base/285487 Log: s/vs/versus/ to make igor(1) happy. Rewrap as result. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:36 2015 (r285486) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:38 2015 (r285487) @@ -495,12 +495,12 @@ example, instead of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet to have a more specific match, such as different map entries for - IPv6:0:0 vs IPv6:0. This change requires that configuration - data (including maps, files, classes, custom ruleset, etc.) - must use the same format, so make certain such configuration - data is upgrading. As a very simple check search for patterns - like 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the - old behavior, set the m4 option + IPv6:0:0 versus IPv6:0. This change requires that + configuration data (including maps, files, classes, custom + ruleset, etc.) must use the same format, so make certain such + configuration data is upgrading. As a very simple check + search for patterns like 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. + To return to the old behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or the cf option UseCompressedIPv6Addresses. From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:42 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ADAF899C3A6; Mon, 13 Jul 2015 18:53:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9C1BA1A32; Mon, 13 Jul 2015 18:53:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrgqa099595; Mon, 13 Jul 2015 18:53:42 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrgih099594; Mon, 13 Jul 2015 18:53:42 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrgih099594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285488 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:42 -0000 Author: gjb Date: Mon Jul 13 18:53:41 2015 New Revision: 285488 URL: https://svnweb.freebsd.org/changeset/base/285488 Log: Document r279139, mkimg(1) '-c' option. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:38 2015 (r285487) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:41 2015 (r285488) @@ -324,6 +324,11 @@ updated to link against the &man.libxo.3; shared library. + The &man.mkimg.1; utility has been + updated to version 20150222, adding the -c + argument which allows specifying the capacity of the target + disk image. + A regression in the &man.libarchive.3; library that would prevent a directory from being included in the archive when --one-file-system is used From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DFA2499C3CA; Mon, 13 Jul 2015 18:53:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B1C421ABE; Mon, 13 Jul 2015 18:53:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIriWh099644; Mon, 13 Jul 2015 18:53:44 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrile099643; Mon, 13 Jul 2015 18:53:44 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrile099643@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285489 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:45 -0000 Author: gjb Date: Mon Jul 13 18:53:43 2015 New Revision: 285489 URL: https://svnweb.freebsd.org/changeset/base/285489 Log: Reword previous mkimg(1) update. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:41 2015 (r285488) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:43 2015 (r285489) @@ -324,10 +324,9 @@ updated to link against the &man.libxo.3; shared library. - The &man.mkimg.1; utility has been - updated to version 20150222, adding the -c - argument which allows specifying the capacity of the target - disk image. + A new flag, -c, has + been added to the &man.mkimg.1; utility, which allows + specifying the capacity of the target disk image. A regression in the &man.libarchive.3; library that would prevent a directory from being included in From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82C5A99C3DB; Mon, 13 Jul 2015 18:53:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0B2441B6F; Mon, 13 Jul 2015 18:53:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrkIR099692; Mon, 13 Jul 2015 18:53:46 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrkvs099691; Mon, 13 Jul 2015 18:53:46 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrkvs099691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285490 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:47 -0000 Author: gjb Date: Mon Jul 13 18:53:46 2015 New Revision: 285490 URL: https://svnweb.freebsd.org/changeset/base/285490 Log: Sort (yet again) by revision number. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:43 2015 (r285489) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:46 2015 (r285490) @@ -311,14 +311,6 @@ devices. The &man.devctl.8; utility uses the new &man.devctl.3; library. - The - &man.uefisign.8; utility has been added. - - The &man.freebsd-update.8; utility has - been updated to prevent fetching updated binary patches when - a previous upgrade has not been thoroughly completed. - The &man.netstat.1; utility has been updated to link against the &man.libxo.3; shared @@ -328,6 +320,14 @@ been added to the &man.mkimg.1; utility, which allows specifying the capacity of the target disk image. + The + &man.uefisign.8; utility has been added. + + The &man.freebsd-update.8; utility has + been updated to prevent fetching updated binary patches when + a previous upgrade has not been thoroughly completed. + A regression in the &man.libarchive.3; library that would prevent a directory from being included in the archive when --one-file-system is used @@ -340,16 +340,22 @@ directory traversal when extracting an archive, similar to &man.tar.1;. + A race condition in &man.wc.1; that + would cause final results to be sent to &man.stderr.4; when + receiving the SIGINFO signal has been + fixed. + The &man.chflags.1;, &man.chgrp.1;, &man.chmod.1;, and &man.chown.8; utilities now affect symbolic links when the -R flag is specified, as documented in &man.symlink.7;. - A race condition in &man.wc.1; that - would cause final results to be sent to &man.stderr.4; when - receiving the SIGINFO signal has been - fixed. + The &man.date.1; utility has been + updated to print the modification time of the file passed as + an argument to the -r flag, improving + compatibility with the GNU &man.date.1; + utility behavior. The &man.pw.8; utility has been updated with a new flag, -R, that sets the root @@ -385,12 +391,6 @@ sponsor="&scaleengine;">The &man.fstyp.8; utility has been updated to be able to detect &man.zfs.8; and &man.geli.8; filesystems. - - The &man.date.1; utility has been - updated to print the modification time of the file passed as - an argument to the -r flag, improving - compatibility with the GNU &man.date.1; - utility behavior. From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:49 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B466999C3DF; Mon, 13 Jul 2015 18:53:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 82CC51C1F; Mon, 13 Jul 2015 18:53:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrnJi099746; Mon, 13 Jul 2015 18:53:49 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrnux099745; Mon, 13 Jul 2015 18:53:49 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrnux099745@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285491 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:49 -0000 Author: gjb Date: Mon Jul 13 18:53:48 2015 New Revision: 285491 URL: https://svnweb.freebsd.org/changeset/base/285491 Log: Remove duplicate file(1) version entry. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:46 2015 (r285490) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:48 2015 (r285491) @@ -419,9 +419,6 @@ Clang have been updated to version 3.4. - file has been - updated to version 5.22. - The binutils suite of utilities has been updated to include upstream patches that add new relocations for &arch.powerpc; From owner-svn-src-head@freebsd.org Mon Jul 13 18:53:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECD6F99C3F8; Mon, 13 Jul 2015 18:53:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B73371CB6; Mon, 13 Jul 2015 18:53:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DIrpkC099808; Mon, 13 Jul 2015 18:53:51 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DIrpVu099806; Mon, 13 Jul 2015 18:53:51 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507131853.t6DIrpVu099806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 18:53:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285492 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 18:53:52 -0000 Author: gjb Date: Mon Jul 13 18:53:50 2015 New Revision: 285492 URL: https://svnweb.freebsd.org/changeset/base/285492 Log: Sort by svn revision. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:48 2015 (r285491) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:53:50 2015 (r285492) @@ -477,15 +477,15 @@ The &man.nc.1; utility has been updated to the OpenBSD 5.7 version. - bmake has - been updated to version 20150606. - The &man.acpi.4; subsystem has been updated to version 20150515. The &man.file.1; utility has been updated to version 5.23. + bmake has + been updated to version 20150606. + Timezone data files have been updated to version 2015e. @@ -1005,10 +1005,6 @@ driver has been updated to correct performance counter sampling on G4 (MPC74xxx) and G5 class processors. - The &man.hwpmc.4; - driver has been updated to support the Freescale e500 - core. - The OpenCrypto framework has been @@ -1016,6 +1012,10 @@ AES-GCM modes, both of which have also been added to the &man.aesni.4; driver. + The &man.hwpmc.4; + driver has been updated to support the Freescale e500 + core. + The &man.ig4.4; driver has been added, providing support for the fourth generation &intel; I2C SMBus. @@ -1218,6 +1218,15 @@ Boot Loader Changes + The + memory test run at boot time on &os;/&arch.amd64; platforms + has been disabled by default. + + A new &man.ttys.5; class, + 3wire, has been added. This is similar to + the existing terminal classes, but does not have a defined + baudrate. + The &man.vt.4; driver has been made the default system console driver. The &man.syscons.4; driver is still available, and can be enabled by adding @@ -1237,15 +1246,6 @@ updated to enable ttyu1, ttyu2, and ttyu3 by default, if the callin port is an active console port. - - The - memory test run at boot time on &os;/&arch.amd64; platforms - has been disabled by default. - - A new &man.ttys.5; class, - 3wire, has been added. This is similar to - the existing terminal classes, but does not have a defined - baudrate. From owner-svn-src-head@freebsd.org Mon Jul 13 19:26:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3628D99CC28; Mon, 13 Jul 2015 19:26:03 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vps.rulingia.com (vps.rulingia.com [103.243.244.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps.rulingia.com", Issuer "CAcert Class 3 Root" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id A4860262; Mon, 13 Jul 2015 19:26:02 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from server.rulingia.com (c220-239-242-83.belrs5.nsw.optusnet.com.au [220.239.242.83]) by vps.rulingia.com (8.15.2/8.14.9) with ESMTPS id t6DJPi71015998 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Jul 2015 05:25:50 +1000 (AEST) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.14.9/8.14.9) with ESMTP id t6DJPdXs044560 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 14 Jul 2015 05:25:39 +1000 (AEST) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.14.9/8.14.9/Submit) id t6DJPcTF044559; Tue, 14 Jul 2015 05:25:38 +1000 (AEST) (envelope-from peter) Date: Tue, 14 Jul 2015 05:25:38 +1000 From: Peter Jeremy To: Mark Murray Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285439 - head/sys/dev/random Message-ID: <20150713192538.GF22240@server.rulingia.com> References: <201507130838.t6D8cLEZ076018@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="XvKFcGCOAo53UbWW" Content-Disposition: inline In-Reply-To: <201507130838.t6D8cLEZ076018@repo.freebsd.org> X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 19:26:03 -0000 --XvKFcGCOAo53UbWW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2015-Jul-13 08:38:21 +0000, Mark Murray wrote: >+ /* >+ * Belt-and-braces. >+ * Round up the read length to a crypto block size multiple, >+ * which is what the underlying generator is expecting. >+ * See the random_buf size requirements in the Yarrow/Fortuna code. >+ */ >+ read_len +=3D RANDOM_BLOCKSIZE; >+ read_len -=3D read_len % RANDOM_BLOCKSIZE; Note that if read_len was already a multiple of RANDOM_BLOCKSIZE, this will pad it by an additional RANDOM_BLOCKSIZE. I don't think this matters but it's not what the comment implies. (The comment also goes over 80 columns). --=20 Peter Jeremy --XvKFcGCOAo53UbWW Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJVpBCyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRFRUIyOTg2QzMwNjcxRTc0RTY1QzIyN0Ux NkE1OTdBMEU0QTIwQjM0AAoJEBall6Dkogs0viwP+QGhNPciPwB55B7xQicXu5j0 +u3q/yPDnS5rMoh++DpLwYtwrs/X5aYz/1lgblH/Hp+qdiNBYwpOq+9mAMti/v6n YDAU3/PmVpBxp9lCcIRCs1fLlloeulJp2PnHHSwyXixdkJ26Lj4en3nnAlG8ZG1E Ysx1XeZIAHjGxcR518DTd5UriXjkncczOGYXXBo5YkkYC2uK8yxBWD7U/MexOAxh IyMGbV0eymAsAFVLvq3XAtyI4bRIp8eTM9iNz+6phrpx9opZUesDlk4b7bJY7KtC 9lTglEElHdUV/4qftq/WlNNDYdBcFbf5WiKctnS68yyoLl3NNqJ+fViXKZ39OOku 5cvfFWzsuBm1rLARr589yoZNoP+lntpoGxXNNVPzFbBlQVw+oDAb+kLfrL/hrTxX OT9Q1nypwyDJGQSsYOU3PQIPryFPwQxOaZsuSmJMN0Q+GoTxB5umCaQutkoshu2p VGjdKYjDULrky1Kkfhi0fhhJYALciNMvkGfBETCikB1LxjV8JyZRoO7wvlsgIpB7 Um+WIUEpb1aN1pvCseWEI6avWA32XB5u4dSReJj0dQR4WWpn0SE0YDuseej8A0OY ye9ylbrl7xluvzw1/wmo7wZ3ruI8VyGSLdOas51KnioQ+YIm8843rm9NOEM034th NIAvaKAlqR12qBNXIAOs =9Tr6 -----END PGP SIGNATURE----- --XvKFcGCOAo53UbWW-- From owner-svn-src-head@freebsd.org Mon Jul 13 19:28:42 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EF9799CC92; Mon, 13 Jul 2015 19:28:42 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 C57446DF; Mon, 13 Jul 2015 19:28:41 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZEjP4-000D7N-0M; Mon, 13 Jul 2015 20:28:38 +0100 Subject: Re: svn commit: r285439 - head/sys/dev/random Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: <20150713192538.GF22240@server.rulingia.com> Date: Mon, 13 Jul 2015 20:28:31 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <21377AEE-2E04-47C1-9730-B2EB164D305A@FreeBSD.org> References: <201507130838.t6D8cLEZ076018@repo.freebsd.org> <20150713192538.GF22240@server.rulingia.com> To: Peter Jeremy X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 19:28:42 -0000 > On 13 Jul 2015, at 20:25, Peter Jeremy wrote: >=20 > On 2015-Jul-13 08:38:21 +0000, Mark Murray wrote: >> + /* >> + * Belt-and-braces. >> + * Round up the read length to a crypto block = size multiple, >> + * which is what the underlying generator is = expecting. >> + * See the random_buf size requirements in the = Yarrow/Fortuna code. >> + */ >> + read_len +=3D RANDOM_BLOCKSIZE; >> + read_len -=3D read_len % RANDOM_BLOCKSIZE; >=20 > Note that if read_len was already a multiple of RANDOM_BLOCKSIZE, this = will > pad it by an additional RANDOM_BLOCKSIZE. I don't think this matters = but > it's not what the comment implies. (The comment also goes over 80 = columns). Yes - this is overly conservative ;-) I=E2=80=99ve done a further tightening up, but I want to let it settle = and not churn the code. M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Mon Jul 13 20:07:10 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2929099C2E3; Mon, 13 Jul 2015 20:07:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1997D1E2D; Mon, 13 Jul 2015 20:07:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DK799i040629; Mon, 13 Jul 2015 20:07:09 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DK79Ks040628; Mon, 13 Jul 2015 20:07:09 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507132007.t6DK79Ks040628@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 20:07:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285500 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 20:07:10 -0000 Author: gjb Date: Mon Jul 13 20:07:09 2015 New Revision: 285500 URL: https://svnweb.freebsd.org/changeset/base/285500 Log: Document r273375, bhyve support for AMD processors with SVM/AMD-V. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 18:54:10 2015 (r285499) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:09 2015 (r285500) @@ -1064,6 +1064,11 @@ I/O, and uses hardware virtualization extensions for all other tasks, without the need for emulation. + The &man.bhyve.8; hypervisior has been + updated to support &amd; processors with + SVM and AMD-V hardware + extensions. + The &man.virtio.console.4; driver has been added, which provides an interface to VirtIO console devices through a &man.tty.4; device. From owner-svn-src-head@freebsd.org Mon Jul 13 20:07:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FAA799C2F5; Mon, 13 Jul 2015 20:07:13 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1EBE71E39; Mon, 13 Jul 2015 20:07:13 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DK7Cdm040678; Mon, 13 Jul 2015 20:07:12 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DK7CVB040675; Mon, 13 Jul 2015 20:07:12 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507132007.t6DK7CVB040675@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 20:07:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285501 - in head/release/doc: en_US.ISO8859-1/relnotes share/xml X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 20:07:13 -0000 Author: gjb Date: Mon Jul 13 20:07:11 2015 New Revision: 285501 URL: https://svnweb.freebsd.org/changeset/base/285501 Log: Document r282921, nvd(4) and nvme(4) included in GENERIC. Add Intel to sponsors.ent (note, &intel; cannot be used here). Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml head/release/doc/share/xml/sponsor.ent Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:09 2015 (r285500) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:11 2015 (r285501) @@ -770,6 +770,11 @@ &powerpc; processors has been overhaulded to improve concurrency. + The &man.nvd.4; and &man.nvme.4; drivers are + now included in the GENERIC kernel + configuration by default. + A new kernel configuration option, EM_MULTIQUEUE, has been added which enables Modified: head/release/doc/share/xml/sponsor.ent ============================================================================== --- head/release/doc/share/xml/sponsor.ent Mon Jul 13 20:07:09 2015 (r285500) +++ head/release/doc/share/xml/sponsor.ent Mon Jul 13 20:07:11 2015 (r285501) @@ -27,6 +27,7 @@ + From owner-svn-src-head@freebsd.org Mon Jul 13 20:07:15 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF1DC99C317; Mon, 13 Jul 2015 20:07:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B53A01ED1; Mon, 13 Jul 2015 20:07:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DK7Fs2040731; Mon, 13 Jul 2015 20:07:15 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DK7Fvq040730; Mon, 13 Jul 2015 20:07:15 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507132007.t6DK7Fvq040730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 20:07:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285502 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 20:07:16 -0000 Author: gjb Date: Mon Jul 13 20:07:14 2015 New Revision: 285502 URL: https://svnweb.freebsd.org/changeset/base/285502 Log: Document r278551, ral(4) support for Ralink RT5390 and RT5392 chipsets. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:11 2015 (r285501) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:14 2015 (r285502) @@ -972,6 +972,9 @@ been split into two separate modules, &man.gre.4; and &man.me.4;. + The &man.ral.4; driver has been updated + to support the RT5390 and RT5392 chipsets. + The &man.em.4; driver has been updated with improved transmission queue hang detection. From owner-svn-src-head@freebsd.org Mon Jul 13 20:07:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DEAB99C337; Mon, 13 Jul 2015 20:07:18 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 3593E1F95; Mon, 13 Jul 2015 20:07:18 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DK7Htu040783; Mon, 13 Jul 2015 20:07:17 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DK7H70040782; Mon, 13 Jul 2015 20:07:17 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507132007.t6DK7H70040782@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jul 2015 20:07:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285503 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 20:07:18 -0000 Author: gjb Date: Mon Jul 13 20:07:17 2015 New Revision: 285503 URL: https://svnweb.freebsd.org/changeset/base/285503 Log: Document r272906, pfil(9) default hash change. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:14 2015 (r285502) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Mon Jul 13 20:07:17 2015 (r285503) @@ -961,6 +961,11 @@ The &man.alc.4; driver has been updated to support AR816x and AR817x ethernet controllers. + The &man.pfil.9; interface default hash + has been changed from Jenkins to + Murmur3, providing a 3-percent performance + increase in packets-per-second. + The &man.vxlan.4; driver has been added, which creates a virtual Layer 2 (Ethernet) network overlaid in a Layer 3 (IP/UDP) network. The &man.vxlan.4; driver is From owner-svn-src-head@freebsd.org Mon Jul 13 21:01:26 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E151599CF20; Mon, 13 Jul 2015 21:01:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 D1E958A8; Mon, 13 Jul 2015 21:01:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DL1PPg073051; Mon, 13 Jul 2015 21:01:25 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DL1POd073050; Mon, 13 Jul 2015 21:01:25 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201507132101.t6DL1POd073050@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 13 Jul 2015 21:01:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285510 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 21:01:26 -0000 Author: mav Date: Mon Jul 13 21:01:24 2015 New Revision: 285510 URL: https://svnweb.freebsd.org/changeset/base/285510 Log: Switch initiator IDs in target mode to the same address space as target IDs in initiator mode -- index in port database instead of handlers. This makes initiator IDs persist across role changes and firmware resets, when handlers previously assigned by firmware are lost and reused. Sponsored by: iXsystems, Inc. Modified: head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Mon Jul 13 20:07:36 2015 (r285509) +++ head/sys/dev/isp/isp_freebsd.c Mon Jul 13 21:01:24 2015 (r285510) @@ -1898,10 +1898,10 @@ isp_target_start_ctio(ispsoftc_t *isp, u cto->ct_header.rqs_entry_count = 1; cto->ct_header.rqs_seqno |= ATPD_SEQ_NOTIFY_CAM; ATPD_SET_SEQNO(cto, atp); - if (ISP_CAP_2KLOGIN(isp) == 0) { - ((ct2e_entry_t *)cto)->ct_iid = cso->init_id; + if (ISP_CAP_2KLOGIN(isp)) { + ((ct2e_entry_t *)cto)->ct_iid = atp->nphdl; } else { - cto->ct_iid = cso->init_id; + cto->ct_iid = atp->nphdl; if (ISP_CAP_SCCFW(isp) == 0) { cto->ct_lun = ccb->ccb_h.target_lun; } @@ -2441,28 +2441,24 @@ isp_handle_platform_atio2(ispsoftc_t *is * We don't get 'suggested' sense data as we do with SCSI cards. */ atiop->sense_len = 0; - if (ISP_CAP_2KLOGIN(isp)) { - /* - * NB: We could not possibly have 2K logins if we - * NB: also did not have SCC FW. - */ - atiop->init_id = ((at2e_entry_t *)aep)->at_iid; - } else { - atiop->init_id = aep->at_iid; - } /* * If we're not in the port database, add ourselves. */ - if (!IS_2100(isp) && - (isp_find_pdb_by_handle(isp, 0, atiop->init_id, &lp) == 0 || - lp->state == FC_PORTDB_STATE_ZOMBIE)) { - uint64_t iid = - (((uint64_t) aep->at_wwpn[0]) << 48) | - (((uint64_t) aep->at_wwpn[1]) << 32) | - (((uint64_t) aep->at_wwpn[2]) << 16) | - (((uint64_t) aep->at_wwpn[3]) << 0); - isp_add_wwn_entry(isp, 0, iid, atiop->init_id, PORT_ANY, 0); + if (IS_2100(isp)) + atiop->init_id = nphdl; + else { + if ((isp_find_pdb_by_handle(isp, 0, nphdl, &lp) == 0 || + lp->state == FC_PORTDB_STATE_ZOMBIE)) { + uint64_t iid = + (((uint64_t) aep->at_wwpn[0]) << 48) | + (((uint64_t) aep->at_wwpn[1]) << 32) | + (((uint64_t) aep->at_wwpn[2]) << 16) | + (((uint64_t) aep->at_wwpn[3]) << 0); + isp_add_wwn_entry(isp, 0, iid, nphdl, PORT_ANY, 0); + isp_find_pdb_by_handle(isp, 0, nphdl, &lp); + } + atiop->init_id = FC_PORTDB_TGT(isp, 0, lp); } atiop->cdb_len = ATIO2_CDBLEN; ISP_MEMCPY(atiop->cdb_io.cdb_bytes, aep->at_cdb, ATIO2_CDBLEN); @@ -2491,7 +2487,7 @@ isp_handle_platform_atio2(ispsoftc_t *is atp->orig_datalen = aep->at_datalen; atp->bytes_xfered = 0; atp->lun = lun; - atp->nphdl = atiop->init_id; + atp->nphdl = nphdl; atp->sid = PORT_ANY; atp->oxid = aep->at_oxid; atp->cdb0 = aep->at_cdb[0]; @@ -2520,7 +2516,6 @@ isp_handle_platform_atio7(ispsoftc_t *is int cdbxlen; uint16_t lun, chan, nphdl = NIL_HANDLE; uint32_t did, sid; - uint64_t wwn = INI_NONE; fcportdb_t *lp; tstate_t *tptr; struct ccb_accept_tio *atiop; @@ -2588,7 +2583,6 @@ isp_handle_platform_atio7(ispsoftc_t *is return; } nphdl = lp->handle; - wwn = lp->port_wwn; /* * Get the tstate pointer @@ -2676,7 +2670,7 @@ isp_handle_platform_atio7(ispsoftc_t *is SLIST_REMOVE_HEAD(&tptr->atios, sim_links.sle); tptr->atio_count--; ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, atiop->ccb_h.path, "Take FREE ATIO count now %d\n", tptr->atio_count); - atiop->init_id = nphdl; + atiop->init_id = FC_PORTDB_TGT(isp, chan, lp); atiop->ccb_h.target_id = FCPARAM(isp, chan)->isp_loopid; atiop->ccb_h.target_lun = lun; atiop->sense_len = 0; @@ -3090,7 +3084,7 @@ isp_handle_platform_notify_fc(ispsoftc_t { tstate_t *tptr; uint16_t lun; - uint32_t loopid; + uint32_t loopid, sid; uint64_t wwn; atio_private_data_t *atp; fcportdb_t *lp; @@ -3108,8 +3102,10 @@ isp_handle_platform_notify_fc(ispsoftc_t } if (isp_find_pdb_by_handle(isp, 0, loopid, &lp)) { wwn = lp->port_wwn; + sid = lp->portid; } else { wwn = INI_ANY; + sid = PORT_ANY; } tptr = get_lun_statep(isp, 0, lun); if (tptr == NULL) { @@ -3141,7 +3137,7 @@ isp_handle_platform_notify_fc(ispsoftc_t nt->nt_tgt = FCPARAM(isp, 0)->isp_wwpn; nt->nt_wwn = wwn; nt->nt_nphdl = loopid; - nt->nt_sid = PORT_ANY; + nt->nt_sid = sid; nt->nt_did = PORT_ANY; nt->nt_lun = lun; nt->nt_need_ack = 1; @@ -3453,10 +3449,11 @@ isp_handle_platform_target_tmf(ispsoftc_ goto bad; } - if (isp_find_pdb_by_sid(isp, notify->nt_channel, notify->nt_sid, &lp) == 0) { + if (isp_find_pdb_by_sid(isp, notify->nt_channel, notify->nt_sid, &lp) == 0 && + isp_find_pdb_by_handle(isp, notify->nt_channel, notify->nt_nphdl, &lp) == 0) { inot->initiator_id = CAM_TARGET_WILDCARD; } else { - inot->initiator_id = lp->handle; + inot->initiator_id = FC_PORTDB_TGT(isp, notify->nt_channel, lp); } inot->seq_id = notify->nt_tagval; inot->tag_id = notify->nt_tagval >> 32; @@ -4666,7 +4663,7 @@ isp_gdt_task(void *arg, int pending) adc = (struct ac_device_changed *) ac.contract_data; adc->wwpn = lp->port_wwn; adc->port = lp->portid; - adc->target = lp->handle; + adc->target = dbidx; adc->arrived = 0; xpt_async(AC_CONTRACT, fc->path, &ac); } @@ -4753,7 +4750,7 @@ isp_ldt_task(void *arg, int pending) adc = (struct ac_device_changed *) ac.contract_data; adc->wwpn = lp->port_wwn; adc->port = lp->portid; - adc->target = lp->handle; + adc->target = dbidx; adc->arrived = 0; xpt_async(AC_CONTRACT, fc->path, &ac); } @@ -5757,7 +5754,7 @@ isp_async(ispsoftc_t *isp, ispasync_t cm adc = (struct ac_device_changed *) ac.contract_data; adc->wwpn = lp->port_wwn; adc->port = lp->portid; - adc->target = lp->handle; + adc->target = tgt; adc->arrived = 1; xpt_async(AC_CONTRACT, fc->path, &ac); } @@ -5792,7 +5789,7 @@ changed: adc = (struct ac_device_changed *) ac.contract_data; adc->wwpn = lp->port_wwn; adc->port = lp->portid; - adc->target = lp->handle; + adc->target = tgt; adc->arrived = lp->is_initiator; xpt_async(AC_CONTRACT, fc->path, &ac); } From owner-svn-src-head@freebsd.org Mon Jul 13 22:36:50 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3AA8E99513B; Mon, 13 Jul 2015 22:36:50 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "gold.funkthat.com", Issuer "gold.funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1B98E1881; Mon, 13 Jul 2015 22:36:49 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.14.5/8.14.5) with ESMTP id t6DMamCR030115 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 13 Jul 2015 15:36:48 -0700 (PDT) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.14.5/8.14.5/Submit) id t6DMamaH030112; Mon, 13 Jul 2015 15:36:48 -0700 (PDT) (envelope-from jmg) Date: Mon, 13 Jul 2015 15:36:48 -0700 From: John-Mark Gurney To: George Neville-Neil Cc: "Matthew D. Fuller" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285336 - in head/sys: netipsec opencrypto Message-ID: <20150713223647.GO8523@funkthat.com> References: <201507091816.t69IGawf097288@repo.freebsd.org> <20150711044843.GG96394@over-yonder.net> <20150711075705.GC8523@funkthat.com> <815B402A-A14F-40F7-91CA-899C7A9597B3@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <815B402A-A14F-40F7-91CA-899C7A9597B3@freebsd.org> X-Operating-System: FreeBSD 9.1-PRERELEASE amd64 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (gold.funkthat.com [127.0.0.1]); Mon, 13 Jul 2015 15:36:49 -0700 (PDT) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 22:36:50 -0000 George V. Neville-Neil wrote this message on Mon, Jul 13, 2015 at 11:25 -0400: > On 11 Jul 2015, at 3:57, John-Mark Gurney wrote: > > > Matthew D. Fuller wrote this message on Fri, Jul 10, 2015 at 23:48 > > -0500: > >> On Thu, Jul 09, 2015 at 06:16:36PM +0000 I heard the voice of > >> George V. Neville-Neil, and lo! it spake thus: > >>> New Revision: 285336 > >>> URL: https://svnweb.freebsd.org/changeset/base/285336 > >>> > >>> Log: > >>> Add support for AES modes to IPSec. These modes work both in > >>> software only > >>> mode and with hardware support on systems that have AESNI > >>> instructions. > >> > >> With (apparently) this change, I can trigger a panic at will by > >> running > >> > >> % geli onetime -e AES-XTS -d /dev/ada0s1 > >> > >> My best guess is that it comes from > >> > >>> -#define RIJNDAEL128_BLOCK_LEN 16 > >>> +#define AES_MIN_BLOCK_LEN 1 > >> > >>> - RIJNDAEL128_BLOCK_LEN, 8, 32, 64, > >>> + AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, > >>> AES_XTS_MAX_KEY, > >> > >> changing that first arg from 16 to 1. It seems to be avoided with > >> the > >> following patch: > >> > >> ------8K-------- > >> > >> Index: sys/opencrypto/xform.c > >> =================================================================== > >> --- sys/opencrypto/xform.c (revision 285365) > >> +++ sys/opencrypto/xform.c (working copy) > >> @@ -257,7 +257,7 @@ > >> > >> struct enc_xform enc_xform_aes_xts = { > >> CRYPTO_AES_XTS, "AES-XTS", > >> - AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, > >> AES_XTS_MAX_KEY, > >> + AES_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, > >> aes_xts_encrypt, > >> aes_xts_decrypt, > >> aes_xts_setkey, > >> > >> ------8K-------- > >> > >> at least in a little testing here. If that's the actual fix, some of > >> the other MIN_BLOCK_LEN changes in GCM and GMAC are probably suspect > >> too. > >> > >> > >> (I also wonder why AES-ICM is still using the RIJNDAEL128 #defines; > >> shouldn't it be using the AES's too? But that's cosmtic...) > > > > Our XTS though should be a block size of 1, doesn't implement > > cipher text stealing, so still must be 16... I assumed that the values > > of all the defines did not change... That is clearly not the case... > > > > gnn, can you please make sure that the tables in xform.c match before > > your change? If you think there needs to be a value changed, please > > run it by me.. > > > > Correct, I changed it from the RIJNDAEL value to the "correct" minimum > value > of 1. I can do a followup commit to bump it back to 16 if that's what > you think > it ought to be. The function swcr_encdec requires that the blocksize (of their xform entry) be the cipher block size and nothing else... If it is anything else, then the results will be incorrect, and likely buffer overflows and other bad things may happen... Please ensure that ALL constants of the xform tables match exactly what they were before... If there are any deviations that you believe are required, let me review them to make sure they won't break anything... The name AES_MIN_BLOCK_LEN is bad and needs to be removed... There is only one AES block size and that is 16... It cannot be longer or shorter... Any shorter or longer block size is an additional construction on top of AES and that would need to be added to the name... -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." From owner-svn-src-head@freebsd.org Mon Jul 13 22:39:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7FA0995170; Mon, 13 Jul 2015 22:39:03 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "gold.funkthat.com", Issuer "gold.funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 9B86919F3; Mon, 13 Jul 2015 22:39:03 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.14.5/8.14.5) with ESMTP id t6DMd2mU030489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 13 Jul 2015 15:39:02 -0700 (PDT) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.14.5/8.14.5/Submit) id t6DMd245030488; Mon, 13 Jul 2015 15:39:02 -0700 (PDT) (envelope-from jmg) Date: Mon, 13 Jul 2015 15:39:02 -0700 From: John-Mark Gurney To: George Neville-Neil Cc: "Matthew D. Fuller" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285336 - in head/sys: netipsec opencrypto Message-ID: <20150713223902.GP8523@funkthat.com> References: <201507091816.t69IGawf097288@repo.freebsd.org> <20150711044843.GG96394@over-yonder.net> <20150711075705.GC8523@funkthat.com> <815B402A-A14F-40F7-91CA-899C7A9597B3@freebsd.org> <20150713223647.GO8523@funkthat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150713223647.GO8523@funkthat.com> X-Operating-System: FreeBSD 9.1-PRERELEASE amd64 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (gold.funkthat.com [127.0.0.1]); Mon, 13 Jul 2015 15:39:03 -0700 (PDT) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 22:39:03 -0000 John-Mark Gurney wrote this message on Mon, Jul 13, 2015 at 15:36 -0700: > George V. Neville-Neil wrote this message on Mon, Jul 13, 2015 at 11:25 -0400: > > On 11 Jul 2015, at 3:57, John-Mark Gurney wrote: > > > > > Matthew D. Fuller wrote this message on Fri, Jul 10, 2015 at 23:48 > > > -0500: > > >> On Thu, Jul 09, 2015 at 06:16:36PM +0000 I heard the voice of > > >> George V. Neville-Neil, and lo! it spake thus: > > >>> New Revision: 285336 > > >>> URL: https://svnweb.freebsd.org/changeset/base/285336 > > >>> > > >>> Log: > > >>> Add support for AES modes to IPSec. These modes work both in > > >>> software only > > >>> mode and with hardware support on systems that have AESNI > > >>> instructions. > > >> > > >> With (apparently) this change, I can trigger a panic at will by > > >> running > > >> > > >> % geli onetime -e AES-XTS -d /dev/ada0s1 > > >> > > >> My best guess is that it comes from > > >> > > >>> -#define RIJNDAEL128_BLOCK_LEN 16 > > >>> +#define AES_MIN_BLOCK_LEN 1 > > >> > > >>> - RIJNDAEL128_BLOCK_LEN, 8, 32, 64, > > >>> + AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, > > >>> AES_XTS_MAX_KEY, > > >> > > >> changing that first arg from 16 to 1. It seems to be avoided with > > >> the > > >> following patch: > > >> > > >> ------8K-------- > > >> > > >> Index: sys/opencrypto/xform.c > > >> =================================================================== > > >> --- sys/opencrypto/xform.c (revision 285365) > > >> +++ sys/opencrypto/xform.c (working copy) > > >> @@ -257,7 +257,7 @@ > > >> > > >> struct enc_xform enc_xform_aes_xts = { > > >> CRYPTO_AES_XTS, "AES-XTS", > > >> - AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, > > >> AES_XTS_MAX_KEY, > > >> + AES_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, > > >> aes_xts_encrypt, > > >> aes_xts_decrypt, > > >> aes_xts_setkey, > > >> > > >> ------8K-------- > > >> > > >> at least in a little testing here. If that's the actual fix, some of > > >> the other MIN_BLOCK_LEN changes in GCM and GMAC are probably suspect > > >> too. > > >> > > >> > > >> (I also wonder why AES-ICM is still using the RIJNDAEL128 #defines; > > >> shouldn't it be using the AES's too? But that's cosmtic...) > > > > > > Our XTS though should be a block size of 1, doesn't implement > > > cipher text stealing, so still must be 16... I assumed that the values > > > of all the defines did not change... That is clearly not the case... > > > > > > gnn, can you please make sure that the tables in xform.c match before > > > your change? If you think there needs to be a value changed, please > > > run it by me.. > > > > > > > Correct, I changed it from the RIJNDAEL value to the "correct" minimum > > value > > of 1. I can do a followup commit to bump it back to 16 if that's what > > you think > > it ought to be. > > The function swcr_encdec requires that the blocksize (of their xform > entry) be the cipher block size and nothing else... If it is anything > else, then the results will be incorrect, and likely buffer overflows > and other bad things may happen... > > Please ensure that ALL constants of the xform tables match exactly what > they were before... If there are any deviations that you believe are > required, let me review them to make sure they won't break anything... > > The name AES_MIN_BLOCK_LEN is bad and needs to be removed... There is > only one AES block size and that is 16... It cannot be longer or > shorter... Any shorter or longer block size is an additional > construction on top of AES and that would need to be added to the > name... P.S. There are tests in /usr/tests that you can run to verify that a large number of the ciphers are working properly. Easiest way to run them: pkg install python nist-kat cd /usr/tests/sys/opencrypto sh runtests You should skip two tests and the others should all pass. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." From owner-svn-src-head@freebsd.org Mon Jul 13 22:52:12 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4EFD99553D; Mon, 13 Jul 2015 22:52:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 96197118F; Mon, 13 Jul 2015 22:52:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6DMqCxF032272; Mon, 13 Jul 2015 22:52:12 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6DMqCPx032271; Mon, 13 Jul 2015 22:52:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507132252.t6DMqCPx032271@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jul 2015 22:52:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285511 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jul 2015 22:52:12 -0000 Author: mjg Date: Mon Jul 13 22:52:11 2015 New Revision: 285511 URL: https://svnweb.freebsd.org/changeset/base/285511 Log: racct: perform a lockless check for p_throttled This reduces proc lock contention. Reviewed by: trasz Modified: head/sys/kern/subr_trap.c Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Mon Jul 13 21:01:24 2015 (r285510) +++ head/sys/kern/subr_trap.c Mon Jul 13 22:52:11 2015 (r285511) @@ -172,7 +172,7 @@ userret(struct thread *td, struct trapfr (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A")); #endif #ifdef RACCT - if (racct_enable) { + if (racct_enable && p->p_throttled == 1) { PROC_LOCK(p); while (p->p_throttled == 1) msleep(p->p_racct, &p->p_mtx, 0, "racct", 0); From owner-svn-src-head@freebsd.org Tue Jul 14 00:43:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17CCF999CBF; Tue, 14 Jul 2015 00:43:09 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 08DD211AF; Tue, 14 Jul 2015 00:43:09 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E0h8cU093147; Tue, 14 Jul 2015 00:43:08 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E0h8En093146; Tue, 14 Jul 2015 00:43:08 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507140043.t6E0h8En093146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 14 Jul 2015 00:43:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285512 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 00:43:09 -0000 Author: mjg Date: Tue Jul 14 00:43:08 2015 New Revision: 285512 URL: https://svnweb.freebsd.org/changeset/base/285512 Log: exec plug a redundant vref + vrele of the image vnode Modified: head/sys/kern/kern_exec.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Mon Jul 13 22:52:11 2015 (r285511) +++ head/sys/kern/kern_exec.c Tue Jul 14 00:43:08 2015 (r285512) @@ -600,9 +600,6 @@ interpret: vn_lock(imgp->vp, LK_SHARED | LK_RETRY); - /* Get a reference to the vnode prior to locking the proc */ - VREF(binvp); - /* * For security and other reasons, signal handlers cannot * be shared after an exec. The new process gets a copy of the old @@ -767,8 +764,8 @@ interpret: } /* - * Store the vp for use in procfs. This vnode was referenced prior - * to locking the proc lock. + * Store the vp for use in procfs. This vnode was referenced by namei + * or fgetvp_exec. */ textvp = p->p_textvp; p->p_textvp = binvp; @@ -850,8 +847,6 @@ done1: */ if (textvp != NULL) vrele(textvp); - if (error != 0) - vrele(binvp); #ifdef KTRACE if (tracevp != NULL) vrele(tracevp); @@ -877,7 +872,10 @@ exec_fail_dealloc: NDFREE(&nd, NDF_ONLY_PNBUF); if (imgp->opened) VOP_CLOSE(imgp->vp, FREAD, td->td_ucred, td); - vput(imgp->vp); + if (error != 0) + vput(imgp->vp); + else + VOP_UNLOCK(imgp->vp, 0); } if (imgp->object != NULL) From owner-svn-src-head@freebsd.org Tue Jul 14 01:13:38 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CACB799812D; Tue, 14 Jul 2015 01:13:38 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 AEF621EEE; Tue, 14 Jul 2015 01:13:38 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E1DcdI008568; Tue, 14 Jul 2015 01:13:38 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E1Dcra008567; Tue, 14 Jul 2015 01:13:38 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507140113.t6E1Dcra008567@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 14 Jul 2015 01:13:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285513 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:13:39 -0000 Author: mjg Date: Tue Jul 14 01:13:37 2015 New Revision: 285513 URL: https://svnweb.freebsd.org/changeset/base/285513 Log: exec: textvp -> oldtextvp; binvp -> newtextvp This makes it consistent with the rest of the naming in do_execve. No functional changes. Modified: head/sys/kern/kern_exec.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Tue Jul 14 00:43:08 2015 (r285512) +++ head/sys/kern/kern_exec.c Tue Jul 14 01:13:37 2015 (r285513) @@ -359,7 +359,7 @@ do_execve(td, args, mac_p) struct vnode *tracevp = NULL; struct ucred *tracecred = NULL; #endif - struct vnode *textvp = NULL, *binvp; + struct vnode *oldtextvp = NULL, *newtextvp; cap_rights_t rights; int credential_changing; int textset; @@ -433,20 +433,20 @@ interpret: if (error) goto exec_fail; - binvp = nd.ni_vp; - imgp->vp = binvp; + newtextvp = nd.ni_vp; + imgp->vp = newtextvp; } else { AUDIT_ARG_FD(args->fd); /* * Descriptors opened only with O_EXEC or O_RDONLY are allowed. */ error = fgetvp_exec(td, args->fd, - cap_rights_init(&rights, CAP_FEXECVE), &binvp); + cap_rights_init(&rights, CAP_FEXECVE), &newtextvp); if (error) goto exec_fail; - vn_lock(binvp, LK_EXCLUSIVE | LK_RETRY); - AUDIT_ARG_VNODE1(binvp); - imgp->vp = binvp; + vn_lock(newtextvp, LK_EXCLUSIVE | LK_RETRY); + AUDIT_ARG_VNODE1(newtextvp); + imgp->vp = newtextvp; } /* @@ -523,13 +523,13 @@ interpret: if (args->fname != NULL) NDFREE(&nd, NDF_ONLY_PNBUF); #ifdef MAC - mac_execve_interpreter_enter(binvp, &interpvplabel); + mac_execve_interpreter_enter(newtextvp, &interpvplabel); #endif if (imgp->opened) { - VOP_CLOSE(binvp, FREAD, td->td_ucred, td); + VOP_CLOSE(newtextvp, FREAD, td->td_ucred, td); imgp->opened = 0; } - vput(binvp); + vput(newtextvp); vm_object_deallocate(imgp->object); imgp->object = NULL; /* set new name to that of the interpreter */ @@ -630,7 +630,7 @@ interpret: if (args->fname) bcopy(nd.ni_cnd.cn_nameptr, p->p_comm, min(nd.ni_cnd.cn_namelen, MAXCOMLEN)); - else if (vn_commname(binvp, p->p_comm, sizeof(p->p_comm)) != 0) + else if (vn_commname(newtextvp, p->p_comm, sizeof(p->p_comm)) != 0) bcopy(fexecv_proc_title, p->p_comm, sizeof(fexecv_proc_title)); bcopy(p->p_comm, td->td_name, sizeof(td->td_name)); #ifdef KTR @@ -767,8 +767,8 @@ interpret: * Store the vp for use in procfs. This vnode was referenced by namei * or fgetvp_exec. */ - textvp = p->p_textvp; - p->p_textvp = binvp; + oldtextvp = p->p_textvp; + p->p_textvp = newtextvp; #ifdef KDTRACE_HOOKS /* @@ -845,8 +845,8 @@ done1: /* * Handle deferred decrement of ref counts. */ - if (textvp != NULL) - vrele(textvp); + if (oldtextvp != NULL) + vrele(oldtextvp); #ifdef KTRACE if (tracevp != NULL) vrele(tracevp); From owner-svn-src-head@freebsd.org Tue Jul 14 01:31:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7457F998815; Tue, 14 Jul 2015 01:31:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 646711A8E; Tue, 14 Jul 2015 01:31:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E1VwBw017186; Tue, 14 Jul 2015 01:31:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E1VwfB017165; Tue, 14 Jul 2015 01:31:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507140131.t6E1VwfB017165@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 01:31:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285514 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:31:58 -0000 Author: gjb Date: Tue Jul 14 01:31:57 2015 New Revision: 285514 URL: https://svnweb.freebsd.org/changeset/base/285514 Log: Document r271917, fix for panic when destroying vnet jail with gif(4). Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:13:37 2015 (r285513) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:31:57 2015 (r285514) @@ -698,6 +698,10 @@ and asttrapexit() functions instead of checking within addressed kernel space. + A kernel panic triggered when destroying + a &man.vnet.9; &man.jail.8; configured with &man.gif.4; has + been fixed. + A bug in &man.ipfw.4; that could potentially lead to a kernel panic when using &man.dummynet.4; at layer 2 has been fixed. From owner-svn-src-head@freebsd.org Tue Jul 14 01:32:01 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04165998825; Tue, 14 Jul 2015 01:32:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E902F1A95; Tue, 14 Jul 2015 01:32:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E1W0ZQ018085; Tue, 14 Jul 2015 01:32:00 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E1W0Dd018084; Tue, 14 Jul 2015 01:32:00 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507140132.t6E1W0Dd018084@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 01:32:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285515 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:32:01 -0000 Author: gjb Date: Tue Jul 14 01:31:59 2015 New Revision: 285515 URL: https://svnweb.freebsd.org/changeset/base/285515 Log: Document r271918, fix for panic when destroying vnet jail with gre(4). Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:31:57 2015 (r285514) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:31:59 2015 (r285515) @@ -702,6 +702,10 @@ a &man.vnet.9; &man.jail.8; configured with &man.gif.4; has been fixed. + A kernel panic triggered when destroying + a &man.vnet.9; &man.jail.8; configured with &man.gre.4; has + been fixed. + A bug in &man.ipfw.4; that could potentially lead to a kernel panic when using &man.dummynet.4; at layer 2 has been fixed. From owner-svn-src-head@freebsd.org Tue Jul 14 01:32:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D08BB998846; Tue, 14 Jul 2015 01:32:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A94641B1D; Tue, 14 Jul 2015 01:32:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E1W33f018142; Tue, 14 Jul 2015 01:32:03 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E1W34D018141; Tue, 14 Jul 2015 01:32:03 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507140132.t6E1W34D018141@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 01:32:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285516 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:32:03 -0000 Author: gjb Date: Tue Jul 14 01:32:02 2015 New Revision: 285516 URL: https://svnweb.freebsd.org/changeset/base/285516 Log: Document r275800, reaper facility. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:31:59 2015 (r285515) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:32:02 2015 (r285516) @@ -620,6 +620,11 @@ providing a wrapper around the &man.gpio.4; kernel interface. + The + &man.procctl.2; system call has been updated to include + a facility for non-&man.init.8; processes to be declared as + the reaper of child processes and their decendants. + The futimens() and utimensat() system calls have been added. See &man.utimensat.2; for more information. From owner-svn-src-head@freebsd.org Tue Jul 14 01:32:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3879099885C; Tue, 14 Jul 2015 01:32:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 CF7CC1BEA; Tue, 14 Jul 2015 01:32:05 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E1W5G3018212; Tue, 14 Jul 2015 01:32:05 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E1W54B018211; Tue, 14 Jul 2015 01:32:05 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507140132.t6E1W54B018211@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 01:32:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285517 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:32:06 -0000 Author: gjb Date: Tue Jul 14 01:32:04 2015 New Revision: 285517 URL: https://svnweb.freebsd.org/changeset/base/285517 Log: Document r281440, psm(4) enhancements. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:32:02 2015 (r285516) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 01:32:04 2015 (r285517) @@ -887,6 +887,11 @@ The drm code has been updated to match &linux; version 3.8.13. + The &man.psm.4; driver has been updated + to include improved support for newer Synaptics ® + touchpads and the ClickPad ® mouse on newer + Lenovo ™ laptops. + Support for the Freescale PCI Root Complex device has been added. From owner-svn-src-head@freebsd.org Tue Jul 14 01:57:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B541799B033 for ; Tue, 14 Jul 2015 01:57:00 +0000 (UTC) (envelope-from schmiedgen@gmx.net) Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 40C0E12EF for ; Tue, 14 Jul 2015 01:56:59 +0000 (UTC) (envelope-from schmiedgen@gmx.net) Received: from [192.168.40.2] ([188.102.177.56]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0MRB8F-1ZPRM42ulz-00UbZ5 for ; Tue, 14 Jul 2015 03:56:51 +0200 To: svn-src-head@freebsd.org References: <201507121814.t6CIEdkN045519@repo.freebsd.org> Subject: Re: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph From: Michael Schmiedgen Message-ID: <55A46C62.9000001@gmx.net> Date: Tue, 14 Jul 2015 03:56:50 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 In-Reply-To: <201507121814.t6CIEdkN045519@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:0EJgRel63Gr8afz8VC+ox6O6JFQW5fbwo+NpOK5B7mbHOBL7lH7 50qckwO7QjRUWn6j0VnK2wL+4lkGBd+QJuFPsULQSEfEjXnb9Rov32dAs3oZkhgpjpcivUH LsE7x5JFvLhf3+Ulr7LqxFepA9eUV/UkfqV/kZ/dQh7++N2Cc9sOwBPbCmWzY/8XnuUVaB3 vlTccVWeaAcX3M0HAnquw== X-UI-Out-Filterresults: notjunk:1;V01:K0:DurU4ID1eQU=:f7ry15cO7oBaj9YBzvoYRF ViKNXhm4lDBiz8BQnI1ZbCEa3HLu8N2GoLjxbcBCK8Cv9ApgA/HO7erdsGDWLHE6Ym38yERrf 5X0wLvvDDYzKo+pHyY4MHJH86M3KqNylqS5ZKj8fPPFcilRgBXLtne5RugaRRM6GIqOcjm6hp x6dJceaxMnxJGQarlW5wpLyqSg+tYV9JiQp/0CHDOeaxNn0unjZ1Ds2qCBNmIDUKCnxLIah6I TIJf+I2inPLVoAiiMlKM4pF7X6QtgBIaPh6HqTQvyD/jae4FtxscPFFX4m1tgJpBKMlpF9iDQ R2ZE9HoTogsSx2H49IJkWZsQMfPJfSvmAp39o4iqz6wlxVWv3MvhBWcYUuuzBcw7oSH1EUeP9 YpAcQyuBYrMW5TRWIxv50vfcoXa6YlAl0HzYy7IjzYq6XrhiJwkNW0HjxTnVFx/NDM9i1V5Jh vMEaT29q19n0sbLrKfJo0xMcKpJtpiq6kTzA1bn4LGxSAXkNpDel0bM4stOj4XsBuvCeW3j9C OxH7J4yDjiUhZueYbH+DPP9mRGiWF6B9vxIRDyMnAafk/vKy5I5velAEP8/Cel1Mqyg5dCZAz /PmWhnJ93rO7eKxf2owphZRN3U0zBjuxdffJcWJLHh/vCYq1NRCfsdk3VblgYJmUwI7VH0m/E fb2Yw949SV93uvVPcU/g5GqoFtdC1AZeMlKqjyb1U91O+tRi3qy9NvEPNnwTpskMALVg= X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 01:57:00 -0000 >- Remove all mention of RANDOM_FORTUNA. If the system owner wants YARROW or DUMMY, they ask for it, otherwise they get FORTUNA. ... > # Random number generator > # Only ONE of the below two may be used; they are mutually exclusive. >+# If neither is present, then the Fortuna algorithm is used. > options RANDOM_YARROW # Yarrow CSPRNG (Default) >-#options RANDOM_FORTUNA # Fortuna CSPRNG > options RANDOM_DEBUG # Debugging messages I do not see two generators listed, as stated in the comment. Should the comment be updated, or another option RANDOM_DUMMY added? Michael From owner-svn-src-head@freebsd.org Tue Jul 14 02:00:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A8B099B20B; Tue, 14 Jul 2015 02:00:52 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8A48F1641; Tue, 14 Jul 2015 02:00:52 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E20qWw032696; Tue, 14 Jul 2015 02:00:52 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E20pxT032688; Tue, 14 Jul 2015 02:00:51 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201507140200.t6E20pxT032688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Tue, 14 Jul 2015 02:00:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285522 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 02:00:52 -0000 Author: cem Date: Tue Jul 14 02:00:50 2015 New Revision: 285522 URL: https://svnweb.freebsd.org/changeset/base/285522 Log: Fix cleanup race between unp_dispose and unp_gc unp_dispose and unp_gc could race to teardown the same mbuf chains, which can lead to dereferencing freed filedesc pointers. This patch adds an IGNORE_RIGHTS flag on unpcbs marking the unpcb's RIGHTS as invalid/freed. The flag is protected by UNP_LIST_LOCK. To serialize against unp_gc, unp_dispose needs the socket object. Change the dom_dispose() KPI to take a socket object instead of an mbuf chain directly. PR: 194264 Differential Revision: https://reviews.freebsd.org/D3044 Reviewed by: mjg (earlier version) Approved by: markj (mentor) Obtained from: mjg MFC after: 1 month Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/uipc_socket.c head/sys/kern/uipc_usrreq.c head/sys/sys/domain.h head/sys/sys/unpcb.h Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Tue Jul 14 01:32:25 2015 (r285521) +++ head/sys/kern/uipc_socket.c Tue Jul 14 02:00:50 2015 (r285522) @@ -805,7 +805,7 @@ sofree(struct socket *so) VNET_SO_ASSERT(so); if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL) - (*pr->pr_domain->dom_dispose)(so->so_rcv.sb_mb); + (*pr->pr_domain->dom_dispose)(so); if (pr->pr_usrreqs->pru_detach != NULL) (*pr->pr_usrreqs->pru_detach)(so); @@ -2356,7 +2356,7 @@ sorflush(struct socket *so) { struct sockbuf *sb = &so->so_rcv; struct protosw *pr = so->so_proto; - struct sockbuf asb; + struct socket aso; VNET_SO_ASSERT(so); @@ -2381,8 +2381,9 @@ sorflush(struct socket *so) * and mutex data unchanged. */ SOCKBUF_LOCK(sb); - bzero(&asb, offsetof(struct sockbuf, sb_startzero)); - bcopy(&sb->sb_startzero, &asb.sb_startzero, + bzero(&aso, sizeof(aso)); + aso.so_pcb = so->so_pcb; + bcopy(&sb->sb_startzero, &aso.so_rcv.sb_startzero, sizeof(*sb) - offsetof(struct sockbuf, sb_startzero)); bzero(&sb->sb_startzero, sizeof(*sb) - offsetof(struct sockbuf, sb_startzero)); @@ -2390,12 +2391,12 @@ sorflush(struct socket *so) sbunlock(sb); /* - * Dispose of special rights and flush the socket buffer. Don't call - * any unsafe routines (that rely on locks being initialized) on asb. + * Dispose of special rights and flush the copied socket. Don't call + * any unsafe routines (that rely on locks being initialized) on aso. */ if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL) - (*pr->pr_domain->dom_dispose)(asb.sb_mb); - sbrelease_internal(&asb, so); + (*pr->pr_domain->dom_dispose)(&aso); + sbrelease_internal(&aso.so_rcv, so); } /* Modified: head/sys/kern/uipc_usrreq.c ============================================================================== --- head/sys/kern/uipc_usrreq.c Tue Jul 14 01:32:25 2015 (r285521) +++ head/sys/kern/uipc_usrreq.c Tue Jul 14 02:00:50 2015 (r285522) @@ -278,6 +278,7 @@ static int unp_connectat(int, struct soc static int unp_connect2(struct socket *so, struct socket *so2, int); static void unp_disconnect(struct unpcb *unp, struct unpcb *unp2); static void unp_dispose(struct mbuf *); +static void unp_dispose_so(struct socket *so); static void unp_shutdown(struct unpcb *); static void unp_drop(struct unpcb *, int); static void unp_gc(__unused void *, int); @@ -334,7 +335,7 @@ static struct domain localdomain = { .dom_name = "local", .dom_init = unp_init, .dom_externalize = unp_externalize, - .dom_dispose = unp_dispose, + .dom_dispose = unp_dispose_so, .dom_protosw = localsw, .dom_protoswNPROTOSW = &localsw[sizeof(localsw)/sizeof(localsw[0])] }; @@ -2216,15 +2217,19 @@ unp_gc_process(struct unpcb *unp) * Mark all sockets we reference with RIGHTS. */ so = unp->unp_socket; - SOCKBUF_LOCK(&so->so_rcv); - unp_scan(so->so_rcv.sb_mb, unp_accessable); - SOCKBUF_UNLOCK(&so->so_rcv); + if ((unp->unp_gcflag & UNPGC_IGNORE_RIGHTS) == 0) { + SOCKBUF_LOCK(&so->so_rcv); + unp_scan(so->so_rcv.sb_mb, unp_accessable); + SOCKBUF_UNLOCK(&so->so_rcv); + } /* * Mark all sockets in our accept queue. */ ACCEPT_LOCK(); TAILQ_FOREACH(soa, &so->so_comp, so_list) { + if ((sotounpcb(soa)->unp_gcflag & UNPGC_IGNORE_RIGHTS) != 0) + continue; SOCKBUF_LOCK(&soa->so_rcv); unp_scan(soa->so_rcv.sb_mb, unp_accessable); SOCKBUF_UNLOCK(&soa->so_rcv); @@ -2254,11 +2259,13 @@ unp_gc(__unused void *arg, int pending) unp_taskcount++; UNP_LIST_LOCK(); /* - * First clear all gc flags from previous runs. + * First clear all gc flags from previous runs, apart from + * UNPGC_IGNORE_RIGHTS. */ for (head = heads; *head != NULL; head++) LIST_FOREACH(unp, *head, unp_link) - unp->unp_gcflag = 0; + unp->unp_gcflag = + (unp->unp_gcflag & UNPGC_IGNORE_RIGHTS); /* * Scan marking all reachable sockets with UNPGC_REF. Once a socket @@ -2335,6 +2342,21 @@ unp_dispose(struct mbuf *m) unp_scan(m, unp_freerights); } +/* + * Synchronize against unp_gc, which can trip over data as we are freeing it. + */ +static void +unp_dispose_so(struct socket *so) +{ + struct unpcb *unp; + + unp = sotounpcb(so); + UNP_LIST_LOCK(); + unp->unp_gcflag |= UNPGC_IGNORE_RIGHTS; + UNP_LIST_UNLOCK(); + unp_dispose(so->so_rcv.sb_mb); +} + static void unp_scan(struct mbuf *m0, void (*op)(struct filedescent **, int)) { Modified: head/sys/sys/domain.h ============================================================================== --- head/sys/sys/domain.h Tue Jul 14 01:32:25 2015 (r285521) +++ head/sys/sys/domain.h Tue Jul 14 02:00:50 2015 (r285522) @@ -42,6 +42,7 @@ */ struct mbuf; struct ifnet; +struct socket; struct domain { int dom_family; /* AF_xxx */ @@ -53,7 +54,7 @@ struct domain { int (*dom_externalize) /* externalize access rights */ (struct mbuf *, struct mbuf **, int); void (*dom_dispose) /* dispose of internalized rights */ - (struct mbuf *); + (struct socket *); struct protosw *dom_protosw, *dom_protoswNPROTOSW; struct domain *dom_next; int (*dom_rtattach) /* initialize routing table */ Modified: head/sys/sys/unpcb.h ============================================================================== --- head/sys/sys/unpcb.h Tue Jul 14 01:32:25 2015 (r285521) +++ head/sys/sys/unpcb.h Tue Jul 14 02:00:50 2015 (r285522) @@ -106,6 +106,7 @@ struct unpcb { #define UNPGC_REF 0x1 /* unpcb has external ref. */ #define UNPGC_DEAD 0x2 /* unpcb might be dead. */ #define UNPGC_SCANNED 0x4 /* Has been scanned. */ +#define UNPGC_IGNORE_RIGHTS 0x8 /* Attached rights are freed */ /* * These flags are used to handle non-atomicity in connect() and bind() From owner-svn-src-head@freebsd.org Tue Jul 14 05:10:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EE6C949D; Tue, 14 Jul 2015 05:10:00 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E6CA22B83; Tue, 14 Jul 2015 05:09:59 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E59xC4052136; Tue, 14 Jul 2015 05:09:59 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E59xs2052135; Tue, 14 Jul 2015 05:09:59 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507140509.t6E59xs2052135@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Tue, 14 Jul 2015 05:09:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285523 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 05:10:00 -0000 Author: jmg Date: Tue Jul 14 05:09:58 2015 New Revision: 285523 URL: https://svnweb.freebsd.org/changeset/base/285523 Log: cryptodev is not needed for TCP_SIGNATURE... Comment that cryptodev shouldn't be used unless you know what you're doing... The various arm/mips and one powerpc configs that have cryptodev in them need to be addressed, audited if they provide benefit and removed if they don't... Modified: head/sys/conf/NOTES Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Tue Jul 14 02:00:50 2015 (r285522) +++ head/sys/conf/NOTES Tue Jul 14 05:09:58 2015 (r285523) @@ -997,8 +997,7 @@ options ACCEPT_FILTER_HTTP # carried in TCP option 19. This option is commonly used to protect # TCP sessions (e.g. BGP) where IPSEC is not available nor desirable. # This is enabled on a per-socket basis using the TCP_MD5SIG socket option. -# This requires the use of 'device crypto', 'options IPSEC' -# or 'device cryptodev'. +# This requires the use of 'device crypto' and 'options IPSEC'. options TCP_SIGNATURE #include support for RFC 2385 # DUMMYNET enables the "dummynet" bandwidth limiter. You need IPFIREWALL @@ -2817,6 +2816,10 @@ options DCONS_FORCE_GDB=1 # force to be # been fed back to OpenBSD. device crypto # core crypto support + +# Only install the cryptodev device if you are running tests, or know +# specificly why you need it. Most cases, it is not needed and will +# make things slower. device cryptodev # /dev/crypto for access to h/w device rndtest # FIPS 140-2 entropy tester From owner-svn-src-head@freebsd.org Tue Jul 14 05:14:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DDF195E5; Tue, 14 Jul 2015 05:14:11 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 44B862EC7; Tue, 14 Jul 2015 05:14:11 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E5EB20056268; Tue, 14 Jul 2015 05:14:11 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E5EB7C056267; Tue, 14 Jul 2015 05:14:11 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201507140514.t6E5EB7C056267@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Tue, 14 Jul 2015 05:14:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285524 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 05:14:11 -0000 Author: adrian Date: Tue Jul 14 05:14:10 2015 New Revision: 285524 URL: https://svnweb.freebsd.org/changeset/base/285524 Log: Populate hw.model with the CPU model information. Now you see something like: # sysctl hw.model hw.model: Atheros AR9330 rev 1 Tested: * Carambola 2, AR9331 SoC Modified: head/sys/mips/atheros/ar71xx_machdep.c Modified: head/sys/mips/atheros/ar71xx_machdep.c ============================================================================== --- head/sys/mips/atheros/ar71xx_machdep.c Tue Jul 14 05:09:58 2015 (r285523) +++ head/sys/mips/atheros/ar71xx_machdep.c Tue Jul 14 05:14:10 2015 (r285524) @@ -304,6 +304,8 @@ ar71xx_platform_check_mac_hints(void) return (0); } +extern char cpu_model[]; + void platform_start(__register_t a0 __unused, __register_t a1 __unused, __register_t a2 __unused, __register_t a3 __unused) @@ -417,6 +419,8 @@ platform_start(__register_t a0 __unused, printf(" a2 = %08x\n", a2); printf(" a3 = %08x\n", a3); + strcpy(cpu_model, ar71xx_get_system_type()); + /* * XXX this code is very redboot specific. */ From owner-svn-src-head@freebsd.org Tue Jul 14 06:34:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1E6699C3AE; Tue, 14 Jul 2015 06:34:58 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 AA9FFDE9; Tue, 14 Jul 2015 06:34:58 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E6YwiC093627; Tue, 14 Jul 2015 06:34:58 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E6Yw6s093626; Tue, 14 Jul 2015 06:34:58 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507140634.t6E6Yw6s093626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Tue, 14 Jul 2015 06:34:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285525 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 06:34:58 -0000 Author: jmg Date: Tue Jul 14 06:34:57 2015 New Revision: 285525 URL: https://svnweb.freebsd.org/changeset/base/285525 Log: fix typos.. Submitted by: brueffer Modified: head/sys/conf/NOTES Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Tue Jul 14 05:14:10 2015 (r285524) +++ head/sys/conf/NOTES Tue Jul 14 06:34:57 2015 (r285525) @@ -2818,8 +2818,8 @@ options DCONS_FORCE_GDB=1 # force to be device crypto # core crypto support # Only install the cryptodev device if you are running tests, or know -# specificly why you need it. Most cases, it is not needed and will -# make things slower. +# specifically why you need it. In most cases, it is not needed and +# will make things slower. device cryptodev # /dev/crypto for access to h/w device rndtest # FIPS 140-2 entropy tester From owner-svn-src-head@freebsd.org Tue Jul 14 07:45:20 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54A1899C33C; Tue, 14 Jul 2015 07:45:20 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 43DB7201; Tue, 14 Jul 2015 07:45:20 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E7jKUc027938; Tue, 14 Jul 2015 07:45:20 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E7jJgt027936; Tue, 14 Jul 2015 07:45:19 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507140745.t6E7jJgt027936@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Tue, 14 Jul 2015 07:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285526 - head/sys/opencrypto X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 07:45:20 -0000 Author: jmg Date: Tue Jul 14 07:45:18 2015 New Revision: 285526 URL: https://svnweb.freebsd.org/changeset/base/285526 Log: Fix XTS, and name things a bit better... Though confusing, GCM using ICM_BLOCK_LEN, but ICM does not is correct... GCM is built on ICM, but uses a function other than swcr_encdec... swcr_encdec cannot handle partial blocks which is why it must still use AES_BLOCK_LEN and is why XTS was broken by the commit... Thanks to the tests for helping sure I didn't break GCM w/ an earlier patch... I did run the tests w/o this patch, and need to figure out why they did not fail, clearly more tests are needed... Prodded by: peter Modified: head/sys/opencrypto/cryptodev.h head/sys/opencrypto/xform.c Modified: head/sys/opencrypto/cryptodev.h ============================================================================== --- head/sys/opencrypto/cryptodev.h Tue Jul 14 06:34:57 2015 (r285525) +++ head/sys/opencrypto/cryptodev.h Tue Jul 14 07:45:18 2015 (r285526) @@ -115,7 +115,7 @@ #define CAST128_BLOCK_LEN 8 #define RIJNDAEL128_BLOCK_LEN 16 #define AES_BLOCK_LEN 16 -#define AES_MIN_BLOCK_LEN 1 +#define AES_ICM_BLOCK_LEN 1 #define ARC4_BLOCK_LEN 1 #define CAMELLIA_BLOCK_LEN 16 #define EALG_MAX_BLOCK_LEN AES_BLOCK_LEN /* Keep this updated */ @@ -123,12 +123,10 @@ /* IV Lengths */ #define ARC4_IV_LEN 1 -#define AES_IV_LEN 12 +#define AES_GCM_IV_LEN 12 #define AES_XTS_IV_LEN 8 #define AES_XTS_ALPHA 0x87 /* GF(2^128) generator polynomial */ -#define AES_CTR_NONCE_SIZE 4 - /* Min and Max Encryption Key Sizes */ #define NULL_MIN_KEY 0 #define NULL_MAX_KEY 256 /* 2048 bits, max key */ @@ -144,10 +142,10 @@ #define SKIPJACK_MAX_KEY SKIPJACK_MIN_KEY #define RIJNDAEL_MIN_KEY 16 #define RIJNDAEL_MAX_KEY 32 -#define AES_MIN_KEY 16 -#define AES_MAX_KEY 32 -#define AES_XTS_MIN_KEY 32 -#define AES_XTS_MAX_KEY 64 +#define AES_MIN_KEY RIJNDAEL_MIN_KEY +#define AES_MAX_KEY RIJNDAEL_MAX_KEY +#define AES_XTS_MIN_KEY (2 * AES_MIN_KEY) +#define AES_XTS_MAX_KEY (2 * AES_MAX_KEY) #define ARC4_MIN_KEY 1 #define ARC4_MAX_KEY 32 #define CAMELLIA_MIN_KEY 8 Modified: head/sys/opencrypto/xform.c ============================================================================== --- head/sys/opencrypto/xform.c Tue Jul 14 06:34:57 2015 (r285525) +++ head/sys/opencrypto/xform.c Tue Jul 14 07:45:18 2015 (r285526) @@ -227,7 +227,7 @@ struct enc_xform enc_xform_rijndael128 = struct enc_xform enc_xform_aes_icm = { CRYPTO_AES_ICM, "AES-ICM", - RIJNDAEL128_BLOCK_LEN, RIJNDAEL128_BLOCK_LEN, AES_MIN_KEY, AES_MAX_KEY, + AES_BLOCK_LEN, AES_BLOCK_LEN, AES_MIN_KEY, AES_MAX_KEY, aes_icm_crypt, aes_icm_crypt, aes_icm_setkey, @@ -237,7 +237,7 @@ struct enc_xform enc_xform_aes_icm = { struct enc_xform enc_xform_aes_nist_gcm = { CRYPTO_AES_NIST_GCM_16, "AES-GCM", - AES_MIN_BLOCK_LEN, AES_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, + AES_ICM_BLOCK_LEN, AES_GCM_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, aes_icm_crypt, aes_icm_crypt, aes_icm_setkey, @@ -247,7 +247,7 @@ struct enc_xform enc_xform_aes_nist_gcm struct enc_xform enc_xform_aes_nist_gmac = { CRYPTO_AES_NIST_GMAC, "AES-GMAC", - AES_MIN_BLOCK_LEN, AES_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, + AES_ICM_BLOCK_LEN, AES_GCM_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, NULL, NULL, NULL, @@ -257,7 +257,7 @@ struct enc_xform enc_xform_aes_nist_gmac struct enc_xform enc_xform_aes_xts = { CRYPTO_AES_XTS, "AES-XTS", - AES_MIN_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, + AES_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, aes_xts_encrypt, aes_xts_decrypt, aes_xts_setkey, From owner-svn-src-head@freebsd.org Tue Jul 14 08:02:07 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 22EB599CA07; Tue, 14 Jul 2015 08:02:07 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 11F03DC0; Tue, 14 Jul 2015 08:02:07 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E827rr037301; Tue, 14 Jul 2015 08:02:07 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E8260F037296; Tue, 14 Jul 2015 08:02:06 GMT (envelope-from np@FreeBSD.org) Message-Id: <201507140802.t6E8260F037296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Tue, 14 Jul 2015 08:02:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285527 - in head/sys: conf dev/cxgbe dev/cxgbe/firmware dev/cxgbe/tom modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 08:02:07 -0000 Author: np Date: Tue Jul 14 08:02:05 2015 New Revision: 285527 URL: https://svnweb.freebsd.org/changeset/base/285527 Log: cxgbe(4): Update T4 and T5 firmwares to 1.14.2.0. Obtained from: Chelsio Communications MFC after: 3 days Added: head/sys/dev/cxgbe/firmware/t4fw-1.14.2.0.bin.uu (contents, props changed) head/sys/dev/cxgbe/firmware/t5fw-1.14.2.0.bin.uu (contents, props changed) Deleted: head/sys/dev/cxgbe/firmware/t4fw-1.11.27.0.bin.uu head/sys/dev/cxgbe/firmware/t5fw-1.11.27.0.bin.uu Modified: head/sys/conf/files head/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt head/sys/dev/cxgbe/firmware/t4fw_interface.h head/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/modules/cxgbe/t4_firmware/Makefile head/sys/modules/cxgbe/t5_firmware/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue Jul 14 07:45:18 2015 (r285526) +++ head/sys/conf/files Tue Jul 14 08:02:05 2015 (r285527) @@ -1201,7 +1201,7 @@ t4fw.fwo optional cxgbe \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t4fw-1.11.27.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t4fw-1.14.2.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" @@ -1225,7 +1225,7 @@ t5fw.fwo optional cxgbe \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t5fw-1.11.27.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t5fw-1.14.2.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" Added: head/sys/dev/cxgbe/firmware/t4fw-1.14.2.0.bin.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/firmware/t4fw-1.14.2.0.bin.uu Tue Jul 14 08:02:05 2015 (r285527) @@ -0,0 +1,9486 @@ +/*- + * Copyright (c) 2015 Chelsio Communications, 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. + */ +begin-base64 644 t4fw +AAAEHQEOAgAAAQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAABAAEDwQXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IE1vbiBKdWwgMTMgMjE6 +MTU6MDkgUERUIDIwMTUgb24gY2xlb3BhdHJhLmFzaWNkZXNpZ25lcnMuY29tOi9ob21lL2Zpcm13 +YXJlL2N2cy9mdy1yZWxlYXNlKSwgVmVyc2lvbiBUNHh4IDAxLjBlLjAyLjAwAAAAAAAAAAcT5rNg +AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//2U4QGUcCAAAADhAZwE4QB5AAAC +AEDhAHmAAAYAQAACAAoABgAK4QB5BAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA +AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//koAAAAAA +H/+ShAAAAAAf/5KIAAAAAB//kowf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/ +zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC +EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT +Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/ +uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ +JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA +MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtEv+VwDAnNwAnNxAn +NyAnNzAjPQFyM+0S/5AV/5AW/5HAMNcgBWYBYAAZAAAAAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH +BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF +IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 +AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m +lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +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 +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAIGAAAAAAAAA/////////////////////x///Igf//yIH//8UB///FAf//xQH//8UB// +9eAf//kIH//3ZB//92Qf//dkIAakyAAAAAAAAAAAAAAAAAAAAAAgBqgQIAaoEAAAAAAAAAAAAAAA +AAAAAAAgBqTIIAakyB//+fwf//n8H//5/B//+fwf//n8H//5/AAAAAAgAcUIAAAAAAAAAAAAAAAA +AAAAAAIBAAAAAAAAAAAAAAAAAAAEAAAAAAAAAIGAAAAAAAAQBQAAAAAAAAQAAAAAAAAAAAAAAAAA +AAAAgQAAAAAAABgFAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +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 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Jul 14 09:13:19 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E20A99CA35; Tue, 14 Jul 2015 09:13:19 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8261CDFD; Tue, 14 Jul 2015 09:13:19 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E9DJav071488; Tue, 14 Jul 2015 09:13:19 GMT (envelope-from hiren@FreeBSD.org) Received: (from hiren@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E9DJ7c071487; Tue, 14 Jul 2015 09:13:19 GMT (envelope-from hiren@FreeBSD.org) Message-Id: <201507140913.t6E9DJ7c071487@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hiren set sender to hiren@FreeBSD.org using -f From: Hiren Panchasara Date: Tue, 14 Jul 2015 09:13:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285528 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 09:13:19 -0000 Author: hiren Date: Tue Jul 14 09:13:18 2015 New Revision: 285528 URL: https://svnweb.freebsd.org/changeset/base/285528 Log: Expose full 32bit RSS hash from card regardless of whether RSS is defined or not. When doing multiqueue, we are all setup to have full 32bit RSS hash from the card. We do not need to hide that under "ifdef RSS" and should expose that by default so others like lagg(4) can use that and avoid hashing the traffic by themselves. While here, delete the FreeBSD version check and use of deprecated M_FLOWID. Reviewed by: adrian, erj MFC after: 1 week Sponsored by: Limelight Networks Modified: head/sys/dev/ixgbe/ix_txrx.c Modified: head/sys/dev/ixgbe/ix_txrx.c ============================================================================== --- head/sys/dev/ixgbe/ix_txrx.c Tue Jul 14 08:02:05 2015 (r285527) +++ head/sys/dev/ixgbe/ix_txrx.c Tue Jul 14 09:13:18 2015 (r285528) @@ -1910,53 +1910,60 @@ ixgbe_rxeof(struct ix_queue *que) } if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) ixgbe_rx_checksum(staterr, sendmp, ptype); -#if __FreeBSD_version >= 800000 -#ifdef RSS - sendmp->m_pkthdr.flowid = - le32toh(cur->wb.lower.hi_dword.rss); -#if __FreeBSD_version < 1100054 - sendmp->m_flags |= M_FLOWID; -#endif - switch (pkt_info & IXGBE_RXDADV_RSSTYPE_MASK) { - case IXGBE_RXDADV_RSSTYPE_IPV4_TCP: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_TCP_IPV4); - break; - case IXGBE_RXDADV_RSSTYPE_IPV4: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_IPV4); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6_TCP: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_TCP_IPV6); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6_EX: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_IPV6_EX); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_IPV6); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6_TCP_EX: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_TCP_IPV6_EX); - break; - case IXGBE_RXDADV_RSSTYPE_IPV4_UDP: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_UDP_IPV4); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6_UDP: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_UDP_IPV6); - break; - case IXGBE_RXDADV_RSSTYPE_IPV6_UDP_EX: - M_HASHTYPE_SET(sendmp, M_HASHTYPE_RSS_UDP_IPV6_EX); - break; - default: + + /* + * In case of multiqueue, we have RXCSUM.PCSD bit set + * and never cleared. This means we have RSS hash + * available to be used. + */ + if (adapter->num_queues > 1) { + sendmp->m_pkthdr.flowid = + le32toh(cur->wb.lower.hi_dword.rss); + switch (pkt_info & IXGBE_RXDADV_RSSTYPE_MASK) { + case IXGBE_RXDADV_RSSTYPE_IPV4_TCP: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_TCP_IPV4); + break; + case IXGBE_RXDADV_RSSTYPE_IPV4: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_IPV4); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6_TCP: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_TCP_IPV6); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6_EX: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_IPV6_EX); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_IPV6); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6_TCP_EX: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_TCP_IPV6_EX); + break; + case IXGBE_RXDADV_RSSTYPE_IPV4_UDP: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_UDP_IPV4); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6_UDP: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_UDP_IPV6); + break; + case IXGBE_RXDADV_RSSTYPE_IPV6_UDP_EX: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_RSS_UDP_IPV6_EX); + break; + default: + M_HASHTYPE_SET(sendmp, + M_HASHTYPE_OPAQUE); + } + } else { + sendmp->m_pkthdr.flowid = que->msix; M_HASHTYPE_SET(sendmp, M_HASHTYPE_OPAQUE); } -#else /* RSS */ - sendmp->m_pkthdr.flowid = que->msix; -#if __FreeBSD_version >= 1100054 - M_HASHTYPE_SET(sendmp, M_HASHTYPE_OPAQUE); -#else - sendmp->m_flags |= M_FLOWID; -#endif -#endif /* RSS */ -#endif /* FreeBSD_version */ } next_desc: bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, From owner-svn-src-head@freebsd.org Tue Jul 14 09:25:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A518C99CD96; Tue, 14 Jul 2015 09:25:11 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 95D978FB; Tue, 14 Jul 2015 09:25:11 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6E9PB8Y076700; Tue, 14 Jul 2015 09:25:11 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6E9PBDC076699; Tue, 14 Jul 2015 09:25:11 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507140925.t6E9PBDC076699@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 14 Jul 2015 09:25:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285529 - head/sbin/ggate/ggated X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 09:25:11 -0000 Author: brueffer Date: Tue Jul 14 09:25:10 2015 New Revision: 285529 URL: https://svnweb.freebsd.org/changeset/base/285529 Log: If ggated's exports_find() fails, the connection is removed before (trying to) report the problem to the client. sendfail() is called with an already closed socket and thus it fails to inform the client about the problem. Fix this by calling sendfail() before connection_remove(). PR: 195944 Submitted by: Fabian Keil Reviewed by: pjd MFC after: 1 week Modified: head/sbin/ggate/ggated/ggated.c Modified: head/sbin/ggate/ggated/ggated.c ============================================================================== --- head/sbin/ggate/ggated/ggated.c Tue Jul 14 09:13:18 2015 (r285528) +++ head/sbin/ggate/ggated/ggated.c Tue Jul 14 09:25:10 2015 (r285529) @@ -906,8 +906,8 @@ handshake(struct sockaddr *from, int sfd ex = exports_find(from, &cinit, conn); if (ex == NULL) { - connection_remove(conn); sendfail(sfd, errno, NULL); + connection_remove(conn); return (0); } if (conn->c_mediasize == 0) { From owner-svn-src-head@freebsd.org Tue Jul 14 10:22:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1203699C0AC for ; Tue, 14 Jul 2015 10:22:58 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: from mail-oi0-f53.google.com (mail-oi0-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D5FE293F for ; Tue, 14 Jul 2015 10:22:57 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: by oibn4 with SMTP id n4so3338658oib.3 for ; Tue, 14 Jul 2015 03:22:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=KkrclcJknWwvzmmvWTpO75a1jJMpcYgUooiX7ojoJGc=; b=gnXCnhG8m1TGLPw5oKrSrh4QvDFZ+itzwXFyo8z8GrVTzAiAv5CWFrNNY+++d5HxLQ Xiz2IdaV8SdAoH6G+26pUdlS2me2q/GKdQS7FB8ubhm8cJdlNGzKSzFozPRl/gGZCgNB NO6VXnWgExfJ/RCQi6dVd5ekzHd7lnSEsvErRk5fAQzODmyxM1uy0foeiiZlVqJ1Dmat iMg00Lawe1EoBvPqS9d7/06pCBiHmVR2V9gt05Jeo4USYesRn9Ov25Zdpz/0+j1IFw5A dUk18wvPr7QfPhEQ4UhTKga36iC9yUfE0/q6XI2WGKKNCAnmFov+WwqiTfFcduTiyXxw +U0g== X-Gm-Message-State: ALoCoQm0IA4/eQ6eJ8GSG/cw3wH/3BY787SNdE3ImGcWtro0ZzaJwKSNUuwSAjOoxVNeZe08ghrt MIME-Version: 1.0 X-Received: by 10.202.168.208 with SMTP id r199mr8379609oie.134.1436869371452; Tue, 14 Jul 2015 03:22:51 -0700 (PDT) Received: by 10.76.0.46 with HTTP; Tue, 14 Jul 2015 03:22:51 -0700 (PDT) X-Originating-IP: [84.27.222.46] In-Reply-To: <20150711205611.GC2404@kib.kiev.ua> References: <201507111941.t6BJfV1a072539@repo.freebsd.org> <20150711194732.GB2404@kib.kiev.ua> <20150711205611.GC2404@kib.kiev.ua> Date: Tue, 14 Jul 2015 12:22:51 +0200 Message-ID: Subject: Re: svn commit: r285404 - head/sys/compat/cloudabi From: Ed Schouten To: Konstantin Belousov Cc: Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 10:22:58 -0000 Hi Kostik, 2015-07-11 22:56 GMT+02:00 Konstantin Belousov : >> Bucket 2: The system call could also just fail and return an error >> (MSG_NOSIGPIPE). > SIGPIPE exists to ensure that naive programs do something reasonable > when their stdout suddenly goes away. Or, transposing the PoV, it allows > to write useful and well-behaving programs while ignoring complications. > If all programs must be aware of the special error code from write which > indicates that nobody listens to the output anymore, it would cause > unneeded code copy/pasted all over the src. Exactly. I think that for programs that are built around pipelines, where a series of processes have stdin/stdout attached, having something like SIGPIPE makes sense. So far the focus >> > If your ABI does not provide any way to install a signal handler, then >> > you probably should be already fully set up, due to execsigs() performed >> > on each exec(2). >> >> Exactly. The kern_sigaction() is just needed to make sure that if the >> process is started up with certain signals ignored, that raise() still >> causes the process to terminate. If there is no way you can influence >> the signal handling, you'd probably want that functions like abort() >> can always throw SIGABRT. > > No. The point of my first message is that kern_sigaction + list is the > unmaintanable approach. Take a look at the execsigs() again. You should > implement a loop over the ps_sigignore sigset similar to the loop over > ps_sigcatch in execsigs. Then you do not need to maintain a signal list. > > Later, when you design an interface to reflect traps to the userspace > in your ABI, you would have some table to translate trap identifiers > (or whatever) to FreeBSD signals. Right now you do not need them. Ah, okay. Now I think I understand what you're hinting at. So your proposal is to let cloudabi_sys_proc_raise() only call into sys_kill(), nothing else. We then reset all signals to their default behavior at some point during process startup. Let me address this by the time I'm sending out the CloudABI sysentvec for review, as that would be the place where I'd need to do that. I'll remove the call to kern_sigaction() in the meantime. Does that sound all right? -- Ed Schouten Nuxi, 's-Hertogenbosch, the Netherlands KvK/VAT number: 62051717 From owner-svn-src-head@freebsd.org Tue Jul 14 10:47:59 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C4F399C7B1; Tue, 14 Jul 2015 10:47:59 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0C3C7925; Tue, 14 Jul 2015 10:47:59 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EAlwQs016060; Tue, 14 Jul 2015 10:47:58 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EAluxu016051; Tue, 14 Jul 2015 10:47:56 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507141047.t6EAluxu016051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 14 Jul 2015 10:47:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285530 - in head/sys: amd64/conf arm64/conf i386/conf pc98/conf powerpc/conf sparc64/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 10:47:59 -0000 Author: brueffer Date: Tue Jul 14 10:47:56 2015 New Revision: 285530 URL: https://svnweb.freebsd.org/changeset/base/285530 Log: Spell crypto correctly. Modified: head/sys/amd64/conf/GENERIC head/sys/arm64/conf/GENERIC head/sys/i386/conf/GENERIC head/sys/pc98/conf/GENERIC head/sys/powerpc/conf/GENERIC head/sys/sparc64/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/amd64/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -364,5 +364,5 @@ device vmx # VMware VMXNET3 Ethernet # Netmap provides direct access to TX/RX rings on supported NICs device netmap # netmap(4) support -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/arm64/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -112,5 +112,5 @@ device bpf # Berkeley packet filter options FDT device acpi -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/i386/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -379,5 +379,5 @@ device xenpci # Xen HVM Hypervisor se # VMware support device vmx # VMware VMXNET3 Ethernet -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/pc98/conf/GENERIC ============================================================================== --- head/sys/pc98/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/pc98/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -257,5 +257,5 @@ device bpf # Berkeley packet filter #device "snd_sb16" # Sound Blaster 16 #device snd_sbc # Sound Blaster -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/powerpc/conf/GENERIC ============================================================================== --- head/sys/powerpc/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/powerpc/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -217,5 +217,5 @@ device snd_ai2s # Apple I2S audio device snd_davbus # Apple DAVBUS audio device snd_uaudio # USB Audio -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/sparc64/conf/GENERIC ============================================================================== --- head/sys/sparc64/conf/GENERIC Tue Jul 14 09:25:10 2015 (r285529) +++ head/sys/sparc64/conf/GENERIC Tue Jul 14 10:47:56 2015 (r285530) @@ -251,5 +251,5 @@ device snd_audiocs # Crystal Semiconduc device snd_es137x # Ensoniq AudioPCI ES137x device snd_t4dwave # Acer Labs M5451 -# The cypto framework is required by IPSEC +# The crypto framework is required by IPSEC device crypto # Required by IPSEC From owner-svn-src-head@freebsd.org Tue Jul 14 10:49:37 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4364C99C7EB; Tue, 14 Jul 2015 10:49:37 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 33BD8A88; Tue, 14 Jul 2015 10:49:37 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EAnbq2016323; Tue, 14 Jul 2015 10:49:37 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EAnagO016321; Tue, 14 Jul 2015 10:49:36 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507141049.t6EAnagO016321@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 14 Jul 2015 10:49:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285531 - in head/sbin/ggate: ggatec ggatel X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 10:49:37 -0000 Author: brueffer Date: Tue Jul 14 10:49:36 2015 New Revision: 285531 URL: https://svnweb.freebsd.org/changeset/base/285531 Log: Unbreak ggatec and ggatel on i386 after r238119, which added two more 'struct g_gate_ctl_create' fields. While the behaviour was technically undefined on other architectures as well, on the reporter's amd64 systems the uninitialized bytes the kernel cares about were always zero so everything worked as expected. PR: 197309, 199559 Submitted by: ota@j.email.ne.jp, Fabian Keil Reviewed by: pjd MFC after: 1 week Modified: head/sbin/ggate/ggatec/ggatec.c head/sbin/ggate/ggatel/ggatel.c Modified: head/sbin/ggate/ggatec/ggatec.c ============================================================================== --- head/sbin/ggate/ggatec/ggatec.c Tue Jul 14 10:47:56 2015 (r285530) +++ head/sbin/ggate/ggatec/ggatec.c Tue Jul 14 10:49:36 2015 (r285531) @@ -447,6 +447,7 @@ g_gatec_create(void) /* * Ok, got both sockets, time to create provider. */ + memset(&ggioc, 0, sizeof(ggioc)); ggioc.gctl_version = G_GATE_VERSION; ggioc.gctl_mediasize = mediasize; ggioc.gctl_sectorsize = sectorsize; Modified: head/sbin/ggate/ggatel/ggatel.c ============================================================================== --- head/sbin/ggate/ggatel/ggatel.c Tue Jul 14 10:47:56 2015 (r285530) +++ head/sbin/ggate/ggatel/ggatel.c Tue Jul 14 10:49:36 2015 (r285531) @@ -173,6 +173,7 @@ g_gatel_create(void) fd = open(path, g_gate_openflags(flags) | O_DIRECT | O_FSYNC); if (fd == -1) err(EXIT_FAILURE, "Cannot open %s", path); + memset(&ggioc, 0, sizeof(ggioc)); ggioc.gctl_version = G_GATE_VERSION; ggioc.gctl_unit = unit; ggioc.gctl_mediasize = g_gate_mediasize(fd); From owner-svn-src-head@freebsd.org Tue Jul 14 11:01:39 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6BBA999CBC9; Tue, 14 Jul 2015 11:01:39 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D712F796; Tue, 14 Jul 2015 11:01:38 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id t6EB1QtP079344 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 14 Jul 2015 14:01:26 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t6EB1QtP079344 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id t6EB1QWl079343; Tue, 14 Jul 2015 14:01:26 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 14 Jul 2015 14:01:26 +0300 From: Konstantin Belousov To: Ed Schouten Cc: Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285404 - head/sys/compat/cloudabi Message-ID: <20150714110126.GV2404@kib.kiev.ua> References: <201507111941.t6BJfV1a072539@repo.freebsd.org> <20150711194732.GB2404@kib.kiev.ua> <20150711205611.GC2404@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 11:01:39 -0000 On Tue, Jul 14, 2015 at 12:22:51PM +0200, Ed Schouten wrote: > Ah, okay. Now I think I understand what you're hinting at. So your > proposal is to let cloudabi_sys_proc_raise() only call into > sys_kill(), nothing else. We then reset all signals to their default > behavior at some point during process startup. > > Let me address this by the time I'm sending out the CloudABI sysentvec > for review, as that would be the place where I'd need to do that. I'll > remove the call to kern_sigaction() in the meantime. Does that sound > all right? Sounds fine. But, I do not recomment to use sys_kill(), which is the FreeBSD syscall implementation. You should use pksignal(9) or similar function directly, IMO. Minor code duplication to create proper ksiginfo is not critical, while you do not need pfind() or complications with negative pid values. From owner-svn-src-head@freebsd.org Tue Jul 14 11:32:21 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D929599C6A0 for ; Tue, 14 Jul 2015 11:32:21 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: from mail-oi0-f44.google.com (mail-oi0-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A8205EF3 for ; Tue, 14 Jul 2015 11:32:21 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: by oibn4 with SMTP id n4so4297852oib.3 for ; Tue, 14 Jul 2015 04:32:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=uDC26FwLprJbbsszcEZt7Jer3qu9pqU7Z7eARE+rLxg=; b=K2/DMGf8yISYamnG+0XnQ8DrWkA1AVdbcIfqVa5yF0zFCCuXwrMYoeWuGv8HfqnH7f 2wmc5jh9wmvGfYFxS6yHOrpgNwo7lHuDnH6R7WDLK6MXodP5TvUCm651uU9HPc4ZPLhU A+Bb3ZK4I0r1V5ahvM4ADh9gvCOv/aZM6f0qPUVUxD7VvdJPqNtvm/VpBBSgeDQ5Xcyj hLsMASYjWU0rz83mcx2r3GCmAq/PC10phbRvXQBswKg6Iur+btKB6Lq9/6O9/L5e8QWh sPqsUcpaRLDJJKD+gQBkzGELzeghLHnR7/GdacP8qp6GYJBq8W/7hI+yUFYosOVsh9/w w8PA== X-Gm-Message-State: ALoCoQlPi0yjeHz0ZJ+7JMzIS51kXSOxEOLVtst5+znHLH+k0vXUjNp0rJTpfV6I/G876juw0K3Y MIME-Version: 1.0 X-Received: by 10.202.67.67 with SMTP id q64mr3733002oia.124.1436873540602; Tue, 14 Jul 2015 04:32:20 -0700 (PDT) Received: by 10.76.0.46 with HTTP; Tue, 14 Jul 2015 04:32:20 -0700 (PDT) X-Originating-IP: [84.27.222.46] In-Reply-To: <20150714110126.GV2404@kib.kiev.ua> References: <201507111941.t6BJfV1a072539@repo.freebsd.org> <20150711194732.GB2404@kib.kiev.ua> <20150711205611.GC2404@kib.kiev.ua> <20150714110126.GV2404@kib.kiev.ua> Date: Tue, 14 Jul 2015 13:32:20 +0200 Message-ID: Subject: Re: svn commit: r285404 - head/sys/compat/cloudabi From: Ed Schouten To: Konstantin Belousov Cc: Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 11:32:21 -0000 Hi Kostik, > Exactly. I think that for programs that are built around pipelines, > where a series of processes have stdin/stdout attached, having > something like SIGPIPE makes sense. So far the focus It looks like I accidentally truncated the last sentence. Sorry about that. "So far the focus with CloudABI is on running services, in which stdin/stdout typically don't play a role." 2015-07-14 13:01 GMT+02:00 Konstantin Belousov : > On Tue, Jul 14, 2015 at 12:22:51PM +0200, Ed Schouten wrote: >> Ah, okay. Now I think I understand what you're hinting at. So your >> proposal is to let cloudabi_sys_proc_raise() only call into >> sys_kill(), nothing else. We then reset all signals to their default >> behavior at some point during process startup. >> >> Let me address this by the time I'm sending out the CloudABI sysentvec >> for review, as that would be the place where I'd need to do that. I'll >> remove the call to kern_sigaction() in the meantime. Does that sound >> all right? > > Sounds fine. But, I do not recomment to use sys_kill(), which is > the FreeBSD syscall implementation. You should use pksignal(9) or > similar function directly, IMO. Minor code duplication to create > proper ksiginfo is not critical, while you do not need pfind() or > complications with negative pid values. That sounds like a good idea. I just sent you a code review: https://reviews.freebsd.org/D3076 Thanks for your time! -- Ed Schouten Nuxi, 's-Hertogenbosch, the Netherlands KvK/VAT number: 62051717 From owner-svn-src-head@freebsd.org Tue Jul 14 11:59:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFE2D99C1C1; Tue, 14 Jul 2015 11:59:44 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9FE1A756; Tue, 14 Jul 2015 11:59:44 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EBxigJ053507; Tue, 14 Jul 2015 11:59:44 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EBxioW053506; Tue, 14 Jul 2015 11:59:44 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507141159.t6EBxioW053506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 14 Jul 2015 11:59:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285533 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 11:59:44 -0000 Author: zbb Date: Tue Jul 14 11:59:43 2015 New Revision: 285533 URL: https://svnweb.freebsd.org/changeset/base/285533 Log: Fix intr_machdep.c for ARM64 On ARMv8 IPIs are mapped to 0-15. Incrementing the number by 16 is wrong, because it sets a reserved bit in the IPI register. This patch removes all "+16" to comply with specs. Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3029 Modified: head/sys/arm64/arm64/intr_machdep.c Modified: head/sys/arm64/arm64/intr_machdep.c ============================================================================== --- head/sys/arm64/arm64/intr_machdep.c Tue Jul 14 11:37:26 2015 (r285532) +++ head/sys/arm64/arm64/intr_machdep.c Tue Jul 14 11:59:43 2015 (r285533) @@ -451,8 +451,7 @@ void arm_setup_ipihandler(driver_filter_t *filt, u_int ipi) { - /* ARM64TODO: The hard coded 16 will be fixed with am_intrng */ - arm_setup_intr("ipi", filt, NULL, (void *)((uintptr_t)ipi | 1<<16), ipi + 16, + arm_setup_intr("ipi", filt, NULL, (void *)((uintptr_t)ipi | 1<<16), ipi, INTR_TYPE_MISC | INTR_EXCL, NULL); arm_unmask_ipi(ipi); } @@ -460,7 +459,8 @@ arm_setup_ipihandler(driver_filter_t *fi void arm_unmask_ipi(u_int ipi) { - PIC_UNMASK(root_pic, ipi + 16); + + PIC_UNMASK(root_pic, ipi); } void @@ -494,9 +494,6 @@ ipi_cpu(int cpu, u_int ipi) CPU_ZERO(&cpus); CPU_SET(cpu, &cpus); - /* ARM64TODO: This will be fixed with arm_intrng */ - ipi += 16; - CTR2(KTR_SMP, "ipi_cpu: cpu: %d, ipi: %x", cpu, ipi); PIC_IPI_SEND(root_pic, cpus, ipi); } @@ -505,9 +502,6 @@ void ipi_selected(cpuset_t cpus, u_int ipi) { - /* ARM64TODO: This will be fixed with arm_intrng */ - ipi += 16; - CTR1(KTR_SMP, "ipi_selected: ipi: %x", ipi); PIC_IPI_SEND(root_pic, cpus, ipi); } From owner-svn-src-head@freebsd.org Tue Jul 14 12:02:57 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AAE9199C988; Tue, 14 Jul 2015 12:02:57 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9B5F9E44; Tue, 14 Jul 2015 12:02:57 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EC2v6I057627; Tue, 14 Jul 2015 12:02:57 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EC2vaQ057626; Tue, 14 Jul 2015 12:02:57 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507141202.t6EC2vaQ057626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 14 Jul 2015 12:02:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285534 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 12:02:57 -0000 Author: zbb Date: Tue Jul 14 12:02:56 2015 New Revision: 285534 URL: https://svnweb.freebsd.org/changeset/base/285534 Log: Fix secondary PIC initialization order Call arm_init_secondary before any other PIC-related functions are called. This is necessary for GICv3 where PIC_INIT_SECONDARY allocates resources needed for all further operations. Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3066 Modified: head/sys/arm64/arm64/mp_machdep.c Modified: head/sys/arm64/arm64/mp_machdep.c ============================================================================== --- head/sys/arm64/arm64/mp_machdep.c Tue Jul 14 11:59:43 2015 (r285533) +++ head/sys/arm64/arm64/mp_machdep.c Tue Jul 14 12:02:56 2015 (r285534) @@ -229,6 +229,9 @@ init_secondary(uint64_t cpu) pcpup->pc_curthread = pcpup->pc_idlethread; pcpup->pc_curpcb = pcpup->pc_idlethread->td_pcb; + /* Configure the interrupt controller */ + arm_init_secondary(); + for (i = 0; i < COUNT_IPI; i++) arm_unmask_ipi(i); @@ -239,9 +242,6 @@ init_secondary(uint64_t cpu) vfp_init(); #endif - /* Configure the interrupt controller */ - arm_init_secondary(); - /* Enable interrupts */ intr_enable(); From owner-svn-src-head@freebsd.org Tue Jul 14 12:16:15 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 913F699CCB9; Tue, 14 Jul 2015 12:16:15 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 67CC2AAD; Tue, 14 Jul 2015 12:16:15 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ECGFG3063526; Tue, 14 Jul 2015 12:16:15 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6ECGF0T063525; Tue, 14 Jul 2015 12:16:15 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507141216.t6ECGF0T063525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 12:16:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285535 - head/sys/compat/cloudabi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 12:16:15 -0000 Author: ed Date: Tue Jul 14 12:16:14 2015 New Revision: 285535 URL: https://svnweb.freebsd.org/changeset/base/285535 Log: Let proc_raise() call into pksignal() directly. Summary: As discussed with kib@ in response to r285404, don't call into kern_sigaction() within proc_raise() to reset the signal to the default action before delivery. We'd better do that during image execution. Change the code to simply use pksignal(), so we don't waste cycles on functions like pfind() to look up the currently running process itself. Test Plan: This change has also been pushed into the cloudabi branch on GitHub. The raise() tests still seem to pass. Reviewers: kib Reviewed By: kib Subscribers: imp Differential Revision: https://reviews.freebsd.org/D3076 Modified: head/sys/compat/cloudabi/cloudabi_proc.c Modified: head/sys/compat/cloudabi/cloudabi_proc.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_proc.c Tue Jul 14 12:02:56 2015 (r285534) +++ head/sys/compat/cloudabi/cloudabi_proc.c Tue Jul 14 12:16:14 2015 (r285535) @@ -27,9 +27,10 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include -#include -#include +#include #include @@ -92,21 +93,22 @@ cloudabi_sys_proc_raise(struct thread *t [CLOUDABI_SIGXCPU] = SIGXCPU, [CLOUDABI_SIGXFSZ] = SIGXFSZ, }; - static const struct sigaction sigdfl = { - .sa_handler = SIG_DFL, - }; - struct kill_args kill_args = { - .pid = td->td_proc->p_pid, - }; + ksiginfo_t ksi; + struct proc *p; - if (uap->sig >= nitems(signals) || - (uap->sig != 0 && signals[uap->sig] == 0)) { - /* Invalid signal. */ - return (EINVAL); + if (uap->sig >= nitems(signals) || signals[uap->sig] == 0) { + /* Invalid signal, or the null signal. */ + return (uap->sig == 0 ? 0 : EINVAL); } - kill_args.signum = signals[uap->sig]; - /* Restore to default signal action and send signal. */ - kern_sigaction(td, kill_args.signum, &sigdfl, NULL, 0); - return (sys_kill(td, &kill_args)); + p = td->td_proc; + ksiginfo_init(&ksi); + ksi.ksi_signo = signals[uap->sig]; + ksi.ksi_code = SI_USER; + ksi.ksi_pid = p->p_pid; + ksi.ksi_uid = td->td_ucred->cr_ruid; + PROC_LOCK(p); + pksignal(p, ksi.ksi_signo, &ksi); + PROC_UNLOCK(p); + return (0); } From owner-svn-src-head@freebsd.org Tue Jul 14 12:37:48 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECFD899932C; Tue, 14 Jul 2015 12:37:48 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 DD16191F; Tue, 14 Jul 2015 12:37:48 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ECbmrj074047; Tue, 14 Jul 2015 12:37:48 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6ECbl4c074043; Tue, 14 Jul 2015 12:37:47 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201507141237.t6ECbl4c074043@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 14 Jul 2015 12:37:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285537 - in head/sys/arm64: arm64 include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 12:37:49 -0000 Author: andrew Date: Tue Jul 14 12:37:47 2015 New Revision: 285537 URL: https://svnweb.freebsd.org/changeset/base/285537 Log: Set memory to be inner-sharable. This isn't needed on device memory as the MMU will ignore the attribute there, howeverit simplifies to code to alwas set it. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation Modified: head/sys/arm64/arm64/locore.S head/sys/arm64/arm64/pmap.c head/sys/arm64/include/pte.h Modified: head/sys/arm64/arm64/locore.S ============================================================================== --- head/sys/arm64/arm64/locore.S Tue Jul 14 12:21:47 2015 (r285536) +++ head/sys/arm64/arm64/locore.S Tue Jul 14 12:37:47 2015 (r285537) @@ -469,6 +469,9 @@ build_block_pagetable: lsl x12, x7, #2 orr x12, x12, #L2_BLOCK orr x12, x12, #(ATTR_AF) +#ifdef SMP + orr x12, x12, ATTR_SH(ATTR_SH_IS) +#endif /* Only use the output address bits */ lsr x9, x9, #L2_SHIFT Modified: head/sys/arm64/arm64/pmap.c ============================================================================== --- head/sys/arm64/arm64/pmap.c Tue Jul 14 12:21:47 2015 (r285536) +++ head/sys/arm64/arm64/pmap.c Tue Jul 14 12:37:47 2015 (r285537) @@ -428,8 +428,8 @@ pmap_bootstrap_dmap(vm_offset_t l1pt) KASSERT(l1_slot < Ln_ENTRIES, ("Invalid L1 index")); pmap_load_store(&l1[l1_slot], - (pa & ~L1_OFFSET) | ATTR_AF | L1_BLOCK | - ATTR_IDX(CACHED_MEMORY)); + (pa & ~L1_OFFSET) | ATTR_DEFAULT | + ATTR_IDX(CACHED_MEMORY) | L1_BLOCK); } cpu_dcache_wb_range((vm_offset_t)l1, PAGE_SIZE); @@ -860,8 +860,8 @@ pmap_kenter_device(vm_offset_t sva, vm_s while (size != 0) { l3 = pmap_l3(kernel_pmap, va); KASSERT(l3 != NULL, ("Invalid page table, va: 0x%lx", va)); - pmap_load_store(l3, (pa & ~L3_OFFSET) | ATTR_AF | L3_PAGE | - ATTR_IDX(DEVICE_MEMORY)); + pmap_load_store(l3, (pa & ~L3_OFFSET) | ATTR_DEFAULT | + ATTR_IDX(DEVICE_MEMORY) | L3_PAGE); PTE_SYNC(l3); va += PAGE_SIZE; @@ -953,8 +953,8 @@ pmap_qenter(vm_offset_t sva, vm_page_t * va = sva; for (i = 0; i < count; i++) { m = ma[i]; - pa = VM_PAGE_TO_PHYS(m) | ATTR_AF | - ATTR_IDX(m->md.pv_memattr) | ATTR_AP(ATTR_AP_RW) | L3_PAGE; + pa = VM_PAGE_TO_PHYS(m) | ATTR_DEFAULT | ATTR_AP(ATTR_AP_RW) | + ATTR_IDX(m->md.pv_memattr) | L3_PAGE; l3 = pmap_l3(kernel_pmap, va); pmap_load_store(l3, pa); PTE_SYNC(l3); @@ -1214,8 +1214,7 @@ _pmap_alloc_l3(pmap_t pmap, vm_pindex_t l2 = (pd_entry_t *)PHYS_TO_DMAP(*l1 & ~ATTR_MASK); l2 = &l2[ptepindex & Ln_ADDR_MASK]; - pmap_load_store(l2, VM_PAGE_TO_PHYS(m) | ATTR_AF | - ATTR_IDX(CACHED_MEMORY) | L2_TABLE); + pmap_load_store(l2, VM_PAGE_TO_PHYS(m) | L2_TABLE); PTE_SYNC(l2); } @@ -1907,14 +1906,14 @@ pmap_enter(pmap_t pmap, vm_offset_t va, if ((m->oflags & VPO_UNMANAGED) == 0 && !vm_page_xbusied(m)) VM_OBJECT_ASSERT_LOCKED(m->object); pa = VM_PAGE_TO_PHYS(m); - new_l3 = (pt_entry_t)(pa | ATTR_AF | L3_PAGE); + new_l3 = (pt_entry_t)(pa | ATTR_DEFAULT | ATTR_IDX(m->md.pv_memattr) | + L3_PAGE); if ((prot & VM_PROT_WRITE) == 0) new_l3 |= ATTR_AP(ATTR_AP_RO); if ((flags & PMAP_ENTER_WIRED) != 0) new_l3 |= ATTR_SW_WIRED; if ((va >> 63) == 0) new_l3 |= ATTR_AP(ATTR_AP_USER); - new_l3 |= ATTR_IDX(m->md.pv_memattr); CTR2(KTR_PMAP, "pmap_enter: %.16lx -> %.16lx", va, pa); @@ -2243,7 +2242,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ */ pmap_resident_count_inc(pmap, 1); - pa = VM_PAGE_TO_PHYS(m) | ATTR_AF | ATTR_IDX(m->md.pv_memattr) | + pa = VM_PAGE_TO_PHYS(m) | ATTR_DEFAULT | ATTR_IDX(m->md.pv_memattr) | ATTR_AP(ATTR_AP_RW) | L3_PAGE; /* Modified: head/sys/arm64/include/pte.h ============================================================================== --- head/sys/arm64/include/pte.h Tue Jul 14 12:21:47 2015 (r285536) +++ head/sys/arm64/include/pte.h Tue Jul 14 12:37:47 2015 (r285537) @@ -63,6 +63,12 @@ typedef uint64_t pt_entry_t; /* page ta #define ATTR_IDX(x) ((x) << 2) #define ATTR_IDX_MASK (7 << 2) +#ifdef SMP +#define ATTR_DEFAULT (ATTR_AF | ATTR_SH(ATTR_SH_IS)) +#else +#define ATTR_DEFAULT (ATTR_AF) +#endif + #define ATTR_DESCR_MASK 3 /* Level 0 table, 512GiB per entry */ From owner-svn-src-head@freebsd.org Tue Jul 14 14:01:35 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 104B79A107C; Tue, 14 Jul 2015 14:01:35 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E42DDE03; Tue, 14 Jul 2015 14:01:34 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EE1Y8Y017598; Tue, 14 Jul 2015 14:01:34 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EE1XHt017594; Tue, 14 Jul 2015 14:01:33 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507141401.t6EE1XHt017594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 14 Jul 2015 14:01:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285538 - in head/sbin/ggate: ggatec ggated ggatel X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 14:01:35 -0000 Author: brueffer Date: Tue Jul 14 14:01:33 2015 New Revision: 285538 URL: https://svnweb.freebsd.org/changeset/base/285538 Log: Cleanup; mostly language with a little bit of mdoc style. MFC after: 1 week Modified: head/sbin/ggate/ggatec/ggatec.8 head/sbin/ggate/ggated/ggated.8 head/sbin/ggate/ggatel/ggatel.8 Modified: head/sbin/ggate/ggatec/ggatec.8 ============================================================================== --- head/sbin/ggate/ggatec/ggatec.8 Tue Jul 14 12:37:47 2015 (r285537) +++ head/sbin/ggate/ggatec/ggatec.8 Tue Jul 14 14:01:33 2015 (r285538) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 2, 2015 +.Dd July 14, 2015 .Dt GGATEC 8 .Os .Sh NAME @@ -71,8 +71,8 @@ utility is a network client for the GEOM It is responsible for the creation of .Nm ggate devices and forwarding I/O requests between the -.Nm geom_gate.ko -kernel module and the +.Nm GEOM Gate +kernel subsystem and the .Xr ggated 8 network daemon. Available commands: @@ -111,7 +111,7 @@ Do not use .Dv TCP_NODELAY option on TCP sockets. .It Fl o Cm ro | wo | rw -Specify permission to use when opening the file or device: read-only +Specify permissions to use when opening the file or device: read-only .Pq Cm ro , write-only .Pq Cm wo , @@ -136,7 +136,7 @@ Default is 131072 (128kB). Sector size for .Nm ggate provider. -If not specified, it is taken from device, or set to 512 bytes for files. +If not specified, it is taken from the device, or set to 512 bytes for files. .It Fl t Ar timeout Number of seconds to wait before an I/O request will be canceled. Default is 0, which means no timeout. Modified: head/sbin/ggate/ggated/ggated.8 ============================================================================== --- head/sbin/ggate/ggated/ggated.8 Tue Jul 14 12:37:47 2015 (r285537) +++ head/sbin/ggate/ggated/ggated.8 Tue Jul 14 14:01:33 2015 (r285538) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 29, 2004 +.Dd July 14, 2015 .Dt GGATED 8 .Os .Sh NAME @@ -43,14 +43,14 @@ .Sh DESCRIPTION The .Nm -utility is a network server for GEOM Gate class. +utility is a network server for the GEOM Gate class. It runs on a server machine to service GEOM Gate requests from workers placed on a client machine. -Keep in mind, that connection between +Keep in mind, that connections between .Xr ggatec 8 and .Nm -is not encrypted. +are not encrypted. .Pp Available options: .Bl -tag -width ".Ar exports\ file" @@ -65,7 +65,7 @@ option on TCP sockets. .It Fl p Ar port Port on which .Nm -listens for connection. +listens for connections. Default is 3080. .It Fl R Ar rcvbuf Size of receive buffer to use. @@ -74,7 +74,7 @@ Default is 131072 (128kB). Size of send buffer to use. Default is 131072 (128kB). .It Fl v -Do not fork, run in foreground and print debug informations on standard +Do not fork, run in foreground and print debug information on standard output. .It Ar "exports file" An alternate location for the exports file. Modified: head/sbin/ggate/ggatel/ggatel.8 ============================================================================== --- head/sbin/ggate/ggatel/ggatel.8 Tue Jul 14 12:37:47 2015 (r285537) +++ head/sbin/ggate/ggatel/ggatel.8 Tue Jul 14 14:01:33 2015 (r285538) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 9, 2015 +.Dd July 14, 2015 .Dt GGATEL 8 .Os .Sh NAME @@ -62,7 +62,7 @@ It can be used as a replacement for devices or as a .Dq GEOMificator for non GEOM-aware devices, but it was mainly created as an example -on how to use and how to communicate with the GEOM Gate kernel module. +on how to use and how to communicate with the GEOM Gate kernel subsystem. .Pp Available commands: .Bl -tag -width ".Cm destroy" @@ -82,7 +82,8 @@ providers. Take over a previously created provider and handle pending and future requests. This is useful if the initial .Nm -process died. To prevent data loss, the given path must lead to the +process died. +To prevent data loss, the given path must lead to the regular file or device that was used to create the provider. .El .Pp @@ -93,7 +94,7 @@ Forcibly destroy .Nm ggate provider (cancels all pending requests). .It Fl o Cm ro | wo | rw -Specify permission to use when opening the file or device: read-only +Specify permissions to use when opening the file or device: read-only .Pq Cm ro , write-only .Pq Cm wo , @@ -105,7 +106,7 @@ Default is Sector size for .Nm ggate provider. -If not specified, it is taken from device, or set to 512 bytes for files. +If not specified, it is taken from the device, or set to 512 bytes for files. .It Fl t Ar timeout Number of seconds to wait before an I/O request will be canceled. 0 means no timeout. @@ -131,7 +132,7 @@ the .Dq Li fd0 device and use .Xr gbde 8 -to encrypt data on a floppy. +to encrypt data on a floppy disk. .Bd -literal -offset indent ggatel create -u 5 /dev/fd0 gbde init /dev/ggate5 From owner-svn-src-head@freebsd.org Tue Jul 14 14:33:22 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FCE89A1D4A; Tue, 14 Jul 2015 14:33:22 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2032BACC; Tue, 14 Jul 2015 14:33:22 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EEXLsG035059; Tue, 14 Jul 2015 14:33:21 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EEXLkn035058; Tue, 14 Jul 2015 14:33:21 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507141433.t6EEXLkn035058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 14:33:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285539 - head/sys/compat/cloudabi64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 14:33:22 -0000 Author: ed Date: Tue Jul 14 14:33:21 2015 New Revision: 285539 URL: https://svnweb.freebsd.org/changeset/base/285539 Log: Implement {,p}{read,write}{,v}(). Add a routine similar to copyinuio() and freebsd32_copyinuio() that copies in CloudABI's struct iovecs. These are then translated into FreeBSD format and placed in a 'struct uio', so we can call into the kern_*() functions. Obtained from: https://github.com/NuxiNL/freebsd Modified: head/sys/compat/cloudabi64/cloudabi64_fd.c Modified: head/sys/compat/cloudabi64/cloudabi64_fd.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_fd.c Tue Jul 14 14:01:33 2015 (r285538) +++ head/sys/compat/cloudabi64/cloudabi64_fd.c Tue Jul 14 14:33:21 2015 (r285539) @@ -26,41 +26,120 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include +#include +#include +#include +#include + #include #include +/* Copies in 64-bit iovec structures from userspace. */ +static int +cloudabi64_copyinuio(const cloudabi64_iovec_t *iovp, size_t iovcnt, + struct uio **uiop) +{ + cloudabi64_iovec_t iovobj; + struct uio *uio; + struct iovec *iov; + size_t i; + int error; + + /* Allocate uio and iovecs. */ + if (iovcnt > UIO_MAXIOV) + return (EINVAL); + uio = malloc(sizeof(struct uio) + iovcnt * sizeof(struct iovec), + M_IOV, M_WAITOK); + iov = (struct iovec *)(uio + 1); + + /* Initialize uio. */ + uio->uio_iov = iov; + uio->uio_iovcnt = iovcnt; + uio->uio_segflg = UIO_USERSPACE; + uio->uio_offset = -1; + uio->uio_resid = 0; + + /* Copy in iovecs. */ + for (i = 0; i < iovcnt; i++) { + error = copyin(&iovp[i], &iovobj, sizeof(iovobj)); + if (error != 0) { + free(uio, M_IOV); + return (error); + } + iov[i].iov_base = (void *)iovobj.iov_base; + iov[i].iov_len = iovobj.iov_len; + if (iov[i].iov_len > SSIZE_MAX - uio->uio_resid) { + free(uio, M_IOV); + return (EINVAL); + } + uio->uio_resid += iov[i].iov_len; + } + + *uiop = uio; + return (0); +} + int cloudabi64_sys_fd_pread(struct thread *td, struct cloudabi64_sys_fd_pread_args *uap) { + struct uio *uio; + int error; - /* Not implemented. */ - return (ENOSYS); + error = cloudabi64_copyinuio(uap->iov, uap->iovcnt, &uio); + if (error != 0) + return (error); + error = kern_preadv(td, uap->fd, uio, uap->offset); + free(uio, M_IOV); + return (error); } int cloudabi64_sys_fd_pwrite(struct thread *td, struct cloudabi64_sys_fd_pwrite_args *uap) { + struct uio *uio; + int error; - /* Not implemented. */ - return (ENOSYS); + error = cloudabi64_copyinuio((const cloudabi64_iovec_t *)uap->iov, + uap->iovcnt, &uio); + if (error != 0) + return (error); + error = kern_pwritev(td, uap->fd, uio, uap->offset); + free(uio, M_IOV); + return (error); } int cloudabi64_sys_fd_read(struct thread *td, struct cloudabi64_sys_fd_read_args *uap) { + struct uio *uio; + int error; - /* Not implemented. */ - return (ENOSYS); + error = cloudabi64_copyinuio(uap->iov, uap->iovcnt, &uio); + if (error != 0) + return (error); + error = kern_readv(td, uap->fd, uio); + free(uio, M_IOV); + return (error); } int cloudabi64_sys_fd_write(struct thread *td, struct cloudabi64_sys_fd_write_args *uap) { + struct uio *uio; + int error; - /* Not implemented. */ - return (ENOSYS); + error = cloudabi64_copyinuio((const cloudabi64_iovec_t *)uap->iov, + uap->iovcnt, &uio); + if (error != 0) + return (error); + error = kern_writev(td, uap->fd, uio); + free(uio, M_IOV); + return (error); } From owner-svn-src-head@freebsd.org Tue Jul 14 15:11:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 372BA9A1895; Tue, 14 Jul 2015 15:11:52 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 13A6EC5; Tue, 14 Jul 2015 15:11:52 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EFBp0T056577; Tue, 14 Jul 2015 15:11:51 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EFBoNg056572; Tue, 14 Jul 2015 15:11:50 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507141511.t6EFBoNg056572@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 15:11:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285540 - in head/sys/compat: cloudabi cloudabi64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:11:52 -0000 Author: ed Date: Tue Jul 14 15:11:50 2015 New Revision: 285540 URL: https://svnweb.freebsd.org/changeset/base/285540 Log: Implement thread_tcb_set() and thread_yield(). The first system call is used to set the user TLS address. Right now this system call is invoked by the C library for both the initial thread and additional threads unconditionally, but in the future we'll only call this if the architecture does not support this. On recent x86-64 CPUs we could use the WRFSBASE instruction. This system call was erroneously placed in sys/compat/cloudabi64, even though it does not depend on any pointer size dependent datastructure. Move it to the right place. Obtained from: https://github.com/NuxiNL/freebsd Modified: head/sys/compat/cloudabi/cloudabi_thread.c head/sys/compat/cloudabi64/cloudabi64_thread.c head/sys/compat/cloudabi64/syscalls.master Modified: head/sys/compat/cloudabi/cloudabi_thread.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_thread.c Tue Jul 14 14:33:21 2015 (r285539) +++ head/sys/compat/cloudabi/cloudabi_thread.c Tue Jul 14 15:11:50 2015 (r285540) @@ -26,6 +26,10 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include + #include int @@ -38,10 +42,18 @@ cloudabi_sys_thread_exit(struct thread * } int +cloudabi_sys_thread_tcb_set(struct thread *td, + struct cloudabi_sys_thread_tcb_set_args *uap) +{ + + return (cpu_set_user_tls(td, uap->tcb)); +} + +int cloudabi_sys_thread_yield(struct thread *td, struct cloudabi_sys_thread_yield_args *uap) { - /* Not implemented. */ - return (ENOSYS); + sched_relinquish(td); + return (0); } Modified: head/sys/compat/cloudabi64/cloudabi64_thread.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_thread.c Tue Jul 14 14:33:21 2015 (r285539) +++ head/sys/compat/cloudabi64/cloudabi64_thread.c Tue Jul 14 15:11:50 2015 (r285540) @@ -37,12 +37,3 @@ cloudabi64_sys_thread_create(struct thre /* Not implemented. */ return (ENOSYS); } - -int -cloudabi64_sys_thread_tcb_set(struct thread *td, - struct cloudabi64_sys_thread_tcb_set_args *uap) -{ - - /* Not implemented. */ - return (ENOSYS); -} Modified: head/sys/compat/cloudabi64/syscalls.master ============================================================================== --- head/sys/compat/cloudabi64/syscalls.master Tue Jul 14 14:33:21 2015 (r285539) +++ head/sys/compat/cloudabi64/syscalls.master Tue Jul 14 15:11:50 2015 (r285540) @@ -207,6 +207,5 @@ cloudabi64_threadattr_t *attr); } 54 AUE_NULL STD { void cloudabi_sys_thread_exit( \ cloudabi_lock_t *lock); } -55 AUE_NULL STD { void cloudabi64_sys_thread_tcb_set( \ - void *tcb); } +55 AUE_NULL STD { void cloudabi_sys_thread_tcb_set(void *tcb); } 56 AUE_NULL STD { void cloudabi_sys_thread_yield(); } From owner-svn-src-head@freebsd.org Tue Jul 14 15:12:27 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 298A29A18F8; Tue, 14 Jul 2015 15:12:27 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0C460696; Tue, 14 Jul 2015 15:12:27 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EFCQLH057580; Tue, 14 Jul 2015 15:12:26 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EFCPTI057562; Tue, 14 Jul 2015 15:12:25 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507141512.t6EFCPTI057562@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 15:12:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285541 - head/sys/compat/cloudabi64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:12:27 -0000 Author: ed Date: Tue Jul 14 15:12:24 2015 New Revision: 285541 URL: https://svnweb.freebsd.org/changeset/base/285541 Log: Regenerate system call table for r285540. Modified: head/sys/compat/cloudabi64/cloudabi64_proto.h head/sys/compat/cloudabi64/cloudabi64_syscall.h head/sys/compat/cloudabi64/cloudabi64_syscalls.c head/sys/compat/cloudabi64/cloudabi64_sysent.c head/sys/compat/cloudabi64/cloudabi64_systrace_args.c Modified: head/sys/compat/cloudabi64/cloudabi64_proto.h ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_proto.h Tue Jul 14 15:11:50 2015 (r285540) +++ head/sys/compat/cloudabi64/cloudabi64_proto.h Tue Jul 14 15:12:24 2015 (r285541) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285307 2015-07-09 07:20:15Z ed + * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285540 2015-07-14 15:11:50Z ed */ #ifndef _CLOUDABI64_SYSPROTO_H_ @@ -301,7 +301,7 @@ struct cloudabi64_sys_thread_create_args struct cloudabi_sys_thread_exit_args { char lock_l_[PADL_(cloudabi_lock_t *)]; cloudabi_lock_t * lock; char lock_r_[PADR_(cloudabi_lock_t *)]; }; -struct cloudabi64_sys_thread_tcb_set_args { +struct cloudabi_sys_thread_tcb_set_args { char tcb_l_[PADL_(void *)]; void * tcb; char tcb_r_[PADR_(void *)]; }; struct cloudabi_sys_thread_yield_args { @@ -362,7 +362,7 @@ int cloudabi_sys_sock_shutdown(struct th int cloudabi_sys_sock_stat_get(struct thread *, struct cloudabi_sys_sock_stat_get_args *); int cloudabi64_sys_thread_create(struct thread *, struct cloudabi64_sys_thread_create_args *); int cloudabi_sys_thread_exit(struct thread *, struct cloudabi_sys_thread_exit_args *); -int cloudabi64_sys_thread_tcb_set(struct thread *, struct cloudabi64_sys_thread_tcb_set_args *); +int cloudabi_sys_thread_tcb_set(struct thread *, struct cloudabi_sys_thread_tcb_set_args *); int cloudabi_sys_thread_yield(struct thread *, struct cloudabi_sys_thread_yield_args *); #ifdef COMPAT_43 @@ -443,7 +443,7 @@ int cloudabi_sys_thread_yield(struct thr #define CLOUDABI64_SYS_AUE_cloudabi_sys_sock_stat_get AUE_NULL #define CLOUDABI64_SYS_AUE_cloudabi64_sys_thread_create AUE_NULL #define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_exit AUE_NULL -#define CLOUDABI64_SYS_AUE_cloudabi64_sys_thread_tcb_set AUE_NULL +#define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_tcb_set AUE_NULL #define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_yield AUE_NULL #undef PAD_ Modified: head/sys/compat/cloudabi64/cloudabi64_syscall.h ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_syscall.h Tue Jul 14 15:11:50 2015 (r285540) +++ head/sys/compat/cloudabi64/cloudabi64_syscall.h Tue Jul 14 15:12:24 2015 (r285541) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285307 2015-07-09 07:20:15Z ed + * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285540 2015-07-14 15:11:50Z ed */ #define CLOUDABI64_SYS_cloudabi_sys_clock_res_get 0 @@ -61,6 +61,6 @@ #define CLOUDABI64_SYS_cloudabi_sys_sock_stat_get 52 #define CLOUDABI64_SYS_cloudabi64_sys_thread_create 53 #define CLOUDABI64_SYS_cloudabi_sys_thread_exit 54 -#define CLOUDABI64_SYS_cloudabi64_sys_thread_tcb_set 55 +#define CLOUDABI64_SYS_cloudabi_sys_thread_tcb_set 55 #define CLOUDABI64_SYS_cloudabi_sys_thread_yield 56 #define CLOUDABI64_SYS_MAXSYSCALL 57 Modified: head/sys/compat/cloudabi64/cloudabi64_syscalls.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_syscalls.c Tue Jul 14 15:11:50 2015 (r285540) +++ head/sys/compat/cloudabi64/cloudabi64_syscalls.c Tue Jul 14 15:12:24 2015 (r285541) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285307 2015-07-09 07:20:15Z ed + * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285540 2015-07-14 15:11:50Z ed */ const char *cloudabi64_syscallnames[] = { @@ -62,6 +62,6 @@ const char *cloudabi64_syscallnames[] = "cloudabi_sys_sock_stat_get", /* 52 = cloudabi_sys_sock_stat_get */ "cloudabi64_sys_thread_create", /* 53 = cloudabi64_sys_thread_create */ "cloudabi_sys_thread_exit", /* 54 = cloudabi_sys_thread_exit */ - "cloudabi64_sys_thread_tcb_set", /* 55 = cloudabi64_sys_thread_tcb_set */ + "cloudabi_sys_thread_tcb_set", /* 55 = cloudabi_sys_thread_tcb_set */ "cloudabi_sys_thread_yield", /* 56 = cloudabi_sys_thread_yield */ }; Modified: head/sys/compat/cloudabi64/cloudabi64_sysent.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_sysent.c Tue Jul 14 15:11:50 2015 (r285540) +++ head/sys/compat/cloudabi64/cloudabi64_sysent.c Tue Jul 14 15:12:24 2015 (r285541) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285307 2015-07-09 07:20:15Z ed + * created from FreeBSD: head/sys/compat/cloudabi64/syscalls.master 285540 2015-07-14 15:11:50Z ed */ #include @@ -70,6 +70,6 @@ struct sysent cloudabi64_sysent[] = { { AS(cloudabi_sys_sock_stat_get_args), (sy_call_t *)cloudabi_sys_sock_stat_get, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 52 = cloudabi_sys_sock_stat_get */ { AS(cloudabi64_sys_thread_create_args), (sy_call_t *)cloudabi64_sys_thread_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 53 = cloudabi64_sys_thread_create */ { AS(cloudabi_sys_thread_exit_args), (sy_call_t *)cloudabi_sys_thread_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 54 = cloudabi_sys_thread_exit */ - { AS(cloudabi64_sys_thread_tcb_set_args), (sy_call_t *)cloudabi64_sys_thread_tcb_set, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 55 = cloudabi64_sys_thread_tcb_set */ + { AS(cloudabi_sys_thread_tcb_set_args), (sy_call_t *)cloudabi_sys_thread_tcb_set, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 55 = cloudabi_sys_thread_tcb_set */ { 0, (sy_call_t *)cloudabi_sys_thread_yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 56 = cloudabi_sys_thread_yield */ }; Modified: head/sys/compat/cloudabi64/cloudabi64_systrace_args.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_systrace_args.c Tue Jul 14 15:11:50 2015 (r285540) +++ head/sys/compat/cloudabi64/cloudabi64_systrace_args.c Tue Jul 14 15:12:24 2015 (r285541) @@ -496,9 +496,9 @@ systrace_args(int sysnum, void *params, *n_args = 1; break; } - /* cloudabi64_sys_thread_tcb_set */ + /* cloudabi_sys_thread_tcb_set */ case 55: { - struct cloudabi64_sys_thread_tcb_set_args *p = params; + struct cloudabi_sys_thread_tcb_set_args *p = params; uarg[0] = (intptr_t) p->tcb; /* void * */ *n_args = 1; break; @@ -1367,7 +1367,7 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; - /* cloudabi64_sys_thread_tcb_set */ + /* cloudabi_sys_thread_tcb_set */ case 55: switch(ndx) { case 0: @@ -1663,7 +1663,7 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "void"; break; - /* cloudabi64_sys_thread_tcb_set */ + /* cloudabi_sys_thread_tcb_set */ case 55: if (ndx == 0 || ndx == 1) p = "void"; From owner-svn-src-head@freebsd.org Tue Jul 14 15:21:01 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 901CC9A1C13; Tue, 14 Jul 2015 15:21:01 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7A4B832B; Tue, 14 Jul 2015 15:21:01 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EFL1Fj063491; Tue, 14 Jul 2015 15:21:01 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EFL1m8063490; Tue, 14 Jul 2015 15:21:01 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507141521.t6EFL1m8063490@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 14 Jul 2015 15:21:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285542 - head/lib/msun/man X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:21:01 -0000 Author: bapt Date: Tue Jul 14 15:21:00 2015 New Revision: 285542 URL: https://svnweb.freebsd.org/changeset/base/285542 Log: .ie is not supposed to be used in manpages Submitted by: carsten.kunze@arcor.de Modified: head/lib/msun/man/cacos.3 Modified: head/lib/msun/man/cacos.3 ============================================================================== --- head/lib/msun/man/cacos.3 Tue Jul 14 15:12:24 2015 (r285541) +++ head/lib/msun/man/cacos.3 Tue Jul 14 15:21:00 2015 (r285542) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 27, 2013 +.Dd Jul 14, 2015 .Dt CACOS 3 .Os .Sh NAME @@ -98,11 +98,7 @@ functions perform the same operations in .Fa float precision. .Pp -.ie '\*[.T]'utf8' -. ds Un \[cu] -.el -. ds Un U -. +.ds Un \[cu] There is no universal convention for defining the principal values of these functions. The following table gives the branch cuts, and the corresponding ranges for the return values, adopted by the C language. From owner-svn-src-head@freebsd.org Tue Jul 14 15:24:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7633E9A1CDB; Tue, 14 Jul 2015 15:24:52 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 55842940; Tue, 14 Jul 2015 15:24:52 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EFOp5e063999; Tue, 14 Jul 2015 15:24:51 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EFOpHO063998; Tue, 14 Jul 2015 15:24:51 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507141524.t6EFOpHO063998@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Tue, 14 Jul 2015 15:24:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285543 - head/tools/regression/lib/libc/nss X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:24:52 -0000 Author: brueffer Date: Tue Jul 14 15:24:50 2015 New Revision: 285543 URL: https://svnweb.freebsd.org/changeset/base/285543 Log: Add a missing break statement, which made the code default to IPv6. PR: 201285 Submitted by: David Binderman MFC after: 1 week Modified: head/tools/regression/lib/libc/nss/test-getaddr.c Modified: head/tools/regression/lib/libc/nss/test-getaddr.c ============================================================================== --- head/tools/regression/lib/libc/nss/test-getaddr.c Tue Jul 14 15:21:00 2015 (r285542) +++ head/tools/regression/lib/libc/nss/test-getaddr.c Tue Jul 14 15:24:50 2015 (r285543) @@ -448,6 +448,7 @@ main(int argc, char **argv) switch (c) { case '4': hints.ai_family = PF_INET; + break; case '6': hints.ai_family = PF_INET6; break; From owner-svn-src-head@freebsd.org Tue Jul 14 15:31:08 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0BB129A1E6D; Tue, 14 Jul 2015 15:31:08 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: from mail-yk0-x229.google.com (mail-yk0-x229.google.com [IPv6:2607:f8b0:4002:c07::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0831D87; Tue, 14 Jul 2015 15:31:07 +0000 (UTC) (envelope-from crodr001@gmail.com) Received: by ykay190 with SMTP id y190so10997397yka.3; Tue, 14 Jul 2015 08:31:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=DVCpGylu8zJ0wg1bLl3IIPyol7VcDfWu61SENVu6bVE=; b=alo+wQbKF3W9sVU+O7MD/XZNkodlar147fgmjKrLKjRuUCoJ8wMseZdmm4aGYWLL5C PAE2URSfHfD6pmaDk2PlMJ/Sdad+YwquVrAJPmHKBah4XRDd07nxkiZqt4g+gKHm13cS MGjH/6jIPu+UcR3UWycY5oZefRdOORvNW+HfhGHpukMIDZ/EvZNuMci6IVAUSvPnnVt8 ZVJUm0SyJSq/3fMN0kxJ6KEIXJDTYbmI3RHTUC6DGd92lbqKGOtB5tRlNXmawdP2wZ2L OWr3wmHTQ2OFphQenHP8fH1jdchts8dnECbg4A2Vi7C30PFvTSHoP8sVskxXQfS8ay+F 8Xzw== MIME-Version: 1.0 X-Received: by 10.129.35.14 with SMTP id j14mr4948901ywj.43.1436887866260; Tue, 14 Jul 2015 08:31:06 -0700 (PDT) Sender: crodr001@gmail.com Received: by 10.37.65.193 with HTTP; Tue, 14 Jul 2015 08:31:06 -0700 (PDT) In-Reply-To: References: <201507121814.t6CIEdkN045519@repo.freebsd.org> <70D653BC-BA44-4387-8ABC-0588948C7152@FreeBSD.org> Date: Tue, 14 Jul 2015 11:31:06 -0400 X-Google-Sender-Auth: ZXUbED95Y1zSQ8vGz7sRiBJ3rKE Message-ID: Subject: Re: svn commit: r285422 - in head: share/man/man4 sys/conf sys/dev/random sys/net sys/netgraph From: Craig Rodrigues To: Mark R V Murray Cc: "src-committers@freebsd.org" , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:31:08 -0000 On Mon, Jul 13, 2015 at 4:44 AM, Mark R V Murray wrote: > > A fix is in - r285439. > > Apologies again. > Looks good: https://jenkins.freebsd.org/job/FreeBSD_HEAD-tests/1181/ Thanks. -- Craig From owner-svn-src-head@freebsd.org Tue Jul 14 15:38:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 621C39A1001; Tue, 14 Jul 2015 15:38:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 51F9E3C5; Tue, 14 Jul 2015 15:38:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EFcl19069557; Tue, 14 Jul 2015 15:38:47 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EFclY1069556; Tue, 14 Jul 2015 15:38:47 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507141538.t6EFclY1069556@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 15:38:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285544 - head/release/doc/en_US.ISO8859-1/relnotes stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 15:38:47 -0000 Author: gjb Date: Tue Jul 14 15:38:45 2015 New Revision: 285544 URL: https://svnweb.freebsd.org/changeset/base/285544 Log: Fix typo. Submitted by: matteo Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 15:24:50 2015 (r285543) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 15:38:45 2015 (r285544) @@ -1095,7 +1095,7 @@ I/O, and uses hardware virtualization extensions for all other tasks, without the need for emulation. - The &man.bhyve.8; hypervisior has been + The &man.bhyve.8; hypervisor has been updated to support &amd; processors with SVM and AMD-V hardware extensions. From owner-svn-src-head@freebsd.org Tue Jul 14 16:07:05 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D29A69A16E9; Tue, 14 Jul 2015 16:07:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4CAF8B68; Tue, 14 Jul 2015 16:07:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id t6EG70I2013515 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 14 Jul 2015 19:07:00 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t6EG70I2013515 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id t6EG70JO013514; Tue, 14 Jul 2015 19:07:00 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 14 Jul 2015 19:06:59 +0300 From: Konstantin Belousov To: Ed Schouten Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285540 - in head/sys/compat: cloudabi cloudabi64 Message-ID: <20150714160659.GY2404@kib.kiev.ua> References: <201507141511.t6EFBoNg056572@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201507141511.t6EFBoNg056572@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 16:07:05 -0000 On Tue, Jul 14, 2015 at 03:11:50PM +0000, Ed Schouten wrote: > Author: ed > Date: Tue Jul 14 15:11:50 2015 > New Revision: 285540 > URL: https://svnweb.freebsd.org/changeset/base/285540 > > Log: > Implement thread_tcb_set() and thread_yield(). > > The first system call is used to set the user TLS address. Right now > this system call is invoked by the C library for both the initial thread > and additional threads unconditionally, but in the future we'll only > call this if the architecture does not support this. On recent x86-64 > CPUs we could use the WRFSBASE instruction. You cannot use WRFSBASE, kernel does not support this. On the next return from the syscall, or on the next context switch, the bases are overwritten with the values supplied by the sysarch({AMD64,I386}_SET_{F,G}SBASE). I enabled the CR4 bit to make the read instruction accessible to usermode, but write base requires additional code. Since it would lead to at least one more branch in the doreti path, I did not implemented this. From owner-svn-src-head@freebsd.org Tue Jul 14 16:57:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E63B99C1EC; Tue, 14 Jul 2015 16:57:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0F3D2890; Tue, 14 Jul 2015 16:57:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EGux8Y009289; Tue, 14 Jul 2015 16:56:59 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EGuxjs009288; Tue, 14 Jul 2015 16:56:59 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507141656.t6EGuxjs009288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 16:56:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285545 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 16:57:00 -0000 Author: gjb Date: Tue Jul 14 16:56:59 2015 New Revision: 285545 URL: https://svnweb.freebsd.org/changeset/base/285545 Log: Document r284125, cdce(4) support for RTL8153 chipset. Submitted by: Ben Woods Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 15:38:45 2015 (r285544) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 16:56:59 2015 (r285545) @@ -1001,6 +1001,9 @@ The &man.em.4; driver has been updated with improved transmission queue hang detection. + + The &man.cdce.4; driver has been updated + to include support for the RTL8153 chipest. From owner-svn-src-head@freebsd.org Tue Jul 14 17:01:57 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83A3399C46C; Tue, 14 Jul 2015 17:01:57 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7421DE15; Tue, 14 Jul 2015 17:01:57 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EH1vxN013695; Tue, 14 Jul 2015 17:01:57 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EH1vq1013694; Tue, 14 Jul 2015 17:01:57 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507141701.t6EH1vq1013694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 17:01:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285547 - head/release/doc/en_US.ISO8859-1/relnotes stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 17:01:57 -0000 Author: gjb Date: Tue Jul 14 17:01:55 2015 New Revision: 285547 URL: https://svnweb.freebsd.org/changeset/base/285547 Log: Fix another typo. Sigh. Submitted by: brueffer Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 16:57:14 2015 (r285546) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 17:01:55 2015 (r285547) @@ -1003,7 +1003,7 @@ with improved transmission queue hang detection. The &man.cdce.4; driver has been updated - to include support for the RTL8153 chipest. + to include support for the RTL8153 chipset. From owner-svn-src-head@freebsd.org Tue Jul 14 18:24:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79F829A18BA; Tue, 14 Jul 2015 18:24:06 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 6AB3EFAF; Tue, 14 Jul 2015 18:24:06 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EIO6Wv056211; Tue, 14 Jul 2015 18:24:06 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EIO6At056210; Tue, 14 Jul 2015 18:24:06 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201507141824.t6EIO6At056210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 14 Jul 2015 18:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285548 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 18:24:06 -0000 Author: markj Date: Tue Jul 14 18:24:05 2015 New Revision: 285548 URL: https://svnweb.freebsd.org/changeset/base/285548 Log: Fix some error-handling bugs when core dump compression is enabled: - Ensure that core dump parameters are initialized in the error path. - Don't call gzio_fini() on a NULL stream. Reported by: rpaulo Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Tue Jul 14 17:01:55 2015 (r285547) +++ head/sys/kern/imgact_elf.c Tue Jul 14 18:24:05 2015 (r285548) @@ -1241,6 +1241,7 @@ __elfN(coredump)(struct thread *td, stru compress = (flags & IMGACT_CORE_COMPRESS) != 0; hdr = NULL; + tmpbuf = NULL; TAILQ_INIT(¬elst); /* Size the program segments. */ @@ -1255,6 +1256,14 @@ __elfN(coredump)(struct thread *td, stru __elfN(prepare_notes)(td, ¬elst, ¬esz); coresize = round_page(hdrsize + notesz) + seginfo.size; + /* Set up core dump parameters. */ + params.offset = 0; + params.active_cred = cred; + params.file_cred = NOCRED; + params.td = td; + params.vp = vp; + params.gzs = NULL; + #ifdef RACCT if (racct_enable) { PROC_LOCK(td->td_proc); @@ -1271,15 +1280,6 @@ __elfN(coredump)(struct thread *td, stru goto done; } - /* Set up core dump parameters. */ - params.offset = 0; - params.active_cred = cred; - params.file_cred = NOCRED; - params.td = td; - params.vp = vp; - params.gzs = NULL; - - tmpbuf = NULL; #ifdef GZIO /* Create a compression stream if necessary. */ if (compress) { @@ -1336,7 +1336,8 @@ done: #ifdef GZIO if (compress) { free(tmpbuf, M_TEMP); - gzio_fini(params.gzs); + if (params.gzs != NULL) + gzio_fini(params.gzs); } #endif while ((ninfo = TAILQ_FIRST(¬elst)) != NULL) { From owner-svn-src-head@freebsd.org Tue Jul 14 18:45:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 603C59A1EA7; Tue, 14 Jul 2015 18:45:18 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2D9683BB; Tue, 14 Jul 2015 18:45:18 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EIjHsR067547; Tue, 14 Jul 2015 18:45:17 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EIjFGh067539; Tue, 14 Jul 2015 18:45:15 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507141845.t6EIjFGh067539@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 18:45:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285549 - in head: share/man/man9 sys/compat/cloudabi sys/dev/random sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 18:45:18 -0000 Author: ed Date: Tue Jul 14 18:45:15 2015 New Revision: 285549 URL: https://svnweb.freebsd.org/changeset/base/285549 Log: Implement the CloudABI random_get() system call. The random_get() system call works similar to getentropy()/getrandom() on OpenBSD/Linux. It fills a buffer with random data. This change introduces a new function, read_random_uio(), that is used to implement read() on the random devices. We can call into this function from within the CloudABI compatibility layer. Approved by: secteam Reviewed by: jmg, markm, wblock Obtained from: https://github.com/NuxiNL/freebsd Differential Revision: https://reviews.freebsd.org/D3053 Modified: head/share/man/man9/Makefile head/share/man/man9/random.9 head/sys/compat/cloudabi/cloudabi_random.c head/sys/dev/random/randomdev.c head/sys/sys/random.h Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Tue Jul 14 18:24:05 2015 (r285548) +++ head/share/man/man9/Makefile Tue Jul 14 18:45:15 2015 (r285549) @@ -1281,6 +1281,7 @@ MLINKS+=psignal.9 gsignal.9 \ MLINKS+=random.9 arc4rand.9 \ random.9 arc4random.9 \ random.9 read_random.9 \ + random.9 read_random_uio.9 \ random.9 srandom.9 MLINKS+=refcount.9 refcount_acquire.9 \ refcount.9 refcount_init.9 \ Modified: head/share/man/man9/random.9 ============================================================================== --- head/share/man/man9/random.9 Tue Jul 14 18:24:05 2015 (r285548) +++ head/share/man/man9/random.9 Tue Jul 14 18:45:15 2015 (r285549) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" " -.Dd June 30, 2015 +.Dd July 14, 2015 .Dt RANDOM 9 .Os .Sh NAME @@ -34,6 +34,7 @@ .Nm arc4random , .Nm random , .Nm read_random , +.Nm read_random_uio , .Nm srandom .Nd supply pseudo-random numbers .Sh SYNOPSIS @@ -50,6 +51,8 @@ .In sys/random.h .Ft int .Fn read_random "void *buffer" "int count" +.Ft int +.Fn read_random_uio "struct uio *uio" "bool nonblock" .Sh DESCRIPTION The .Fn random @@ -117,11 +120,27 @@ necessary to know that no entropy has been returned. .Pp +The +.Fn read_random_uio +function behaves identically to +.Xr read 2 +on +.Pa /dev/random . +The +.Fa uio +argument points to a buffer where random data should be stored. +This function only returns data if the the random device is seeded. +It blocks if unseeded, +except when the +.Fa nonblock +argument is true. +.Pp All the bits returned by .Fn random , -.Fn arc4rand +.Fn arc4rand , +.Fn read_random , and -.Fn read_random +.Fn read_random_uio are usable. For example, .Sq Li random()&01 @@ -168,6 +187,22 @@ The function returns the number of bytes placed in .Fa buffer . +.Pp +.Fn read_random_uio +returns zero when successful, +otherwise an error code is returned. +.Sh ERRORS +.Fn read_random_uio +may fail if: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa uio +points to an invalid memory region. +.It Bq Er EWOULDBLOCK +The random device is unseeded and +.Fa nonblock +is true. +.El .Sh AUTHORS .An Dan Moschuk wrote Modified: head/sys/compat/cloudabi/cloudabi_random.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_random.c Tue Jul 14 18:24:05 2015 (r285548) +++ head/sys/compat/cloudabi/cloudabi_random.c Tue Jul 14 18:45:15 2015 (r285549) @@ -26,13 +26,28 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include + #include int cloudabi_sys_random_get(struct thread *td, struct cloudabi_sys_random_get_args *uap) { + struct iovec iov = { + .iov_base = uap->buf, + .iov_len = uap->nbyte + }; + struct uio uio = { + .uio_iov = &iov, + .uio_iovcnt = 1, + .uio_resid = iov.iov_len, + .uio_segflg = UIO_USERSPACE, + .uio_rw = UIO_READ, + .uio_td = td + }; - /* Not implemented. */ - return (ENOSYS); + return (read_random_uio(&uio, false)); } Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Tue Jul 14 18:24:05 2015 (r285548) +++ head/sys/dev/random/randomdev.c Tue Jul 14 18:45:15 2015 (r285549) @@ -152,6 +152,13 @@ static struct selinfo rsel; static int randomdev_read(struct cdev *dev __unused, struct uio *uio, int flags) { + + return (read_random_uio(uio, (flags & O_NONBLOCK) != 0)); +} + +int +read_random_uio(struct uio *uio, bool nonblock) +{ uint8_t *random_buf; int error; ssize_t read_len, total_read, c; Modified: head/sys/sys/random.h ============================================================================== --- head/sys/sys/random.h Tue Jul 14 18:24:05 2015 (r285548) +++ head/sys/sys/random.h Tue Jul 14 18:45:15 2015 (r285549) @@ -31,7 +31,12 @@ #ifdef _KERNEL +#include + +struct uio; + u_int read_random(void *, u_int); +int read_random_uio(struct uio *, bool); /* * Note: if you add or remove members of random_entropy_source, remember to also update the From owner-svn-src-head@freebsd.org Tue Jul 14 18:53:25 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E81219A10FB; Tue, 14 Jul 2015 18:53:25 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 BFEE5D2F; Tue, 14 Jul 2015 18:53:25 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EIrPgM072887; Tue, 14 Jul 2015 18:53:25 GMT (envelope-from markm@FreeBSD.org) Received: (from markm@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EIrPcY072885; Tue, 14 Jul 2015 18:53:25 GMT (envelope-from markm@FreeBSD.org) Message-Id: <201507141853.t6EIrPcY072885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markm set sender to markm@FreeBSD.org using -f From: Mark Murray Date: Tue, 14 Jul 2015 18:53:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285550 - head/usr.bin/w X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 18:53:26 -0000 Author: markm Date: Tue Jul 14 18:53:24 2015 New Revision: 285550 URL: https://svnweb.freebsd.org/changeset/base/285550 Log: Widen the host field so that a full IPv6 address will be seen. Modified: head/usr.bin/w/w.c Modified: head/usr.bin/w/w.c ============================================================================== --- head/usr.bin/w/w.c Tue Jul 14 18:45:15 2015 (r285549) +++ head/usr.bin/w/w.c Tue Jul 14 18:53:24 2015 (r285550) @@ -120,7 +120,7 @@ static struct entry { #define W_DISPUSERSIZE 10 #define W_DISPLINESIZE 8 -#define W_DISPHOSTSIZE 24 +#define W_DISPHOSTSIZE 40 static void pr_header(time_t *, int); static struct stat *ttystat(char *); From owner-svn-src-head@freebsd.org Tue Jul 14 19:11:17 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E59E29A14C8; Tue, 14 Jul 2015 19:11:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 D6474168A; Tue, 14 Jul 2015 19:11:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJBH2I080692; Tue, 14 Jul 2015 19:11:17 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJBHNH080691; Tue, 14 Jul 2015 19:11:17 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201507141911.t6EJBHNH080691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 14 Jul 2015 19:11:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285551 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:11:18 -0000 Author: andrew Date: Tue Jul 14 19:11:16 2015 New Revision: 285551 URL: https://svnweb.freebsd.org/changeset/base/285551 Log: Also accept "ok" to enable a device, some vendor device trees use this when they mean "okay" Modified: head/sys/dev/ofw/ofw_bus_subr.c Modified: head/sys/dev/ofw/ofw_bus_subr.c ============================================================================== --- head/sys/dev/ofw/ofw_bus_subr.c Tue Jul 14 18:53:24 2015 (r285550) +++ head/sys/dev/ofw/ofw_bus_subr.c Tue Jul 14 19:11:16 2015 (r285551) @@ -170,7 +170,8 @@ ofw_bus_status_okay(device_t dev) const char *status; status = ofw_bus_get_status(dev); - if (status == NULL || strcmp(status, "okay") == 0) + if (status == NULL || strcmp(status, "okay") == 0 || + strcmp(status, "ok") == 0) return (1); return (0); From owner-svn-src-head@freebsd.org Tue Jul 14 19:16:15 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0FB669A1543; Tue, 14 Jul 2015 19:16:15 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 F3DEC1C99; Tue, 14 Jul 2015 19:16:14 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJGEud083929; Tue, 14 Jul 2015 19:16:14 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJGEG1083928; Tue, 14 Jul 2015 19:16:14 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507141916.t6EJGEG1083928@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 14 Jul 2015 19:16:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285552 - head/usr.bin/xargs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:16:15 -0000 Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: 285552 URL: https://svnweb.freebsd.org/changeset/base/285552 Log: Convert atoi(3) to stronum(3) which allows to arguments and report proper errors to the users Obtained from: OpenBSD Modified: head/usr.bin/xargs/xargs.c Modified: head/usr.bin/xargs/xargs.c ============================================================================== --- head/usr.bin/xargs/xargs.c Tue Jul 14 19:11:16 2015 (r285551) +++ head/usr.bin/xargs/xargs.c Tue Jul 14 19:16:14 2015 (r285552) @@ -101,6 +101,7 @@ main(int argc, char *argv[]) int ch, Jflag, nargs, nflag, nline; size_t linelen; char *endptr; + const char *errstr; inpline = replstr = NULL; ep = environ; @@ -148,19 +149,23 @@ main(int argc, char *argv[]) replstr = optarg; break; case 'L': - Lflag = atoi(optarg); + Lflag = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr) + errx(1, "-L %s: %s", optarg, errstr); break; case 'n': nflag = 1; - if ((nargs = atoi(optarg)) <= 0) - errx(1, "illegal argument count"); + nargs = strtonum(optarg, 1, INT_MAX, &errstr); + if (errstr) + errx(1, "-n %s: %s", optarg, errstr); break; case 'o': oflag = 1; break; case 'P': - if ((maxprocs = atoi(optarg)) <= 0) - errx(1, "max. processes must be >0"); + maxprocs = strtonum(optarg, 1, INT_MAX, &errstr); + if (errstr) + errx(1, "-P %s: %s", optarg, errstr); break; case 'p': pflag = 1; @@ -179,7 +184,9 @@ main(int argc, char *argv[]) errx(1, "replsize must be a number"); break; case 's': - nline = atoi(optarg); + nline = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr) + errx(1, "-s %s: %s", optarg, errstr); break; case 't': tflag = 1; From owner-svn-src-head@freebsd.org Tue Jul 14 19:38:27 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDD799A19F6; Tue, 14 Jul 2015 19:38:27 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 AE019188E; Tue, 14 Jul 2015 19:38:27 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJcR8A094688; Tue, 14 Jul 2015 19:38:27 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJcRx9094687; Tue, 14 Jul 2015 19:38:27 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507141938.t6EJcRx9094687@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Tue, 14 Jul 2015 19:38:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285553 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:38:27 -0000 Author: allanjude (doc committer) Date: Tue Jul 14 19:38:26 2015 New Revision: 285553 URL: https://svnweb.freebsd.org/changeset/base/285553 Log: Have bsdinstall's zfsboot script make /var/audit its own dataset, so it is not part of the OS boot environment PR: 199864 Submitted by: Jason Unovitch Approved by: brueffer MFC after: 3 days Relnotes: yes Differential Revision: https://reviews.freebsd.org/D2861 Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:16:14 2015 (r285552) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:38:26 2015 (r285553) @@ -157,6 +157,7 @@ f_isset ZFSBOOT_DATASETS || ZFSBOOT_DATA # Create /var and friends /var mountpoint=/var,canmount=off + /var/audit exec=off,setuid=off /var/crash exec=off,setuid=off /var/log exec=off,setuid=off /var/mail atime=on From owner-svn-src-head@freebsd.org Tue Jul 14 19:42:41 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 555BD9A1BE7; Tue, 14 Jul 2015 19:42:41 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 459A210EF; Tue, 14 Jul 2015 19:42:41 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJgfTY099594; Tue, 14 Jul 2015 19:42:41 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJgfDO099592; Tue, 14 Jul 2015 19:42:41 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507141942.t6EJgfDO099592@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Tue, 14 Jul 2015 19:42:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285554 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:42:41 -0000 Author: allanjude (doc committer) Date: Tue Jul 14 19:42:40 2015 New Revision: 285554 URL: https://svnweb.freebsd.org/changeset/base/285554 Log: Set a mountpoint on the root of the pool so user-created datasets have a mountpoint to inherit Reviewed by: darius Approved by: brueffer MFC after: 3 days Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3063 Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:38:26 2015 (r285553) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:42:40 2015 (r285554) @@ -1,6 +1,6 @@ #!/bin/sh #- -# Copyright (c) 2013-2014 Allan Jude +# Copyright (c) 2013-2015 Allan Jude # Copyright (c) 2013-2015 Devin Teske # All rights reserved. # @@ -1237,6 +1237,15 @@ zfs_create_boot() return $FAILURE done + # + # Set a mountpoint for the root of the pool so newly created datasets + # have a mountpoint to inherit + # + f_dprintf "$funcname: Setting mountpoint for root of the pool..." + f_eval_catch $funcname zfs "$ZFS_SET" \ + "mountpoint=/$zroot_name" "$zroot_name" || + return $FAILURE + # Touch up permissions on the tmp directories f_dprintf "$funcname: Modifying directory permissions..." local dir From owner-svn-src-head@freebsd.org Tue Jul 14 19:43:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9D3A9A1C0E; Tue, 14 Jul 2015 19:43:11 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 CA25C1244; Tue, 14 Jul 2015 19:43:11 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJhBd9099737; Tue, 14 Jul 2015 19:43:11 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJhBCQ099736; Tue, 14 Jul 2015 19:43:11 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201507141943.t6EJhBCQ099736@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Tue, 14 Jul 2015 19:43:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285555 - head/usr.bin/rctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:43:12 -0000 Author: joel (doc committer) Date: Tue Jul 14 19:43:10 2015 New Revision: 285555 URL: https://svnweb.freebsd.org/changeset/base/285555 Log: mdoc: add missing .El Modified: head/usr.bin/rctl/rctl.8 Modified: head/usr.bin/rctl/rctl.8 ============================================================================== --- head/usr.bin/rctl/rctl.8 Tue Jul 14 19:42:40 2015 (r285554) +++ head/usr.bin/rctl/rctl.8 Tue Jul 14 19:43:10 2015 (r285555) @@ -245,6 +245,7 @@ Enable This defaults to 1, unless .Cd "options RACCT_DEFAULT_TO_DISABLED" is set in the kernel configuration file. +.El .Sh EXIT STATUS .Ex -std .Sh EXAMPLES From owner-svn-src-head@freebsd.org Tue Jul 14 19:45:36 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 232E99A1D03; Tue, 14 Jul 2015 19:45:36 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1405518D7; Tue, 14 Jul 2015 19:45:36 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJjZa0000615; Tue, 14 Jul 2015 19:45:35 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJjZLt000614; Tue, 14 Jul 2015 19:45:35 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201507141945.t6EJjZLt000614@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Tue, 14 Jul 2015 19:45:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285556 - head/bin/ps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:45:36 -0000 Author: joel (doc committer) Date: Tue Jul 14 19:45:35 2015 New Revision: 285556 URL: https://svnweb.freebsd.org/changeset/base/285556 Log: mdoc: minor Xr fixes Modified: head/bin/ps/ps.1 Modified: head/bin/ps/ps.1 ============================================================================== --- head/bin/ps/ps.1 Tue Jul 14 19:43:10 2015 (r285555) +++ head/bin/ps/ps.1 Tue Jul 14 19:45:35 2015 (r285556) @@ -738,9 +738,9 @@ Display information on all system proces .Xr procstat 1 , .Xr w 1 , .Xr kvm 3 , -.Xr libxo 3 +.Xr libxo 3 , .Xr strftime 3 , -.Xr xo_parse_args 3 +.Xr xo_parse_args 3 , .Xr mac 4 , .Xr procfs 5 , .Xr pstat 8 , From owner-svn-src-head@freebsd.org Tue Jul 14 19:57:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54CA49A129E; Tue, 14 Jul 2015 19:57:11 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 443C91FDA; Tue, 14 Jul 2015 19:57:11 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EJvBRh007874; Tue, 14 Jul 2015 19:57:11 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EJvBxC007873; Tue, 14 Jul 2015 19:57:11 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507141957.t6EJvBxC007873@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Tue, 14 Jul 2015 19:57:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285557 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 19:57:11 -0000 Author: allanjude (doc committer) Date: Tue Jul 14 19:57:10 2015 New Revision: 285557 URL: https://svnweb.freebsd.org/changeset/base/285557 Log: Make bsdinstall's zfsboot script align partitions to 4k/1m when the user requests it PR: 195174 Reviewed by: darius Approved by: brueffer MFC after: 3 days Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3062 Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:45:35 2015 (r285556) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jul 14 19:57:10 2015 (r285557) @@ -186,11 +186,11 @@ ECHO_APPEND='echo "%s" >> "%s"' GELI_ATTACH='geli attach -j - -k "%s" "%s"' GELI_DETACH_F='geli detach -f "%s"' GELI_PASSWORD_INIT='geli init -b -B "%s" -e %s -J - -K "%s" -l 256 -s 4096 "%s"' -GPART_ADD='gpart add -t %s "%s"' -GPART_ADD_INDEX='gpart add -i %s -t %s "%s"' -GPART_ADD_INDEX_WITH_SIZE='gpart add -i %s -t %s -s %s "%s"' -GPART_ADD_LABEL='gpart add -l %s -t %s "%s"' -GPART_ADD_LABEL_WITH_SIZE='gpart add -l %s -t %s -s %s "%s"' +GPART_ADD_ALIGN='gpart add %s -t %s "%s"' +GPART_ADD_ALIGN_INDEX='gpart add %s -i %s -t %s "%s"' +GPART_ADD_ALIGN_INDEX_WITH_SIZE='gpart add %s -i %s -t %s -s %s "%s"' +GPART_ADD_ALIGN_LABEL='gpart add %s -l %s -t %s "%s"' +GPART_ADD_ALIGN_LABEL_WITH_SIZE='gpart add %s -l %s -t %s -s %s "%s"' GPART_BOOTCODE='gpart bootcode -b "%s" "%s"' GPART_BOOTCODE_PART='gpart bootcode -b "%s" -p "%s" -i %s "%s"' GPART_CREATE='gpart create -s %s "%s"' @@ -236,7 +236,7 @@ msg_encrypt_disks="Encrypt Disks?" msg_encrypt_disks_help="Use geli(8) to encrypt all data partitions" msg_error="Error" msg_force_4k_sectors="Force 4K Sectors?" -msg_force_4k_sectors_help="Use sysctl(8) vfs.zfs.min_auto_ashift=12 to force 4K sectors" +msg_force_4k_sectors_help="Align partitions to 4K sector boundries and set vfs.zfs.min_auto_ashift=12" msg_freebsd_installer="FreeBSD Installer" msg_geli_password="Enter a strong passphrase, used to protect your encryption keys. You will be required to enter this passphrase each time the system is booted" msg_geli_setup="Initializing encryption on selected disks,\n this will take several seconds per disk" @@ -811,7 +811,20 @@ zfs_create_diskpart() # # Lay down the desired type of partition scheme # - local setsize mbrindex + local setsize mbrindex align_small align_big + # + # If user has requested 4 K alignment, add these params to the + # gpart add calls. With GPT, we align large partitions to 1 M for + # improved performance on SSDs. MBR does not always play well with gaps + # between partitions, so all alignment is only 4k for that case. + # With MBR, we align the BSD partition that contains the MBR, otherwise + # the system fails to boot. + # + if [ "$ZFSBOOT_FORCE_4K_SECTORS" ]; then + align_small="-a 4k" + align_big="-a 1m" + fi + case "$ZFSBOOT_PARTITION_SCHEME" in ""|GPT) f_dprintf "$funcname: Creating GPT layout..." # @@ -823,8 +836,8 @@ zfs_create_diskpart() # # 2. Add small freebsd-boot partition labeled `boot#' # - f_eval_catch $funcname gpart "$GPART_ADD_LABEL_WITH_SIZE" \ - gptboot$index freebsd-boot 512k $disk || + f_eval_catch $funcname gpart "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ + "$align_small" gptboot$index freebsd-boot 512k $disk || return $FAILURE f_eval_catch $funcname gpart "$GPART_BOOTCODE_PART" \ /boot/pmbr /boot/gptzfsboot 1 $disk || @@ -841,8 +854,9 @@ zfs_create_diskpart() bootpart=p2 swappart=p3 targetpart=p3 [ ${swapsize:-0} -gt 0 ] && targetpart=p4 f_eval_catch $funcname gpart \ - "$GPART_ADD_LABEL_WITH_SIZE" boot$index \ - freebsd-zfs ${bootsize}b $disk || + "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ + "$align_big" boot$index freebsd-zfs \ + ${bootsize}b $disk || return $FAILURE # Pedantically nuke any old labels f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ @@ -860,8 +874,9 @@ zfs_create_diskpart() # if [ ${swapsize:-0} -gt 0 ]; then f_eval_catch $funcname gpart \ - "$GPART_ADD_LABEL_WITH_SIZE" swap$index \ - freebsd-swap ${swapsize}b $disk || + "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ + "$align_big" swap$index freebsd-swap \ + ${swapsize}b $disk || return $FAILURE # Pedantically nuke any old labels on the swap f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ @@ -871,8 +886,9 @@ zfs_create_diskpart() # # 4. Add freebsd-zfs partition labeled `zfs#' for zroot # - f_eval_catch $funcname gpart "$GPART_ADD_LABEL" \ - zfs$index freebsd-zfs $disk || return $FAILURE + f_eval_catch $funcname gpart "$GPART_ADD_ALIGN_LABEL" \ + "$align_big" zfs$index freebsd-zfs $disk || + return $FAILURE f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ /dev/$disk$targetpart ;; @@ -889,7 +905,8 @@ zfs_create_diskpart() # # 2. Add freebsd slice with all available space # - f_eval_catch $funcname gpart "$GPART_ADD" freebsd $disk || + f_eval_catch $funcname gpart "$GPART_ADD_ALIGN" "$align_small" \ + freebsd $disk || return $FAILURE f_eval_catch $funcname gpart "$GPART_SET_ACTIVE" 1 $disk || return $FAILURE @@ -913,8 +930,8 @@ zfs_create_diskpart() # ZFSBOOT_BOOT_POOL=1 f_eval_catch $funcname gpart \ - "$GPART_ADD_INDEX_WITH_SIZE" \ - 1 freebsd-zfs ${bootsize}b ${disk}s1 || + "$GPART_ADD_ALIGN_INDEX_WITH_SIZE" \ + "$align_small" 1 freebsd-zfs ${bootsize}b ${disk}s1 || return $FAILURE # Pedantically nuke any old labels f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ @@ -931,8 +948,8 @@ zfs_create_diskpart() # if [ ${swapsize:-0} -gt 0 ]; then f_eval_catch $funcname gpart \ - "$GPART_ADD_INDEX_WITH_SIZE" 2 \ - freebsd-swap ${swapsize}b ${disk}s1 || + "$GPART_ADD_ALIGN_INDEX_WITH_SIZE" \ + "$align_small" 2 freebsd-swap ${swapsize}b ${disk}s1 || return $FAILURE # Pedantically nuke any old labels on the swap f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ @@ -942,8 +959,8 @@ zfs_create_diskpart() # # 5. Add freebsd-zfs partition for zroot # - f_eval_catch $funcname gpart "$GPART_ADD_INDEX" \ - $mbrindex freebsd-zfs ${disk}s1 || return $FAILURE + f_eval_catch $funcname gpart "$GPART_ADD_ALIGN_INDEX" \ + "$align_small" $mbrindex freebsd-zfs ${disk}s1 || return $FAILURE f_eval_catch -d $funcname zpool "$ZPOOL_LABELCLEAR_F" \ /dev/$disk$targetpart # Pedantic f_eval_catch $funcname dd "$DD_WITH_OPTIONS" \ From owner-svn-src-head@freebsd.org Tue Jul 14 20:04:57 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAE439A1525; Tue, 14 Jul 2015 20:04:57 +0000 (UTC) (envelope-from gnn@freebsd.org) Received: from smtp.hungerhost.com (smtp.hungerhost.com [216.38.53.177]) (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 904901A8E; Tue, 14 Jul 2015 20:04:57 +0000 (UTC) (envelope-from gnn@freebsd.org) Received: from [50.153.131.146] (port=12939 helo=[172.20.20.20]) by vps.hungerhost.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85) (envelope-from ) id 1ZF6Rg-0003gS-VY; Tue, 14 Jul 2015 16:04:53 -0400 From: "George Neville-Neil" To: "O. Hartmann" Cc: "Fabian Keil" , freebsd-current@freebsd.org, "Matthew D. Fuller" , svn-src-head@freebsd.org Subject: Re: geli AES-XTS provider attachment broken after r285336 (was: svn commit: r285336 - in head/sys: netipsec opencrypto) Date: Tue, 14 Jul 2015 16:04:42 -0400 Message-ID: <79203CB8-850C-4CC7-AFA6-32A2505A7409@freebsd.org> In-Reply-To: <20150711212729.55815877.ohartman@zedat.fu-berlin.de> References: <201507091816.t69IGawf097288@repo.freebsd.org> <20150711044843.GG96394@over-yonder.net> <4308d5d9.790ffd96@fabiankeil.de> <20150711212729.55815877.ohartman@zedat.fu-berlin.de> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=_MailMate_A97807A3-8631-40DF-A13B-5B359F1DF609_="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Mailer: MailMate (1.9.2r5107) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vps.hungerhost.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - freebsd.org X-Get-Message-Sender-Via: vps.hungerhost.com: authenticated_id: gnn@neville-neil.com X-Source: X-Source-Args: X-Source-Dir: X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:04:57 -0000 This is an OpenPGP/MIME signed message (RFC 3156 and 4880). --=_MailMate_A97807A3-8631-40DF-A13B-5B359F1DF609_= Content-Type: text/plain On 11 Jul 2015, at 15:27, O. Hartmann wrote: > Am Sat, 11 Jul 2015 19:04:07 +0200 > Fabian Keil schrieb: > >> "Matthew D. Fuller" wrote: >> >>> On Thu, Jul 09, 2015 at 06:16:36PM +0000 I heard the voice of >>> George V. Neville-Neil, and lo! it spake thus: >>>> New Revision: 285336 >>>> URL: https://svnweb.freebsd.org/changeset/base/285336 >>>> >>>> Log: >>>> Add support for AES modes to IPSec. These modes work both in software only >>>> mode and with hardware support on systems that have AESNI instructions. >>> >>> With (apparently) this change, I can trigger a panic at will by >>> running >>> >>> % geli onetime -e AES-XTS -d /dev/ada0s1 >> >> Thanks for the heads-up. >> >> As it wasn't obvious to me: the commit broke attachment >> of AES-XTS providers in general. >> >> Reverting it lets my test system boot again. >> >> Fabian > > Running CURRENT on several Intel platforms, using swap.eli on all systems is usual to my > setups. On modern hardware, say >= Intel i7 architectures (with or without AES-NI), I > didn't recognize a panic at all but in one case a core i3 starts swapping dies > immediately. Another box, a dual core XEON Core2 Duo based architecture without AES-NI > fails booting immediately after I see the mounting and initialising of swap.eli. Maybe > this observation is of use. This was addressed by jmg@ in: 285526 Best, George --=_MailMate_A97807A3-8631-40DF-A13B-5B359F1DF609_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAlWla1oACgkQYdh2wUQKM9L1bgCg4ejUs3wWYCDoSyanxVzNa4nB ulUAn0nxPoYk78U8OaNRV6/xoHFVgyHr =RbDT -----END PGP SIGNATURE----- --=_MailMate_A97807A3-8631-40DF-A13B-5B359F1DF609_=-- From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:01 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 055A49A1704; Tue, 14 Jul 2015 20:10:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 EA1471DC5; Tue, 14 Jul 2015 20:10:00 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKA07i014402; Tue, 14 Jul 2015 20:10:00 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKA0Eo014400; Tue, 14 Jul 2015 20:10:00 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKA0Eo014400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285559 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:01 -0000 Author: gjb Date: Tue Jul 14 20:09:59 2015 New Revision: 285559 URL: https://svnweb.freebsd.org/changeset/base/285559 Log: Document r266943, r267390: Support for Exynos 5420 and SMP enabled by default. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:09:57 2015 (r285558) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:09:59 2015 (r285559) @@ -1150,6 +1150,13 @@ The &man.nand.4; device is enabled for ARM devices by default. + Support for the Exynos 5420 + Octa system has been added. + + The SMP + option has been enabled for all Exynos 5 systems supported by + &os;. + An issue that could cause instability when detecting SD cards on the Raspberry Pi SOC has been fixed. From owner-svn-src-head@freebsd.org Tue Jul 14 20:09:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92E2C9A16ED; Tue, 14 Jul 2015 20:09:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 82E541DC0; Tue, 14 Jul 2015 20:09:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EK9wM7014308; Tue, 14 Jul 2015 20:09:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EK9wUh014307; Tue, 14 Jul 2015 20:09:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142009.t6EK9wUh014307@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:09:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285558 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:09:58 -0000 Author: gjb Date: Tue Jul 14 20:09:57 2015 New Revision: 285558 URL: https://svnweb.freebsd.org/changeset/base/285558 Log: Document r277042, support to poweroff the BeagleBone Black via shutdown(8) and poweroff(8) added. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 19:57:10 2015 (r285557) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:09:57 2015 (r285558) @@ -1159,6 +1159,11 @@ frequency and voltage control on the Raspberry Pi SOC. + Support to turn off the + BeagleBone Black system with the &man.shutdown.8; + -p flag or by invoking &man.poweroff.8; has + been added. + Initial support for the ARM AArch64 architecture has been added. From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E85489A1724; Tue, 14 Jul 2015 20:10:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 898381E2E; Tue, 14 Jul 2015 20:10:03 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKA32H014767; Tue, 14 Jul 2015 20:10:03 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKA3W7014765; Tue, 14 Jul 2015 20:10:03 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKA3W7014765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285560 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:04 -0000 Author: gjb Date: Tue Jul 14 20:10:02 2015 New Revision: 285560 URL: https://svnweb.freebsd.org/changeset/base/285560 Log: Document r268838, support for Toradex Apalis i.MX6 board. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:09:59 2015 (r285559) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:02 2015 (r285560) @@ -1157,6 +1157,9 @@ option has been enabled for all Exynos 5 systems supported by &os;. + Support for the Toradex + Apalis i.MX6 development board has been added. + An issue that could cause instability when detecting SD cards on the Raspberry Pi SOC has been fixed. From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3328A9A1774; Tue, 14 Jul 2015 20:10:13 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 04FAB20F9; Tue, 14 Jul 2015 20:10:12 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKACRf015053; Tue, 14 Jul 2015 20:10:12 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKAC3W015052; Tue, 14 Jul 2015 20:10:12 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKAC3W015052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285564 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:13 -0000 Author: gjb Date: Tue Jul 14 20:10:12 2015 New Revision: 285564 URL: https://svnweb.freebsd.org/changeset/base/285564 Log: Document r282731, ubldr is relocatable. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:09 2015 (r285563) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:12 2015 (r285564) @@ -787,6 +787,15 @@ has been extended to non-EFI systems. + The &arch.arm; boot loader, + ubldr, is now relocatable. In addition, + the ubldr.bin file is now created during + build time, which is a stripped binary with an entry point of + 0, providing the ability to specify the + load address by running go + ${loadaddr} in + u-boot. + The &man.nvd.4; and &man.nvme.4; drivers are now included in the GENERIC kernel From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:15 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FFB19A178C; Tue, 14 Jul 2015 20:10:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 77E0B2191; Tue, 14 Jul 2015 20:10:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKAFS7016985; Tue, 14 Jul 2015 20:10:15 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKAFAZ016983; Tue, 14 Jul 2015 20:10:15 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKAFAZ016983@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285565 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:15 -0000 Author: gjb Date: Tue Jul 14 20:10:14 2015 New Revision: 285565 URL: https://svnweb.freebsd.org/changeset/base/285565 Log: Document r279950, bzipfs support in EFI loader. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:12 2015 (r285564) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:14 2015 (r285565) @@ -1308,6 +1308,9 @@ entering set kern.vty=sc at the &man.loader.8; prompt. + Support for bzipfs + has been added to the EFI loader. + The boot loader has been updated to support entering the GELI passphrase before loading the kernel. To enable this behavior, add From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A4549A17C4; Tue, 14 Jul 2015 20:10:18 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 DA6102239; Tue, 14 Jul 2015 20:10:17 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKAHs4017035; Tue, 14 Jul 2015 20:10:17 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKAHRS017034; Tue, 14 Jul 2015 20:10:17 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKAHRS017034@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285566 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:18 -0000 Author: gjb Date: Tue Jul 14 20:10:16 2015 New Revision: 285566 URL: https://svnweb.freebsd.org/changeset/base/285566 Log: Reword the r282731 entry. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:14 2015 (r285565) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:16 2015 (r285566) @@ -789,8 +789,8 @@ The &arch.arm; boot loader, ubldr, is now relocatable. In addition, - the ubldr.bin file is now created during - build time, which is a stripped binary with an entry point of + ubldr.bin is now created during build + time, which is a stripped binary with an entry point of 0, providing the ability to specify the load address by running go ${loadaddr} in From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:10 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4B4D9A1763; Tue, 14 Jul 2015 20:10:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 97D73204C; Tue, 14 Jul 2015 20:10:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKAA2H014982; Tue, 14 Jul 2015 20:10:10 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKAAGD014980; Tue, 14 Jul 2015 20:10:10 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKAAGD014980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285563 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:10 -0000 Author: gjb Date: Tue Jul 14 20:10:09 2015 New Revision: 285563 URL: https://svnweb.freebsd.org/changeset/base/285563 Log: Document r282727, support for booting relocatable kernels extended beyond non-EFI systems. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:07 2015 (r285562) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:09 2015 (r285563) @@ -773,9 +773,6 @@ system. - Support for booting - relocatable kernels has been added. - Kernel support for Vector-Scalar eXtension (VSX) found on POWER7 and POWER8 hardware @@ -786,6 +783,10 @@ &powerpc; processors has been overhaulded to improve concurrency. + Support for booting relocatable kernels + has been extended to non-EFI + systems. + The &man.nvd.4; and &man.nvme.4; drivers are now included in the GENERIC kernel From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2494F9A1738; Tue, 14 Jul 2015 20:10:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 EB15F1F08; Tue, 14 Jul 2015 20:10:05 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKA53K014872; Tue, 14 Jul 2015 20:10:05 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKA5Zf014871; Tue, 14 Jul 2015 20:10:05 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKA5Zf014871@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285561 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:06 -0000 Author: gjb Date: Tue Jul 14 20:10:04 2015 New Revision: 285561 URL: https://svnweb.freebsd.org/changeset/base/285561 Log: Document r277644, AUDMUX, SDMA, SSI support. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:02 2015 (r285560) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:04 2015 (r285561) @@ -1174,6 +1174,12 @@ -p flag or by invoking &man.poweroff.8; has been added. + Audio transmission drivers + have been added for Digital Audio Multiplexer + (AUDMUXM), Smart Direct Memory Access + Controller (SDMA), and Syncronous Serial + Interface (SSI). + Initial support for the ARM AArch64 architecture has been added. From owner-svn-src-head@freebsd.org Tue Jul 14 20:10:08 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 602E49A1754; Tue, 14 Jul 2015 20:10:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 412B91FDC; Tue, 14 Jul 2015 20:10:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKA83Z014926; Tue, 14 Jul 2015 20:10:08 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKA8gQ014925; Tue, 14 Jul 2015 20:10:08 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142010.t6EKA8gQ014925@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 20:10:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285562 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:10:08 -0000 Author: gjb Date: Tue Jul 14 20:10:07 2015 New Revision: 285562 URL: https://svnweb.freebsd.org/changeset/base/285562 Log: Document r277962, support for booting relocatable PowerPC kernels. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:04 2015 (r285561) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:10:07 2015 (r285562) @@ -773,6 +773,9 @@ system. + Support for booting + relocatable kernels has been added. + Kernel support for Vector-Scalar eXtension (VSX) found on POWER7 and POWER8 hardware From owner-svn-src-head@freebsd.org Tue Jul 14 20:29:25 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ABF8B9A1F7A; Tue, 14 Jul 2015 20:29:25 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pd0-x22d.google.com (mail-pd0-x22d.google.com [IPv6:2607:f8b0:400e:c02::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 79D2712B1; Tue, 14 Jul 2015 20:29:25 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by pdbep18 with SMTP id ep18so11803670pdb.1; Tue, 14 Jul 2015 13:29:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to; bh=4Pf0+8uBceZgZq8FIe5c6m/s5zTOKd9y+agOQK45284=; b=d+NJ1gtWofoq+c86FQQGZ7fLW/Yz/7yagvxXyBYTRBR73+VryOcRV3xD0XeQEVEhna S133lROPtz3Rvbat9B6G+37tky9PJRvUlSdgrsiTDtUnHZmfzdpYZiIUGqrc21g4jcG/ dgFmnNPSlAExYicwzebQA0tKfS3LTayQugurNcynwPpDlcgv6rYYpeElCWv8F2DWMMgo LPvbhRwGW4zWSTXvlqoewA3q4RaU4t1GBpo4l8NW4+vQI63yWiP+PT0chIJktf6PS0Ny 5jhJkywf5D6RCJhfbjWNgnMraCCXSaVSvF2ReUZrLfYwTxCVYEUtrjFTElRMIWJOouJR PdXQ== X-Received: by 10.70.92.10 with SMTP id ci10mr821252pdb.9.1436905764958; Tue, 14 Jul 2015 13:29:24 -0700 (PDT) Received: from ?IPv6:2601:602:8001:6c87:50cf:6125:6b27:4e28? ([2601:602:8001:6c87:50cf:6125:6b27:4e28]) by smtp.gmail.com with ESMTPSA id si7sm2248697pbc.54.2015.07.14.13.29.23 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 14 Jul 2015 13:29:24 -0700 (PDT) Subject: Re: svn commit: r285552 - head/usr.bin/xargs Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Content-Type: multipart/signed; boundary="Apple-Mail=_35FB0F1E-497D-4160-8E7F-2DD06724F9BE"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5 From: Garrett Cooper In-Reply-To: <201507141916.t6EJGEG1083928@repo.freebsd.org> Date: Tue, 14 Jul 2015 13:29:20 -0700 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> References: <201507141916.t6EJGEG1083928@repo.freebsd.org> To: Baptiste Daroussin X-Mailer: Apple Mail (2.1878.6) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:29:25 -0000 --Apple-Mail=_35FB0F1E-497D-4160-8E7F-2DD06724F9BE Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jul 14, 2015, at 12:16, Baptiste Daroussin wrote: > Author: bapt > Date: Tue Jul 14 19:16:14 2015 > New Revision: 285552 > URL: https://svnweb.freebsd.org/changeset/base/285552 >=20 > Log: > Convert atoi(3) to stronum(3) which allows to arguments and report = proper errors > to the users Is strtonum preferred over strtoll, etc? --Apple-Mail=_35FB0F1E-497D-4160-8E7F-2DD06724F9BE Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJVpXEhAAoJEMZr5QU6S73eQ5AH/AvfDAf30lpt3BPJkfciznww HQ9/yKK6vPDdohaj1V/vSFT37L5HFG/TUPECN36OElMOEY08fiqKaN7ICz87I43t PbcfVoOxuuBfIGrCtKHl00YZSfy3HW7gVHaw/lYg8y/h8bp3XN4TkBx6gff8oChG fZ0/yhAeML/YsEBH0SZCPv0hPsaizvA3BdCwSIoJQwTp4fAHrb+sunBh44nxWwjC 1qv3tKtyTnqovmCbmzMtbRJnVUe2T156xU8UHPLjyykY0xIEKEQbb4nSwAIYP3lj LEn0/LLlKOuoGGI3+ac8qdL2+CKb8RzaZhnYZsL9/j+kPfcXcU7mKhBgRXiEAgc= =7zqw -----END PGP SIGNATURE----- --Apple-Mail=_35FB0F1E-497D-4160-8E7F-2DD06724F9BE-- From owner-svn-src-head@freebsd.org Tue Jul 14 20:44:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21B719A162E; Tue, 14 Jul 2015 20:44:44 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id C3AA31D62; Tue, 14 Jul 2015 20:44:43 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 078D51CF72; Tue, 14 Jul 2015 13:44:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1436906683; x=1436921083; bh=/QUG0vhlHt7eAHN2scdfzOFR4pARUKFoWr+RvIwAbMg=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=JzEnjJZAVC8vN9gUHFGQbrRVsDzXfRJhiSOUcQOM+q4oB7/FYTisPKr/NnuKk2rX0 kQfcw3LMRXViSPR6LagcupE+D+xsaAFBcXSMsHSseOm7nY3Nnl+6QHMvW61WCnwgpX SNwweeEX3PIvBWBPFgOkDwFgsvlKuxJb8UTHfYD8= Message-ID: <55A574BA.4090700@delphij.net> Date: Tue, 14 Jul 2015 13:44:42 -0700 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: Garrett Cooper , Baptiste Daroussin CC: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> In-Reply-To: <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:44:44 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 07/14/15 13:29, Garrett Cooper wrote: > On Jul 14, 2015, at 12:16, Baptiste Daroussin > wrote: > >> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: 285552 >> URL: https://svnweb.freebsd.org/changeset/base/285552 >> >> Log: Convert atoi(3) to stronum(3) which allows to arguments and >> report proper errors to the users > > Is strtonum preferred over strtoll, etc? strtonum(3) is a wrapper of strtoll() and provides more functionality like range checking, so I think the answer would be yes. Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.1.6 (FreeBSD) iQIcBAEBCgAGBQJVpXS6AAoJEJW2GBstM+nsqmkQAIUaFCMKnnIELX4Fjbaw36QE T10YGtfrlza2QbBUrK9kuW7RJVBNSLy4Y7ENdTfRgEtC1Xcy/amSkbB+8AIvlvoT 916fLGuRdG3BPbvvWFOxYHMM7iocyysLPCG9/GFewLsudvUUDYF5pg6f7wDEV/W9 tdIc1B0j7ChPfktLuR/Y7idDJk7+jHN/nC9bf28qK8m6nYzJ4KK2WGzhCWE3C/3a gEtpCF6IQMospmvIE4+vxsBuYIp/InPMDE9K+6QXqt7bEtJH/23RhBoqhMsjmM5H +Slri+NgTizn7zTUfBpBK02UIVof0Fl7an/KTXUtK1Eei9sDI8h71WohYVb93Fnm dO+XxuLEETvifUZ+i/F9j/e0O1t+SJvey7k5gIEAetThX/LIb9z9OU4TVurpw76h PXjYuKxCITgylcsFR8MTEjNC+32EHtFdXWyUQErmylpDlwsjBoibAQn7Ly+pNAdH hDStaGas2ko1E+jBCwdanKeBbt6yPIV33O9pbUzeDunkbDbnStXK4CtR6u5Nj56e E+ZR+/wHBE0sy0pJ3J3QmRDDJ2LKz4OHi4agVSBhNj7IPhuef+LQROpkVQbagHmM Bszeq4/p8jwO+kERAZf7KeLOTtMuvRYuBz80Ni7TAqAxK5PrMYTGhLptKqw52HmK G4hvxuRV1jcvMCo90YvX =WZjG -----END PGP SIGNATURE----- From owner-svn-src-head@freebsd.org Tue Jul 14 20:45:25 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CAE89A1691; Tue, 14 Jul 2015 20:45:25 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8D2AF1EF8; Tue, 14 Jul 2015 20:45:25 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6EKjPm5039051; Tue, 14 Jul 2015 20:45:25 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6EKjP3J039050; Tue, 14 Jul 2015 20:45:25 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507142045.t6EKjP3J039050@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 14 Jul 2015 20:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285573 - head/sys/dev/random X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:45:25 -0000 Author: ed Date: Tue Jul 14 20:45:24 2015 New Revision: 285573 URL: https://svnweb.freebsd.org/changeset/base/285573 Log: Fix the build after breaking it in r285549. I performed the commit on a different system as where I wrote the change. After pulling in the change from Phabricator, I didn't notice that a single chunk did not apply. Approved by: secteam (implicit, as intended change was approved) Pointy hat to: me Modified: head/sys/dev/random/randomdev.c Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Tue Jul 14 20:10:41 2015 (r285572) +++ head/sys/dev/random/randomdev.c Tue Jul 14 20:45:24 2015 (r285573) @@ -168,7 +168,7 @@ read_random_uio(struct uio *uio, bool no /* (Un)Blocking logic */ error = 0; while (!random_alg_context.ra_seeded()) { - if (flags & O_NONBLOCK) { + if (nonblock) { error = EWOULDBLOCK; break; } From owner-svn-src-head@freebsd.org Tue Jul 14 20:46:08 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70C119A16C3; Tue, 14 Jul 2015 20:46:08 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 18633204C; Tue, 14 Jul 2015 20:46:08 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by widjy10 with SMTP id jy10so110279706wid.1; Tue, 14 Jul 2015 13:46:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=ieWW4Y++NP+HkXSOrObdLu2prE6XXfgK+auHGvQGknM=; b=quaIzjtct2wKJf2bezRmqy0ucZ9WTgEEpTEntrehG0bLyuDx58uK0zIgDyiNdJSo3B z49+PxuYxDbVzll6/uRfkhj3+5tYu3p4IbkXfFZmrJqwPavopfz9eapiB7LXny1zAcmT eXjWo+lAk1eK3w1x9exP1LHVt5KOHzevZ8T40JRBrC/znvdMVqgmnRyllCXuuIWauzUc Kmrl8CAzS6tXQJLGW1umZCNGOz/4kdeyDz3KGbYzs2EkEYExPmU6RtNtG+Jt4O9xW43+ wPTWWuh5AKsGct0tCzu8W6P/++EPx4XYYj8WDD79DqNUztU1u4XHsQF4bIrJwgereKGr 9leA== X-Received: by 10.194.110.100 with SMTP id hz4mr1057640wjb.6.1436906766371; Tue, 14 Jul 2015 13:46:06 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id lj14sm5227838wic.18.2015.07.14.13.46.05 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Jul 2015 13:46:05 -0700 (PDT) Sender: Baptiste Daroussin Date: Tue, 14 Jul 2015 22:46:03 +0200 From: Baptiste Daroussin To: Garrett Cooper Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Subject: Re: svn commit: r285552 - head/usr.bin/xargs Message-ID: <20150714204603.GO37597@ivaldir.etoilebsd.net> References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="yPSgZSQ6mfPWgZ9n" Content-Disposition: inline In-Reply-To: <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 20:46:08 -0000 --yPSgZSQ6mfPWgZ9n Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 14, 2015 at 01:29:20PM -0700, Garrett Cooper wrote: > On Jul 14, 2015, at 12:16, Baptiste Daroussin wrote: >=20 > > Author: bapt > > Date: Tue Jul 14 19:16:14 2015 > > New Revision: 285552 > > URL: https://svnweb.freebsd.org/changeset/base/285552 > >=20 > > Log: > > Convert atoi(3) to stronum(3) which allows to arguments and report pro= per errors > > to the users >=20 > Is strtonum preferred over strtoll, etc? I do personnaly prefer strtonum over strtoll, so I usually use it. in that particular case of xargs I haven't chosen it, I just run into the issue due= to atoi an looked at others BSDs to see if they had fixed the issue. OpenBSD h= ad this fixed so I just grabbed it so not reinvent wheel. Bapt --yPSgZSQ6mfPWgZ9n Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlWldQsACgkQ8kTtMUmk6Ez+TwCggL4xoU8DbGB0h9c3w//h+mMG gIYAn3oPnnOnmtLRA7fHbm95qbuMCa7b =Jlio -----END PGP SIGNATURE----- --yPSgZSQ6mfPWgZ9n-- From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:36 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4029B9A15B3; Tue, 14 Jul 2015 21:45:36 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2FF7B185B; Tue, 14 Jul 2015 21:45:36 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjamv067958; Tue, 14 Jul 2015 21:45:36 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjauC067957; Tue, 14 Jul 2015 21:45:36 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjauC067957@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285574 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:36 -0000 Author: gjb Date: Tue Jul 14 21:45:35 2015 New Revision: 285574 URL: https://svnweb.freebsd.org/changeset/base/285574 Log: Document r273849, timeo, actimeo, noac, proto mount_nfs(8) options. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 20:45:24 2015 (r285573) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:35 2015 (r285574) @@ -1254,6 +1254,11 @@ is administered with the &man.automount.8; userland utility, and the &man.automountd.8; and &man.autounmountd.8; daemons. + + Support + for the timeo, actimeo, + noac, and proto options + have been added to &man.mount.nfs.8;. From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:41 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A32439A15D3; Tue, 14 Jul 2015 21:45:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 80F6618DC; Tue, 14 Jul 2015 21:45:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjfCP068043; Tue, 14 Jul 2015 21:45:41 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjfcE068042; Tue, 14 Jul 2015 21:45:41 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjfcE068042@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285576 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:41 -0000 Author: gjb Date: Tue Jul 14 21:45:40 2015 New Revision: 285576 URL: https://svnweb.freebsd.org/changeset/base/285576 Log: Document r282215, SIFTR kernel configuration option. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:37 2015 (r285575) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:40 2015 (r285576) @@ -788,6 +788,10 @@ been added for &os;/&arch.i386;, which instructs &man.pmap.9; to use PAE format for page tables. + The SIFTR kernel + configuration has been added, allowing building &man.siftr.4; + statically into the kernel. + Support for booting relocatable kernels has been extended to non-EFI systems. From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:38 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2DF99A15C0; Tue, 14 Jul 2015 21:45:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 D2D63185C; Tue, 14 Jul 2015 21:45:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjc4a068001; Tue, 14 Jul 2015 21:45:38 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjcHY068000; Tue, 14 Jul 2015 21:45:38 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjcHY068000@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285575 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:39 -0000 Author: gjb Date: Tue Jul 14 21:45:37 2015 New Revision: 285575 URL: https://svnweb.freebsd.org/changeset/base/285575 Log: Document r281495, PAE_TABLES option. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:35 2015 (r285574) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:37 2015 (r285575) @@ -783,6 +783,11 @@ &powerpc; processors has been overhaulded to improve concurrency. + The + PAE_TABLES kernel configuration option has + been added for &os;/&arch.i386;, which instructs &man.pmap.9; + to use PAE format for page tables. + Support for booting relocatable kernels has been extended to non-EFI systems. From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D84FB9A15F8; Tue, 14 Jul 2015 21:45:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B801519B5; Tue, 14 Jul 2015 21:45:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjilR068085; Tue, 14 Jul 2015 21:45:44 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjiiq068083; Tue, 14 Jul 2015 21:45:44 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjiiq068083@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285577 - in head/release/doc: en_US.ISO8859-1/relnotes share/xml X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:44 -0000 Author: gjb Date: Tue Jul 14 21:45:43 2015 New Revision: 285577 URL: https://svnweb.freebsd.org/changeset/base/285577 Log: Document r283514, sfxge(4) 7XXX-series NIC support. Add Solarflare Communications to sponsors.ent. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml head/release/doc/share/xml/sponsor.ent Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:40 2015 (r285576) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:43 2015 (r285577) @@ -1020,6 +1020,11 @@ The &man.ral.4; driver has been updated to support the RT5390 and RT5392 chipsets. + The &man.sfxge.4; driver has been + updated to support Solarflare Flareon Ultra 7000-series + chipsets. + The &man.em.4; driver has been updated with improved transmission queue hang detection. Modified: head/release/doc/share/xml/sponsor.ent ============================================================================== --- head/release/doc/share/xml/sponsor.ent Tue Jul 14 21:45:40 2015 (r285576) +++ head/release/doc/share/xml/sponsor.ent Tue Jul 14 21:45:43 2015 (r285577) @@ -43,6 +43,7 @@ + From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B76D69A1649; Tue, 14 Jul 2015 21:45:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 992421BD1; Tue, 14 Jul 2015 21:45:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjqxv068214; Tue, 14 Jul 2015 21:45:52 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjq21068213; Tue, 14 Jul 2015 21:45:52 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjq21068213@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285580 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:52 -0000 Author: gjb Date: Tue Jul 14 21:45:51 2015 New Revision: 285580 URL: https://svnweb.freebsd.org/changeset/base/285580 Log: Document r279824, dtb module for AM335x systems. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:48 2015 (r285579) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:51 2015 (r285580) @@ -792,6 +792,10 @@ &powerpc; processors has been overhaulded to improve concurrency. + A new module for creating + the dtb module for AM335x systems has + been added. + The PAE_TABLES kernel configuration option has been added for &os;/&arch.i386;, which instructs &man.pmap.9; From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A42C49A1613; Tue, 14 Jul 2015 21:45:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 5CC121A67; Tue, 14 Jul 2015 21:45:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjleO068129; Tue, 14 Jul 2015 21:45:47 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjl5u068128; Tue, 14 Jul 2015 21:45:47 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjl5u068128@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285578 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:47 -0000 Author: gjb Date: Tue Jul 14 21:45:46 2015 New Revision: 285578 URL: https://svnweb.freebsd.org/changeset/base/285578 Log: Document r278338, rpi.dtb module. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:43 2015 (r285577) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:46 2015 (r285578) @@ -773,6 +773,10 @@ system. + A new module for creating + rpi.dtb has been added for the Raspberry + Pi. + Kernel support for Vector-Scalar eXtension (VSX) found on POWER7 and POWER8 hardware From owner-svn-src-head@freebsd.org Tue Jul 14 21:45:50 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3AABD9A1634; Tue, 14 Jul 2015 21:45:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 ED6E01B07; Tue, 14 Jul 2015 21:45:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ELjnuC068170; Tue, 14 Jul 2015 21:45:49 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ELjngA068169; Tue, 14 Jul 2015 21:45:49 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142145.t6ELjngA068169@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 21:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285579 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 21:45:50 -0000 Author: gjb Date: Tue Jul 14 21:45:48 2015 New Revision: 285579 URL: https://svnweb.freebsd.org/changeset/base/285579 Log: Document r278340, rpi.dtb installed into /boot/dtb for the Raspberry Pi by default. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:46 2015 (r285578) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:45:48 2015 (r285579) @@ -777,6 +777,11 @@ rpi.dtb has been added for the Raspberry Pi. + The + rpi.dtb module is now installed to + /boot/dtb/ by + default for the Raspberry Pi system. + Kernel support for Vector-Scalar eXtension (VSX) found on POWER7 and POWER8 hardware From owner-svn-src-head@freebsd.org Tue Jul 14 22:02:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E55C9A1D25; Tue, 14 Jul 2015 22:02:13 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 2C7C312E0; Tue, 14 Jul 2015 22:02:12 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from bender.Home (97e07b11.skybroadband.com [151.224.123.17]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id DC967D7907; Tue, 14 Jul 2015 22:01:36 +0000 (UTC) Date: Tue, 14 Jul 2015 23:01:34 +0100 From: Andrew Turner To: Glen Barber Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285563 - head/release/doc/en_US.ISO8859-1/relnotes Message-ID: <20150714230134.017a4512@bender.Home> In-Reply-To: <201507142010.t6EKAAGD014980@repo.freebsd.org> References: <201507142010.t6EKAAGD014980@repo.freebsd.org> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.27; amd64-portbld-freebsd10.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 22:02:13 -0000 On Tue, 14 Jul 2015 20:10:10 +0000 (UTC) Glen Barber wrote: > Author: gjb > Date: Tue Jul 14 20:10:09 2015 > New Revision: 285563 > URL: https://svnweb.freebsd.org/changeset/base/285563 > > Log: > Document r282727, support for booting relocatable kernels extended > beyond non-EFI systems. > > Sponsored by: The FreeBSD Foundation > > Modified: > head/release/doc/en_US.ISO8859-1/relnotes/article.xml > > Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml > ============================================================================== > --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue > Jul 14 20:10:07 2015 (r285562) +++ > head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul > 14 20:10:09 2015 (r285563) @@ -773,9 +773,6 @@ system. > > > - Support for booting > - relocatable kernels has been added. > - > arch="powerpc">Kernel support for Vector-Scalar eXtension > (VSX) found on POWER7 and POWER8 hardware > @@ -786,6 +783,10 @@ > &powerpc; processors has been overhaulded to improve > concurrency. > > + Support for booting relocatable kernels > + has been extended to non-EFI > + systems. r282727 is moving the relocation code for the loader to a common place. It has nothing to do with making the kernel relocatable, but as a prep for r282731. Andrew From owner-svn-src-head@freebsd.org Tue Jul 14 22:17:59 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D099E9A2033 for ; Tue, 14 Jul 2015 22:17:59 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) by mx1.freebsd.org (Postfix) with SMTP id B05401C0E for ; Tue, 14 Jul 2015 22:17:58 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Tue, 14 Jul 2015 22:16:23 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6EMHoqe050361; Tue, 14 Jul 2015 16:17:50 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1436912270.1334.309.camel@freebsd.org> Subject: Re: svn commit: r285552 - head/usr.bin/xargs From: Ian Lepore To: d@delphij.net Cc: Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 14 Jul 2015 16:17:50 -0600 In-Reply-To: <55A574BA.4090700@delphij.net> References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 22:17:59 -0000 On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote: > On 07/14/15 13:29, Garrett Cooper wrote: > > On Jul 14, 2015, at 12:16, Baptiste Daroussin > > wrote: > > > >> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: 285552 > >> URL: https://svnweb.freebsd.org/changeset/base/285552 > >> > >> Log: Convert atoi(3) to stronum(3) which allows to arguments and > >> report proper errors to the users > > > > Is strtonum preferred over strtoll, etc? > > strtonum(3) is a wrapper of strtoll() and provides more functionality > like range checking, so I think the answer would be yes. > > Cheers, > Except if we convert all our tools that take numbers on the command line to use strtonum() then peoples' existing scripts and other automation that passes 0xWhatever numbers suddenly stop working. strtonum() seems to be about 2/3 of a good idea. -- Ian From owner-svn-src-head@freebsd.org Tue Jul 14 22:32:19 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED21B9A2416; Tue, 14 Jul 2015 22:32:19 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id D99A61C4C; Tue, 14 Jul 2015 22:32:19 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id 2532615A4; Tue, 14 Jul 2015 22:32:19 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 14 Jul 2015 22:32:17 +0000 From: Glen Barber To: Andrew Turner Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285563 - head/release/doc/en_US.ISO8859-1/relnotes Message-ID: <20150714223217.GP15828@FreeBSD.org> References: <201507142010.t6EKAAGD014980@repo.freebsd.org> <20150714230134.017a4512@bender.Home> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="7L9kolmstoDTZ4pm" Content-Disposition: inline In-Reply-To: <20150714230134.017a4512@bender.Home> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 22:32:20 -0000 --7L9kolmstoDTZ4pm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 14, 2015 at 11:01:34PM +0100, Andrew Turner wrote: > > Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=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/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue > > Jul 14 20:10:07 2015 (r285562) +++ > > head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul > > 14 20:10:09 2015 (r285563) @@ -773,9 +773,6 @@ system. > > > > =20 > > - Support for booting > > - relocatable kernels has been added. > > - > > > arch=3D"powerpc">Kernel support for Vector-Scalar eXtension > > (VSX) found on POWER7 and POWER8 hardware > > @@ -786,6 +783,10 @@ > > &powerpc; processors has been overhaulded to improve > > concurrency. > > =20 > > + Support for booting relocatable kernels > > + has been extended to non-EFI > > + systems. >=20 > r282727 is moving the relocation code for the loader to a common place. > It has nothing to do with making the kernel relocatable, but as a prep > for r282731. >=20 Do you have a suggested rewording? I can't think of another way to word this, since 'Support for [...]' still seems relevant for the context. Glen --7L9kolmstoDTZ4pm Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJVpY3xAAoJEAMUWKVHj+KTqkgQAKQCSO9oQ/ZpSkdRulK9J71T /f8tMQlNmp40WL/KJ0rrT1ajfj54YOsKH0tjE7rhZ2+wcvfZUdVOFEy0/fWqP02I T9qBVfOYZo0cDfkcQrXiRG9LXU023ZCHjPCW7ev7A2sil5+0d5kp4LWqTX8/Dgd1 p4yq3ydSglGpBcebui/lMDHXxo3oKUAxu0kzyLIaxHxIsnERzd04XKyX8E+F5NG8 or39NyoW0Pl6a9mkz+99u1QnzJhRWFcOhG7LS3yF5qThT03DiLHP3bCRtH0cDJKa 4A4EFcVaaDXNZvTyV+No7A+TRLhfBRTeZraQa3zlbGo12kKVWTTLzAd3OCF1Z+Oe dJTBrglnCA0iJ/7tWWDzGGhZR33Evl+bOtaOZEgsx0donoW0BjtHbIXhsvDpP154 UyVU5+sB/+sg3sXbYZyc3R8HFvatGopajXCzHWL9sQveO75VctCTX5CNsHr8IXE8 GsXvLTXHwghEIWNnuKxUTykXhQrDc6MocThnyWW4JFGicBjcacmebuOuVEBrYJey zPH/lDiDmUBL6+13nHxi1C9xhjPvLTE7RqRZg/7myXb36iQgi2I38CvX+9WffLsK DLo3vJ7II919SK2hpKhYpoFBlmWVyuyzX26D2+vKPLWi0KZesqSGJd/cH0l5nXZn M7MgTuuXJ7wi8JHKv23X =gX0U -----END PGP SIGNATURE----- --7L9kolmstoDTZ4pm-- From owner-svn-src-head@freebsd.org Tue Jul 14 22:48:32 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 062ED9A294E for ; Tue, 14 Jul 2015 22:48:32 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm35-vm5.bullet.mail.bf1.yahoo.com (nm35-vm5.bullet.mail.bf1.yahoo.com [72.30.238.77]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99AB71198 for ; Tue, 14 Jul 2015 22:48:31 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1436914103; bh=oTANcIYef3In0YRx9bRqFyGlZMAp7TgjMSJzDnWZsk0=; h=Date:From:To:CC:Subject:References:In-Reply-To:From:Subject; b=FnlsvQcyn91seHuxmYHTHs+sUvSS/Bfdt3U5V7U4OjOgnYGKFJR6Tt35DT5CVnVUOCyhBrM4gMzFgNr0gAFUlOfxfqgxuS6bBhqcDTVDoJXUZ5tNUHB+hLI9I11bS3DCsDXwft7nXSt75IXlFHhJiPUHJ33uYbwsSEd77PYedMl3S7965ifiVwsStrB0DMZiGCTe4PnaV3wyCOcEYZdaxMVimS9UaCCpDKtOwU5I02/D426lDvC67y+yr4lWmteQWf9uSRWGfriIfUXCVWfPVtM631qN1Y3bu8vzbdWovEu3cAVkMMxw8WDTevEYvipHn4NFDQQ19pl6bsfUPkKb1Q== Received: from [98.139.170.178] by nm35.bullet.mail.bf1.yahoo.com with NNFMP; 14 Jul 2015 22:48:23 -0000 Received: from [98.139.211.199] by tm21.bullet.mail.bf1.yahoo.com with NNFMP; 14 Jul 2015 22:48:23 -0000 Received: from [127.0.0.1] by smtp208.mail.bf1.yahoo.com with NNFMP; 14 Jul 2015 22:48:23 -0000 X-Yahoo-Newman-Id: 348794.30137.bm@smtp208.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: _9BMf1cVM1lTk7LmDHlrO2WxmPjTIUm.fsBvCF6sg3oUWZv iszBEA8xOHXEwVlfES3s8kJfFbF..c_Z7EPU2VMQA0PN5LHLW.0wAW7HQPYA RuOK7rvmFrdFgB2lg3XCwngcaA8d_Hxf3RPLzSv2PD2fh7impObwZw7Mz_3Z 0CSgBF4k4tuDad2JwsBTkVfto5Zvp_iXLmOY3UcdE.ZzWYr89hex3KQTmQ6t GkGts6s0D9V4gBPX2nJZpeHcqz_.xh4pr.OupH2WxPkp_wPyBvt8zH3yGM0S AaiKFRHsGmTz8YI2k.cMYNnlleLA_bZucXo9bPQPqugkcNHvQYfiEgFqQN32 YUPlSoLiv8JSCWfkQGm5SF4LR0YdDFdD2Iw8HcOijUi7WZan3x_2SEZIsLds M51q.9sJprNJ_R9ynG7dgN3VNOuM7F1kozMPuq8GQ1UlgYTlR2ckgPC6wHFt hFKwOjb57JMsoTrUE03VmkJcXAp2nyCMAYVfwL2RjrF10c5WxEbr64tsyU7b fp2ux2Bbt22YMTcuBwPfrUjAbJg.zk2Y_ X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55A591C8.1030105@FreeBSD.org> Date: Tue, 14 Jul 2015 17:48:40 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: d@delphij.net, Garrett Cooper , Baptiste Daroussin CC: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> In-Reply-To: <55A574BA.4090700@delphij.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 22:48:32 -0000 On 07/14/15 15:44, Xin Li wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 07/14/15 13:29, Garrett Cooper wrote: >> On Jul 14, 2015, at 12:16, Baptiste Daroussin >> wrote: >> >>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: 285552 >>> URL: https://svnweb.freebsd.org/changeset/base/285552 >>> >>> Log: Convert atoi(3) to stronum(3) which allows to arguments and >>> report proper errors to the users >> Is strtonum preferred over strtoll, etc? > strtonum(3) is a wrapper of strtoll() and provides more functionality > like range checking, so I think the answer would be yes. There is only the issue that strtonum(3) is non-standard so I have resisted the temptation to blindly replace atoi(3) in existing code. Pedro. From owner-svn-src-head@freebsd.org Tue Jul 14 23:16:51 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98F4E9A115A for ; Tue, 14 Jul 2015 23:16:51 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) by mx1.freebsd.org (Postfix) with SMTP id 60DC51B0A for ; Tue, 14 Jul 2015 23:16:50 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Tue, 14 Jul 2015 23:15:21 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6ENGmTA050461; Tue, 14 Jul 2015 17:16:48 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1436915808.1334.318.camel@freebsd.org> Subject: Re: svn commit: r285563 - head/release/doc/en_US.ISO8859-1/relnotes From: Ian Lepore To: Glen Barber Cc: Andrew Turner , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 14 Jul 2015 17:16:48 -0600 In-Reply-To: <20150714223217.GP15828@FreeBSD.org> References: <201507142010.t6EKAAGD014980@repo.freebsd.org> <20150714230134.017a4512@bender.Home> <20150714223217.GP15828@FreeBSD.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 23:16:51 -0000 On Tue, 2015-07-14 at 22:32 +0000, Glen Barber wrote: > On Tue, Jul 14, 2015 at 11:01:34PM +0100, Andrew Turner wrote: > > > Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml > > > ============================================================================== > > > --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue > > > Jul 14 20:10:07 2015 (r285562) +++ > > > head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul > > > 14 20:10:09 2015 (r285563) @@ -773,9 +773,6 @@ system. > > > > > > > > > - Support for booting > > > - relocatable kernels has been added. > > > - > > > > > arch="powerpc">Kernel support for Vector-Scalar eXtension > > > (VSX) found on POWER7 and POWER8 hardware > > > @@ -786,6 +783,10 @@ > > > &powerpc; processors has been overhaulded to improve > > > concurrency. > > > > > > + Support for booting relocatable kernels > > > + has been extended to non-EFI > > > + systems. > > > > r282727 is moving the relocation code for the loader to a common place. > > It has nothing to do with making the kernel relocatable, but as a prep > > for r282731. > > > > Do you have a suggested rewording? I can't think of another way to word > this, since 'Support for [...]' still seems relevant for the context. > > Glen > This isn't about the kernel at all. This makes it possible to share the loader relocation code between arches, so that any flavor of loader(8) can be self-relocatable. Then r282731 makes the arm ubldr flavor of loader(8) relocatable. The benefit is that a board-specific setting of UBLDR_LOADADDR is no longer needed at compile time. Unrelated work around the same time (r283035) made loader aware of the fact that arm kernels are relocatable and can be loaded on any 2MB boundary in physical ram. -- Ian From owner-svn-src-head@freebsd.org Tue Jul 14 23:20:41 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 255EB9A12EC; Tue, 14 Jul 2015 23:20:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 0CBF71FE1; Tue, 14 Jul 2015 23:20:41 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id 322BE12C4; Tue, 14 Jul 2015 23:20:40 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 14 Jul 2015 23:20:38 +0000 From: Glen Barber To: Ian Lepore Cc: Andrew Turner , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285563 - head/release/doc/en_US.ISO8859-1/relnotes Message-ID: <20150714232038.GS15828@FreeBSD.org> References: <201507142010.t6EKAAGD014980@repo.freebsd.org> <20150714230134.017a4512@bender.Home> <20150714223217.GP15828@FreeBSD.org> <1436915808.1334.318.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="rNtUoUA3Tn0/N1iC" Content-Disposition: inline In-Reply-To: <1436915808.1334.318.camel@freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 23:20:41 -0000 --rNtUoUA3Tn0/N1iC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 14, 2015 at 05:16:48PM -0600, Ian Lepore wrote: > On Tue, 2015-07-14 at 22:32 +0000, Glen Barber wrote: > > > > + Support for booting relocatable ke= rnels > > > > + has been extended to non-EFI > > > > + systems. > > >=20 > > > r282727 is moving the relocation code for the loader to a common plac= e. > > > It has nothing to do with making the kernel relocatable, but as a prep > > > for r282731. > > >=20 > >=20 > > Do you have a suggested rewording? I can't think of another way to word > > this, since 'Support for [...]' still seems relevant for the context. > >=20 >=20 > This isn't about the kernel at all. This makes it possible to share the > loader relocation code between arches, so that any flavor of loader(8) > can be self-relocatable. Then r282731 makes the arm ubldr flavor of > loader(8) relocatable. The benefit is that a board-specific setting of > UBLDR_LOADADDR is no longer needed at compile time. >=20 Ah, I see now. Thank you. I'll reword this. > Unrelated work around the same time (r283035) made loader aware of the > fact that arm kernels are relocatable and can be loaded on any 2MB > boundary in physical ram. >=20 Yeah, I didn't get to this yet, likely because of how I split up the svn logs for this last pass. The sys/arm, sys/cddl, and sys/dev logs are still in progress. Glen --rNtUoUA3Tn0/N1iC Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJVpZlGAAoJEAMUWKVHj+KTHZ4P/RE0KexnOnZ4j0UZiPBc28vF 3L33FFhsDpujUVFUlkRHJnTy23dJ5tL0IWkUTwW/dLABuM1gLpjNYwi9mV6eBSoq cMhG+kKqKRtXKM6i3dX5ACe49C4zSB9pQthb7b7FTjaJQYDknseXTPcfek8UA0J2 3CuYnclJ9L5Le2aQtP4DWGgJLqUWpunYQIKrkj+YP/zULjUDGwZXTkw61GY9fX2P Ln3LkTZZSSFOzWMfefZQTi1pEmezWZuHz6rYTparpJzU4+KASGQFz3fBpsc6yxdd CgptuvrYu43983fPFlNhD/GpeLhLJAPo+ZE26KjzZim16V/X8W1NA8bUV1SrOrHS Fe9EIOOubiSmer8Vn13MCLUbY4n2cbEBoMYXxv3DHaCt4cCTMgqN3ZcB/6bOHBjZ xWh+A92i66mkY1U0igNZj6FzRNYxCKC/Z6dI9wjrnWLsTw6Nem2QP+b2IpAMsAXl zOp/Pn7/kwhir/Rr4rLxJhUKrgtZLdqqknFY9d4ZpjNzqAcJ44Y5ndGfU/3Y0fFn Qq8FDLJC9sfjRM3S4d+Lkh/A32Z61u6sBHj/zqBi8QmsU/WlWTr4bkQv7y5xlTkh nblc0hNxoCroo+c0B9nrRcgcrpsufqFHKT/iiH9WwCg6htiWmyNgmBRHXlVUBMin Fpu9GjGKoykMD0Tl7UMm =Dk2Z -----END PGP SIGNATURE----- --rNtUoUA3Tn0/N1iC-- From owner-svn-src-head@freebsd.org Tue Jul 14 23:41:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B11A9A1708; Tue, 14 Jul 2015 23:41:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 5786F1E2F; Tue, 14 Jul 2015 23:41:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ENfEwr016725; Tue, 14 Jul 2015 23:41:14 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6ENfE4B016724; Tue, 14 Jul 2015 23:41:14 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507142341.t6ENfE4B016724@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 14 Jul 2015 23:41:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285587 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2015 23:41:14 -0000 Author: gjb Date: Tue Jul 14 23:41:13 2015 New Revision: 285587 URL: https://svnweb.freebsd.org/changeset/base/285587 Log: Remove the r282727 entry for now, pending refinement based on feedback from andrew@ and ian@. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 21:46:12 2015 (r285586) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jul 14 23:41:13 2015 (r285587) @@ -805,10 +805,6 @@ configuration has been added, allowing building &man.siftr.4; statically into the kernel. - Support for booting relocatable kernels - has been extended to non-EFI - systems. - The &arch.arm; boot loader, ubldr, is now relocatable. In addition, ubldr.bin is now created during build From owner-svn-src-head@freebsd.org Wed Jul 15 00:02:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B082F9A1D0B; Wed, 15 Jul 2015 00:02:23 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 983041C98; Wed, 15 Jul 2015 00:02:23 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 4C0091C740; Tue, 14 Jul 2015 17:02:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1436918543; x=1436932943; bh=7j1/R+DAhP9A485AAimMboqFpm7Ao4NuVvnE+Xx/I9U=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=i3h+UhKgdvaZSEnkMJ3LXLnVRXuKceEvhfXpEG03WALr7JhGp7nwQU/Sw3BPmaKkc WV8E93t7UDdzZhmqc9kkK/Am2wl4NodkOt+1aZqVGreCYCHXYoZgy4G/LKSJ1sauTL xrokyUHSxkUixEpWMLj0iSHR+fGjp4BmJpAWTrns= Message-ID: <55A5A30F.4070005@delphij.net> Date: Tue, 14 Jul 2015 17:02:23 -0700 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: Ian Lepore , d@delphij.net CC: Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> In-Reply-To: <1436912270.1334.309.camel@freebsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 00:02:23 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 07/14/15 15:17, Ian Lepore wrote: > On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote: >> On 07/14/15 13:29, Garrett Cooper wrote: >>> On Jul 14, 2015, at 12:16, Baptiste Daroussin >>> wrote: >>> >>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: >>>> 285552 URL: https://svnweb.freebsd.org/changeset/base/285552 >>>> >>>> Log: Convert atoi(3) to stronum(3) which allows to arguments >>>> and report proper errors to the users >>> >>> Is strtonum preferred over strtoll, etc? >> >> strtonum(3) is a wrapper of strtoll() and provides more >> functionality like range checking, so I think the answer would be >> yes. >> >> Cheers, >> > > Except if we convert all our tools that take numbers on the command > line to use strtonum() then peoples' existing scripts and other > automation that passes 0xWhatever numbers suddenly stop working. > strtonum() seems to be about 2/3 of a good idea. I think the caller has to be calling with 0 or 16 as base to request that behavior? If we are converting from atoi, the base number is a fixed value of 10. My only concern with strtonum() is that it's English only. Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.1.6 (FreeBSD) iQIcBAEBCgAGBQJVpaMOAAoJEJW2GBstM+nsA9kP/29HyJZXJQbP57/hhZLpCln4 dO9ScoZxsdvrKzeMfxI3/u16vl2Ei5nkiYLga8gfkpqcmsAc11duomJHvq0BHe2j 7Srr8m4CYsk6bp32qaIBCl9weKz5jR56EaMBn6FfplCYlx+5noHIulXdKz5tWJqF IHiHdXUAGCGPLMLVeVatMk02x1VoCwkSvwyZ070COlZMdz0tfKBz5uvren3C/LCq eI6+9cVXYv5fBChW7CHwtcgtFcILmfaYuzWfOm+i87gj0YfMGa8aq8WjHAkC+JzR lW+WRk8RONhbfIg0fJ8PkrGeinNgaiu9mUDH6qmpqM2Zfy68trxVuBNKtI8ygSJz z7BDsP6TsD/+z02cV9C3wuYGx8U117MVBmFT86W1a7II0VXAug0wg/XUTh9xCWaU w52k/ZfFO0ZE4P+cz/NiFco+MXHpn5Q32lmpWBwv1OAVmaImHTZ3IOkO9LdwsbiX 5Bbj6odEACd64WzgorCdIHt7gcWBFxNjLE/NDUw1CqStqEAzkS8Ny//nG0GC5S9q IO+1epMAWnHxsGJC3zBjYOQUgMRdPmRi35yAxuUpa2tccBFIuPRAkrP24rtQhOB/ USB1a75Dlmr4YssrFKi5ir0pEVg/7JmO0mfsR94en3riq+d7+dD4m4tgUe/QPGjo 3ReYZc3VrLgn2ORs9nH/ =VzoB -----END PGP SIGNATURE----- From owner-svn-src-head@freebsd.org Wed Jul 15 00:02:33 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 206EF9A1D35; Wed, 15 Jul 2015 00:02:33 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 335A61D93; Wed, 15 Jul 2015 00:02:32 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id DD0811C742; Tue, 14 Jul 2015 17:02:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1436918552; x=1436932952; bh=Tji20FCl99g29h3dlZ+JlFHMz3pbUkZbFrldBBGkMsI=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=nL7Vin0SyPzL+7+zgAFUfxyRe71XYf/2fCUlFEIFPtMfF80X9FtaE9y2MdzpR7ivP Eng6ZdlcwHXRt68izLM/3bZY+H7iNygeNrEHVJFjttN7E3jDH3YdrT4XofpXATJfha Omq6pgottaTRqSMGsUPoiLgBahh96WxJZZJ3OR4A= Message-ID: <55A5A317.9000008@delphij.net> Date: Tue, 14 Jul 2015 17:02:31 -0700 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: Pedro Giffuni , d@delphij.net, Garrett Cooper , Baptiste Daroussin CC: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <55A591C8.1030105@FreeBSD.org> In-Reply-To: <55A591C8.1030105@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 00:02:33 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 07/14/15 15:48, Pedro Giffuni wrote: > > > On 07/14/15 15:44, Xin Li wrote: >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 >> >> On 07/14/15 13:29, Garrett Cooper wrote: >>> On Jul 14, 2015, at 12:16, Baptiste Daroussin >>> wrote: >>> >>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: >>>> 285552 URL: https://svnweb.freebsd.org/changeset/base/285552 >>>> >>>> Log: Convert atoi(3) to stronum(3) which allows to arguments >>>> and report proper errors to the users >>> Is strtonum preferred over strtoll, etc? >> strtonum(3) is a wrapper of strtoll() and provides more >> functionality like range checking, so I think the answer would be >> yes. > > There is only the issue that strtonum(3) is non-standard so I have > resisted the temptation to blindly replace atoi(3) in existing > code. Well, that's true, but what Baptiste done was to address a specific issue with the existing code (to provide better error message) so I don't think that counts as a simple wholesale replacement from one API to another API. Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.1.6 (FreeBSD) iQIcBAEBCgAGBQJVpaMXAAoJEJW2GBstM+nspRwP/2hRY54SkxknEyCVP8+l7U6W kmtX4ErcVHBVri+9oW04GFX6Pu5/8uTZZTh7ALLzGIUprBqGhcDwbTTD+9Gw/ha7 PKliR33zYoqIMg7DNHXI8nSXh2nq4AaTucWnO9Vl0vNtRR8jDvmzCF03ukHv4JlX 2ES/sL2ruToI6wwk9fWnLqJ3lhZO2aXVmbrLyzsWiaQCKNCKWe/LhP1IhGwTFvra HmOKXl+FC0PosYQ8LBhiu8GSuK3wWmoIWOCAQ5TmhHD4UFU57sBS2bTxXekrradu PEnz0W+ZCpgy5XXot6VBXOjoLU/Dm3RYt4un/ot11y/FZCVnh+RfbzJXFJUSuQ6A 6hyqBi3NoSD5k0e8ei9frJennDT23ucuffPKaYC9EMCjki7sJCf9Nn3t0x3sBdvZ q3EJyIdAHmRQZxessRnkJGZA74kJBHa3yzIATBL58EpDFIJABK2reomEhwNEBnKS V01xQzMm4YqJ5dy89ZE81SD8+3b9N2HNnMoA7LsJGa3hcVVOnfKNPDMYH8YEpZu0 JwQOBg2k04AkwfWqkW97/av1nOmwg5H7/Zm7dEGU6KcPl49NzfnnH5WYsBT8R2N3 8tAMwddNzNAWKvDya0qH0sPFw3YiyLtPA+e7S54iDroTyiWCXBuYLfzQEkC+bQzX zxsjdL+FPfBuK76YuM1l =MYtY -----END PGP SIGNATURE----- From owner-svn-src-head@freebsd.org Wed Jul 15 00:35:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82A0C99C3D3; Wed, 15 Jul 2015 00:35:52 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 4F0AA1DC8; Wed, 15 Jul 2015 00:35:52 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F0Zqr0038301; Wed, 15 Jul 2015 00:35:52 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F0ZpkB038298; Wed, 15 Jul 2015 00:35:51 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201507150035.t6F0ZpkB038298@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Wed, 15 Jul 2015 00:35:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285590 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 00:35:52 -0000 Author: pkelsey Date: Wed Jul 15 00:35:50 2015 New Revision: 285590 URL: https://svnweb.freebsd.org/changeset/base/285590 Log: Fix igxbe SRIOV VF (if_ixv) initialization bugs. The MAC address for an if_ixv instance can now set at creation time, and the receive ring tail pointer is correctly initialized (previously, things still worked because the receive ring tail pointer was being fixed up as a side effect of other activity). Differential Revision: https://reviews.freebsd.org/D2922 Reviewed by: erj, gnn Approved by: jmallett (mentor) Sponsored by: Norse Corp, Inc. Modified: head/sys/dev/ixgbe/if_ix.c head/sys/dev/ixgbe/if_ixv.c head/sys/dev/ixgbe/ixgbe_vf.c Modified: head/sys/dev/ixgbe/if_ix.c ============================================================================== --- head/sys/dev/ixgbe/if_ix.c Tue Jul 14 23:49:29 2015 (r285589) +++ head/sys/dev/ixgbe/if_ix.c Wed Jul 15 00:35:50 2015 (r285590) @@ -5273,10 +5273,10 @@ ixgbe_vf_api_negotiate(struct adapter *a uint32_t *msg) { - switch (msg[0]) { + switch (msg[1]) { case IXGBE_API_VER_1_0: case IXGBE_API_VER_1_1: - vf->api_ver = msg[0]; + vf->api_ver = msg[1]; ixgbe_send_vf_ack(adapter, vf, msg[0]); break; default: Modified: head/sys/dev/ixgbe/if_ixv.c ============================================================================== --- head/sys/dev/ixgbe/if_ixv.c Tue Jul 14 23:49:29 2015 (r285589) +++ head/sys/dev/ixgbe/if_ixv.c Wed Jul 15 00:35:50 2015 (r285590) @@ -1665,10 +1665,6 @@ ixv_initialize_receive_units(struct adap reg |= IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF; IXGBE_WRITE_REG(hw, IXGBE_VFSRRCTL(i), reg); - /* Set the Tail Pointer */ - IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me), - adapter->num_rx_desc - 1); - /* Set the processing limit */ rxr->process_limit = ixv_rx_process_limit; @@ -1687,6 +1683,10 @@ ixv_initialize_receive_units(struct adap msec_delay(1); } wmb(); + + /* Set the Tail Pointer */ + IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me), + adapter->num_rx_desc - 1); } rxcsum = IXGBE_READ_REG(hw, IXGBE_RXCSUM); Modified: head/sys/dev/ixgbe/ixgbe_vf.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe_vf.c Tue Jul 14 23:49:29 2015 (r285589) +++ head/sys/dev/ixgbe/ixgbe_vf.c Wed Jul 15 00:35:50 2015 (r285590) @@ -225,6 +225,8 @@ s32 ixgbe_reset_hw_vf(struct ixgbe_hw *h if (ret_val) return ret_val; + msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS; + if (msgbuf[0] != (IXGBE_VF_RESET | IXGBE_VT_MSGTYPE_ACK) && msgbuf[0] != (IXGBE_VF_RESET | IXGBE_VT_MSGTYPE_NACK)) return IXGBE_ERR_INVALID_MAC_ADDR; From owner-svn-src-head@freebsd.org Wed Jul 15 01:01:20 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 124D299C855; Wed, 15 Jul 2015 01:01:20 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 CF9FA19B3; Wed, 15 Jul 2015 01:01:19 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F11IlH046708; Wed, 15 Jul 2015 01:01:18 GMT (envelope-from hiren@FreeBSD.org) Received: (from hiren@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F11INR046707; Wed, 15 Jul 2015 01:01:18 GMT (envelope-from hiren@FreeBSD.org) Message-Id: <201507150101.t6F11INR046707@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: hiren set sender to hiren@FreeBSD.org using -f From: Hiren Panchasara Date: Wed, 15 Jul 2015 01:01:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285591 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 01:01:20 -0000 Author: hiren Date: Wed Jul 15 01:01:17 2015 New Revision: 285591 URL: https://svnweb.freebsd.org/changeset/base/285591 Log: Remove FreeBSD version check for deprecated M_FLOWID. Reviewed by: erj Sponsored by: Limelight Networks Modified: head/sys/dev/ixgbe/ix_txrx.c Modified: head/sys/dev/ixgbe/ix_txrx.c ============================================================================== --- head/sys/dev/ixgbe/ix_txrx.c Wed Jul 15 00:35:50 2015 (r285590) +++ head/sys/dev/ixgbe/ix_txrx.c Wed Jul 15 01:01:17 2015 (r285591) @@ -210,11 +210,7 @@ ixgbe_mq_start(struct ifnet *ifp, struct * If everything is setup correctly, it should be the * same bucket that the current CPU we're on is. */ -#if __FreeBSD_version < 1100054 - if (m->m_flags & M_FLOWID) { -#else if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) { -#endif #ifdef RSS if (rss_hash2bucket(m->m_pkthdr.flowid, M_HASHTYPE_GET(m), &bucket_id) == 0) From owner-svn-src-head@freebsd.org Wed Jul 15 01:02:05 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A75CD99C894; Wed, 15 Jul 2015 01:02:05 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 BFF3C1B8F; Wed, 15 Jul 2015 01:02:04 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F123Y5050282; Wed, 15 Jul 2015 01:02:03 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F122jE050275; Wed, 15 Jul 2015 01:02:02 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201507150102.t6F122jE050275@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Wed, 15 Jul 2015 01:02:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285592 - in head/sys: amd64/conf dev/ixgbe dev/netmap X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 01:02:05 -0000 Author: pkelsey Date: Wed Jul 15 01:02:01 2015 New Revision: 285592 URL: https://svnweb.freebsd.org/changeset/base/285592 Log: Add netmap support for ixgbe SRIOV VFs (that is, to if_ixv). Differential Revision: https://reviews.freebsd.org/D2923 Reviewed by: erj, gnn Approved by: jmallett (mentor) Sponsored by: Norse Corp, Inc. Modified: head/sys/amd64/conf/GENERIC head/sys/dev/ixgbe/if_ix.c head/sys/dev/ixgbe/if_ixv.c head/sys/dev/ixgbe/ixgbe.h head/sys/dev/netmap/ixgbe_netmap.h Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Wed Jul 15 01:01:17 2015 (r285591) +++ head/sys/amd64/conf/GENERIC Wed Jul 15 01:02:01 2015 (r285592) @@ -362,7 +362,7 @@ device xenpci # Xen HVM Hypervisor se device vmx # VMware VMXNET3 Ethernet # Netmap provides direct access to TX/RX rings on supported NICs -device netmap # netmap(4) support +# device netmap # netmap(4) support # The crypto framework is required by IPSEC device crypto # Required by IPSEC Modified: head/sys/dev/ixgbe/if_ix.c ============================================================================== --- head/sys/dev/ixgbe/if_ix.c Wed Jul 15 01:01:17 2015 (r285591) +++ head/sys/dev/ixgbe/if_ix.c Wed Jul 15 01:02:01 2015 (r285592) @@ -442,6 +442,11 @@ ixgbe_attach(device_t dev) adapter->dev = adapter->osdep.dev = dev; hw = &adapter->hw; +#ifdef DEV_NETMAP + adapter->init_locked = ixgbe_init_locked; + adapter->stop_locked = ixgbe_stop; +#endif + /* Core Lock Init*/ IXGBE_CORE_LOCK_INIT(adapter, device_get_nameunit(dev)); Modified: head/sys/dev/ixgbe/if_ixv.c ============================================================================== --- head/sys/dev/ixgbe/if_ixv.c Wed Jul 15 01:01:17 2015 (r285591) +++ head/sys/dev/ixgbe/if_ixv.c Wed Jul 15 01:02:01 2015 (r285592) @@ -124,6 +124,18 @@ static void ixv_msix_mbx(void *); static void ixv_handle_que(void *, int); static void ixv_handle_mbx(void *, int); +#ifdef DEV_NETMAP +/* + * This is defined in , which is included by + * if_ix.c. + */ +extern void ixgbe_netmap_attach(struct adapter *adapter); + +#include +#include +#include +#endif /* DEV_NETMAP */ + /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ @@ -145,6 +157,9 @@ devclass_t ixv_devclass; DRIVER_MODULE(ixv, pci, ixv_driver, ixv_devclass, 0, 0); MODULE_DEPEND(ixv, pci, 1, 1, 1); MODULE_DEPEND(ixv, ether, 1, 1, 1); +#ifdef DEV_NETMAP +MODULE_DEPEND(ix, netmap, 1, 1, 1); +#endif /* DEV_NETMAP */ /* XXX depend on 'ix' ? */ /* @@ -278,6 +293,11 @@ ixv_attach(device_t dev) adapter->dev = adapter->osdep.dev = dev; hw = &adapter->hw; +#ifdef DEV_NETMAP + adapter->init_locked = ixv_init_locked; + adapter->stop_locked = ixv_stop; +#endif + /* Core Lock Init*/ IXGBE_CORE_LOCK_INIT(adapter, device_get_nameunit(dev)); @@ -381,6 +401,9 @@ ixv_attach(device_t dev) adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, ixv_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST); +#ifdef DEV_NETMAP + ixgbe_netmap_attach(adapter); +#endif /* DEV_NETMAP */ INIT_DEBUGOUT("ixv_attach: end"); return (0); @@ -444,6 +467,9 @@ ixv_detach(device_t dev) ether_ifdetach(adapter->ifp); callout_drain(&adapter->timer); +#ifdef DEV_NETMAP + netmap_detach(adapter->ifp); +#endif /* DEV_NETMAP */ ixv_free_pci_resources(adapter); bus_generic_detach(dev); if_free(adapter->ifp); @@ -1685,8 +1711,33 @@ ixv_initialize_receive_units(struct adap wmb(); /* Set the Tail Pointer */ - IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me), - adapter->num_rx_desc - 1); +#ifdef DEV_NETMAP + /* + * In netmap mode, we must preserve the buffers made + * available to userspace before the if_init() + * (this is true by default on the TX side, because + * init makes all buffers available to userspace). + * + * netmap_reset() and the device specific routines + * (e.g. ixgbe_setup_receive_rings()) map these + * buffers at the end of the NIC ring, so here we + * must set the RDT (tail) register to make sure + * they are not overwritten. + * + * In this driver the NIC ring starts at RDH = 0, + * RDT points to the last slot available for reception (?), + * so RDT = num_rx_desc - 1 means the whole ring is available. + */ + if (ifp->if_capenable & IFCAP_NETMAP) { + struct netmap_adapter *na = NA(adapter->ifp); + struct netmap_kring *kring = &na->rx_rings[i]; + int t = na->num_rx_desc - 1 - nm_kr_rxspace(kring); + + IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me), t); + } else +#endif /* DEV_NETMAP */ + IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me), + adapter->num_rx_desc - 1); } rxcsum = IXGBE_READ_REG(hw, IXGBE_RXCSUM); Modified: head/sys/dev/ixgbe/ixgbe.h ============================================================================== --- head/sys/dev/ixgbe/ixgbe.h Wed Jul 15 01:01:17 2015 (r285591) +++ head/sys/dev/ixgbe/ixgbe.h Wed Jul 15 01:02:01 2015 (r285592) @@ -555,6 +555,10 @@ struct adapter { #ifdef PCI_IOV struct ixgbe_vf *vfs; #endif +#ifdef DEV_NETMAP + void (*init_locked)(struct adapter *); + void (*stop_locked)(void *); +#endif /* Misc stats maintained by the driver */ unsigned long dropped_pkts; Modified: head/sys/dev/netmap/ixgbe_netmap.h ============================================================================== --- head/sys/dev/netmap/ixgbe_netmap.h Wed Jul 15 01:01:17 2015 (r285591) +++ head/sys/dev/netmap/ixgbe_netmap.h Wed Jul 15 01:02:01 2015 (r285592) @@ -26,7 +26,7 @@ /* * $FreeBSD$ * - * netmap support for: ixgbe + * netmap support for: ixgbe (both ix and ixv) * * This file is meant to be a reference on how to implement * netmap support for a network driver. @@ -48,6 +48,7 @@ */ #include +void ixgbe_netmap_attach(struct adapter *adapter); /* * device-specific sysctl variables: @@ -120,20 +121,19 @@ ixgbe_netmap_reg(struct netmap_adapter * struct adapter *adapter = ifp->if_softc; IXGBE_CORE_LOCK(adapter); - ixgbe_disable_intr(adapter); // XXX maybe ixgbe_stop ? + adapter->stop_locked(adapter); - /* Tell the stack that the interface is no longer active */ - ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); - - set_crcstrip(&adapter->hw, onoff); + if (!IXGBE_IS_VF(adapter)) + set_crcstrip(&adapter->hw, onoff); /* enable or disable flags and callbacks in na and ifp */ if (onoff) { nm_set_native_flags(na); } else { nm_clear_native_flags(na); } - ixgbe_init_locked(adapter); /* also enables intr */ - set_crcstrip(&adapter->hw, onoff); // XXX why twice ? + adapter->init_locked(adapter); /* also enables intr */ + if (!IXGBE_IS_VF(adapter)) + set_crcstrip(&adapter->hw, onoff); // XXX why twice ? IXGBE_CORE_UNLOCK(adapter); return (ifp->if_drv_flags & IFF_DRV_RUNNING ? 0 : 1); } @@ -266,7 +266,7 @@ ixgbe_netmap_txsync(struct netmap_kring BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); /* (re)start the tx unit up to slot nic_i (excluded) */ - IXGBE_WRITE_REG(&adapter->hw, IXGBE_TDT(txr->me), nic_i); + IXGBE_WRITE_REG(&adapter->hw, txr->tail, nic_i); } /* @@ -310,7 +310,8 @@ ixgbe_netmap_txsync(struct netmap_kring * REPORT_STATUS in a few slots so TDH is the only * good way. */ - nic_i = IXGBE_READ_REG(&adapter->hw, IXGBE_TDH(kring->ring_id)); + nic_i = IXGBE_READ_REG(&adapter->hw, IXGBE_IS_VF(adapter) ? + IXGBE_VFTDH(kring->ring_id) : IXGBE_TDH(kring->ring_id)); if (nic_i >= kring->nkr_num_slots) { /* XXX can it happen ? */ D("TDH wrap %d", nic_i); nic_i -= kring->nkr_num_slots; @@ -379,7 +380,7 @@ ixgbe_netmap_rxsync(struct netmap_kring * rxr->next_to_check is set to 0 on a ring reinit */ if (netmap_no_pendintr || force_update) { - int crclen = ix_crcstrip ? 0 : 4; + int crclen = (ix_crcstrip || IXGBE_IS_VF(adapter) ) ? 0 : 4; uint16_t slot_flags = kring->nkr_slot_flags; nic_i = rxr->next_to_check; // or also k2n(kring->nr_hwtail) @@ -453,7 +454,7 @@ ixgbe_netmap_rxsync(struct netmap_kring * so move nic_i back by one unit */ nic_i = nm_prev(nic_i, lim); - IXGBE_WRITE_REG(&adapter->hw, IXGBE_RDT(rxr->me), nic_i); + IXGBE_WRITE_REG(&adapter->hw, rxr->tail, nic_i); } return 0; @@ -470,7 +471,7 @@ ring_reset: * netmap mode will be disabled and the driver will only * operate in standard mode. */ -static void +void ixgbe_netmap_attach(struct adapter *adapter) { struct netmap_adapter na; From owner-svn-src-head@freebsd.org Wed Jul 15 01:04:55 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE03399C8C7; Wed, 15 Jul 2015 01:04:55 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 C9A421D2E; Wed, 15 Jul 2015 01:04:55 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F14tWe050424; Wed, 15 Jul 2015 01:04:55 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F14tWm050423; Wed, 15 Jul 2015 01:04:55 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201507150104.t6F14tWm050423@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Wed, 15 Jul 2015 01:04:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285593 - head/sys/amd64/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 01:04:56 -0000 Author: pkelsey Date: Wed Jul 15 01:04:54 2015 New Revision: 285593 URL: https://svnweb.freebsd.org/changeset/base/285593 Log: Revert inadvertent change to amd64/GENERIC. Modified: head/sys/amd64/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Wed Jul 15 01:02:01 2015 (r285592) +++ head/sys/amd64/conf/GENERIC Wed Jul 15 01:04:54 2015 (r285593) @@ -362,7 +362,7 @@ device xenpci # Xen HVM Hypervisor se device vmx # VMware VMXNET3 Ethernet # Netmap provides direct access to TX/RX rings on supported NICs -# device netmap # netmap(4) support +device netmap # netmap(4) support # The crypto framework is required by IPSEC device crypto # Required by IPSEC From owner-svn-src-head@freebsd.org Wed Jul 15 02:23:56 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2A849A26CF; Wed, 15 Jul 2015 02:23:56 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B524B1C55; Wed, 15 Jul 2015 02:23:56 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F2Nuh6083392; Wed, 15 Jul 2015 02:23:56 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F2NuL4083390; Wed, 15 Jul 2015 02:23:56 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507150223.t6F2NuL4083390@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Wed, 15 Jul 2015 02:23:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285594 - in head: sbin/geom/class/part sys/geom/part X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 02:23:57 -0000 Author: allanjude (doc committer) Date: Wed Jul 15 02:23:55 2015 New Revision: 285594 URL: https://svnweb.freebsd.org/changeset/base/285594 Log: Add a new option to gpart(8) to fix Lenovo BIOS boot issue PR: 184910 Reviewed by: ae, wblock Approved by: marcel MFC after: 3 days Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3065 Modified: head/sbin/geom/class/part/gpart.8 head/sys/geom/part/g_part_gpt.c Modified: head/sbin/geom/class/part/gpart.8 ============================================================================== --- head/sbin/geom/class/part/gpart.8 Wed Jul 15 01:04:54 2015 (r285593) +++ head/sbin/geom/class/part/gpart.8 Wed Jul 15 02:23:55 2015 (r285594) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 5, 2015 +.Dd July 14, 2015 .Dt GPART 8 .Os .Sh NAME @@ -933,6 +933,12 @@ start-up script. See .Xr gptboot 8 for more details. +.It Cm lenovofix +Setting this attribute overwrites the Protective MBR with a new one where +the 0xee partition is the second, rather than the first record. +This resolves a BIOS compatibility issue with some Lenovo models including the +X220, T420, and T520, allowing them to boot from GPT partitioned disks +without using EFI. .El .Pp The scheme-specific attributes for MBR: Modified: head/sys/geom/part/g_part_gpt.c ============================================================================== --- head/sys/geom/part/g_part_gpt.c Wed Jul 15 01:04:54 2015 (r285593) +++ head/sys/geom/part/g_part_gpt.c Wed Jul 15 02:23:55 2015 (r285594) @@ -1007,6 +1007,7 @@ g_part_gpt_setunset(struct g_part_table { struct g_part_gpt_entry *entry; struct g_part_gpt_table *table; + struct g_provider *pp; uint8_t *p; uint64_t attr; int i; @@ -1036,6 +1037,21 @@ g_part_gpt_setunset(struct g_part_table } } return (0); + } else if (strcasecmp(attrib, "lenovofix") == 0) { + /* + * Write the 0xee GPT entry to slot #1 (2nd slot) in the pMBR. + * This workaround allows Lenovo X220, T420, T520, etc to boot + * from GPT Partitions in BIOS mode. + */ + + if (entry != NULL) + return (ENXIO); + + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + bzero(table->mbr + DOSPARTOFF, DOSPARTSIZE * NDOSPART); + gpt_write_mbr_entry(table->mbr, ((set) ? 1 : 0), 0xee, 1, + MIN(pp->mediasize / pp->sectorsize - 1, UINT32_MAX)); + return (0); } if (entry == NULL) From owner-svn-src-head@freebsd.org Wed Jul 15 03:25:59 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9FF299B09C for ; Wed, 15 Jul 2015 03:25:59 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery4.ore.mailhop.org (pmta2.delivery4.ore.mailhop.org [54.200.247.200]) by mx1.freebsd.org (Postfix) with SMTP id B97BE29AD for ; Wed, 15 Jul 2015 03:25:59 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 15 Jul 2015 03:25:38 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6F3Pp75050765; Tue, 14 Jul 2015 21:25:51 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1436930751.1334.325.camel@freebsd.org> Subject: Re: svn commit: r285552 - head/usr.bin/xargs From: Ian Lepore To: d@delphij.net Cc: Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 14 Jul 2015 21:25:51 -0600 In-Reply-To: <55A5A30F.4070005@delphij.net> References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> <55A5A30F.4070005@delphij.net> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 03:25:59 -0000 On Tue, 2015-07-14 at 17:02 -0700, Xin Li wrote: > On 07/14/15 15:17, Ian Lepore wrote: > > On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote: > >> On 07/14/15 13:29, Garrett Cooper wrote: > >>> On Jul 14, 2015, at 12:16, Baptiste Daroussin > >>> wrote: > >>> > >>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: > >>>> 285552 URL: https://svnweb.freebsd.org/changeset/base/285552 > >>>> > >>>> Log: Convert atoi(3) to stronum(3) which allows to arguments > >>>> and report proper errors to the users > >>> > >>> Is strtonum preferred over strtoll, etc? > >> > >> strtonum(3) is a wrapper of strtoll() and provides more > >> functionality like range checking, so I think the answer would be > >> yes. > >> > >> Cheers, > >> > > > > Except if we convert all our tools that take numbers on the command > > line to use strtonum() then peoples' existing scripts and other > > automation that passes 0xWhatever numbers suddenly stop working. > > strtonum() seems to be about 2/3 of a good idea. > > I think the caller has to be calling with 0 or 16 as base to request > that behavior? If we are converting from atoi, the base number is a > fixed value of 10. > > My only concern with strtonum() is that it's English only. > > Cheers, revolution > cd src /bsdstg/head/src revolution > gs . 'strto.*l.*\(.*0\)' | wc -l 2176 revolution > gs . 'strto.*l.*\(.*10\)' | wc -l 1097 Looks like about half our strtol-ish calls specify 10 instead of 0. Many of those are in the compilers and other places where it really has to be 10. Probably a good number of them are places that really should just be 0. I know over the years I've been pleasantly surprised and occasionally disappointed about being able to use 0x numbers on command lines and config files where it felt more natural. -- Ian From owner-svn-src-head@freebsd.org Wed Jul 15 06:00:12 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D65299CE32; Wed, 15 Jul 2015 06:00:12 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D63816CE; Wed, 15 Jul 2015 06:00:12 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by widic2 with SMTP id ic2so54052677wid.0; Tue, 14 Jul 2015 23:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=zFwbkGuQrUZvM507EOoZpHB+MGpOXg6p2EhEOEu8DkA=; b=ieuEqX77uWkc1eBKYYyb57OpKAL5mb3eNHazS2PRHxLJ0iO5xa/dfTLuJcsFe0Azlc E4PwTST0NFOn2+MiWkEEtWrtv6Ac/WQQ8vein3uYevcdbJoAgpZU3pOZ+trqS4tFZi8I 94NXFVN93go30M8jS1qbl1K502zR0hyq5YgHVODzsAI1p7KmDvUfJf5Kx7VwErSvgKdX klZicnyWqG7jlm+Ulg/bdpx9fcBCKeDLggcL2VxrwZwLzgQyzVlLr60sbIYJMGxaFKKS eu5q6VuEJKeiPBk+YyUk9DX4LDp8dFNG0SEeWjM2iKU7KOhA8o3y4M8CmnOqsnmwtMUD 3uwg== X-Received: by 10.180.89.104 with SMTP id bn8mr22492970wib.6.1436940007934; Tue, 14 Jul 2015 23:00:07 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id i6sm6069724wjf.29.2015.07.14.23.00.06 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Jul 2015 23:00:07 -0700 (PDT) Sender: Baptiste Daroussin Date: Wed, 15 Jul 2015 08:00:05 +0200 From: Baptiste Daroussin To: Patrick Kelsey Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285592 - in head/sys: amd64/conf dev/ixgbe dev/netmap Message-ID: <20150715060004.GQ37597@ivaldir.etoilebsd.net> References: <201507150102.t6F122jE050275@svnmir.geo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="4PJudQiuYY5+cwwi" Content-Disposition: inline In-Reply-To: <201507150102.t6F122jE050275@svnmir.geo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 06:00:12 -0000 --4PJudQiuYY5+cwwi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 15, 2015 at 01:02:02AM +0000, Patrick Kelsey wrote: > Author: pkelsey > Date: Wed Jul 15 01:02:01 2015 > New Revision: 285592 > URL: https://svnweb.freebsd.org/changeset/base/285592 >=20 > Log: > Add netmap support for ixgbe SRIOV VFs (that is, to if_ixv). > =20 > Differential Revision: https://reviews.freebsd.org/D2923 > Reviewed by: erj, gnn > Approved by: jmallett (mentor) > Sponsored by: Norse Corp, Inc. >=20 > Modified: > head/sys/amd64/conf/GENERIC > head/sys/dev/ixgbe/if_ix.c > head/sys/dev/ixgbe/if_ixv.c > head/sys/dev/ixgbe/ixgbe.h > head/sys/dev/netmap/ixgbe_netmap.h >=20 > Modified: head/sys/amd64/conf/GENERIC > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=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/amd64/conf/GENERIC Wed Jul 15 01:01:17 2015 (r285591) > +++ head/sys/amd64/conf/GENERIC Wed Jul 15 01:02:01 2015 (r285592) > @@ -362,7 +362,7 @@ device xenpci # Xen HVM Hypervisor se > device vmx # VMware VMXNET3 Ethernet > =20 > # Netmap provides direct access to TX/RX rings on supported NICs > -device netmap # netmap(4) support > +# device netmap # netmap(4) support > =20 Is that intentional? why disabling netmap? Best regards, Bapt --4PJudQiuYY5+cwwi Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlWl9uQACgkQ8kTtMUmk6EwTlACdH+0fGhPreyPxRBT7PeBNz2Wz T7AAn1ouVnUdECtnHa3q+J9GK0SYGp+D =ppMr -----END PGP SIGNATURE----- --4PJudQiuYY5+cwwi-- From owner-svn-src-head@freebsd.org Wed Jul 15 06:01:15 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24F5F99CED5; Wed, 15 Jul 2015 06:01:15 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E4B3D1B1B; Wed, 15 Jul 2015 06:01:14 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by pachj5 with SMTP id hj5so18154097pac.3; Tue, 14 Jul 2015 23:01:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to; bh=ucyFlE5puky2TQi+Ch1nitjnooMLyQNERo0LJmjTwBw=; b=KO5YQ8EJvX7MdAs/eOLuO5DgBUhHQh8FpSsk95pQQtecYjwUQvGgE9jQ6TUKfhzSLi 63pGDDQeynCrM5MzpAQ8G+qeHxNxMOTirDGY+HqCBE1fhW4YrWnodb8apotWebkbOxth OPEJlJ6eWJYDYEVXLhzHRlYQVjvML3NdSjzwlVAJcPD7yOmaP5WBJ38V+pf32CSaWglB ewthg8l+lJyiMUMJJnSpbbXvCoVXYFHrQ09Jw7ucyWpDg3JNb6zWDnHAwlqIqGjDR5Za IfpUhvGwuzBmRbindkXmnmqMkEfHIbQUenI2z5KqA+8qDTCiaMiBLjUk78EL+ENkL3NG 1jpg== X-Received: by 10.70.135.129 with SMTP id ps1mr4646754pdb.110.1436940074537; Tue, 14 Jul 2015 23:01:14 -0700 (PDT) Received: from ?IPv6:2601:602:8001:6c87:e99c:4913:bdb1:f026? ([2601:602:8001:6c87:e99c:4913:bdb1:f026]) by smtp.gmail.com with ESMTPSA id pp6sm3226961pbb.79.2015.07.14.23.01.12 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 14 Jul 2015 23:01:13 -0700 (PDT) Subject: Re: svn commit: r285592 - in head/sys: amd64/conf dev/ixgbe dev/netmap Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Content-Type: multipart/signed; boundary="Apple-Mail=_232DC571-48C2-46B9-A244-83A5FCE154F2"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5 From: Garrett Cooper In-Reply-To: <20150715060004.GQ37597@ivaldir.etoilebsd.net> Date: Tue, 14 Jul 2015 23:01:10 -0700 Cc: Patrick Kelsey , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: <571B60AF-406B-4B88-91D5-925F268A8811@gmail.com> References: <201507150102.t6F122jE050275@svnmir.geo.freebsd.org> <20150715060004.GQ37597@ivaldir.etoilebsd.net> To: Baptiste Daroussin X-Mailer: Apple Mail (2.1878.6) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 06:01:15 -0000 --Apple-Mail=_232DC571-48C2-46B9-A244-83A5FCE154F2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jul 14, 2015, at 23:00, Baptiste Daroussin wrote: > On Wed, Jul 15, 2015 at 01:02:02AM +0000, Patrick Kelsey wrote: >> Author: pkelsey >> Date: Wed Jul 15 01:02:01 2015 >> New Revision: 285592 >> URL: https://svnweb.freebsd.org/changeset/base/285592 >>=20 >> Log: >> Add netmap support for ixgbe SRIOV VFs (that is, to if_ixv). >>=20 >> Differential Revision: https://reviews.freebsd.org/D2923 >> Reviewed by: erj, gnn >> Approved by: jmallett (mentor) >> Sponsored by: Norse Corp, Inc. >>=20 >> Modified: >> head/sys/amd64/conf/GENERIC >> head/sys/dev/ixgbe/if_ix.c >> head/sys/dev/ixgbe/if_ixv.c >> head/sys/dev/ixgbe/ixgbe.h >> head/sys/dev/netmap/ixgbe_netmap.h >>=20 >> Modified: head/sys/amd64/conf/GENERIC >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=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/amd64/conf/GENERIC Wed Jul 15 01:01:17 2015 = (r285591) >> +++ head/sys/amd64/conf/GENERIC Wed Jul 15 01:02:01 2015 = (r285592) >> @@ -362,7 +362,7 @@ device xenpci # Xen = HVM Hypervisor se >> device vmx # VMware VMXNET3 = Ethernet >>=20 >> # Netmap provides direct access to TX/RX rings on supported NICs >> -device netmap # netmap(4) support >> +# device netmap # netmap(4) support >>=20 > Is that intentional? why disabling netmap? It was accidental and has been reverted in r285593. --Apple-Mail=_232DC571-48C2-46B9-A244-83A5FCE154F2 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJVpfcnAAoJEMZr5QU6S73ePosH+wR0lyZLElHMmtlalRJWbucU LJJ47iTqytUh6+rDcir/2LbUrp05Yb65x/0+Y5Yk9KrcxcmxdTp7BB/tK3x6Xhi9 DjNRw2NeKZ/kxvDnQCT4M0ZjPwmSnVeP8vun+ztRnsMXUCl3KzRTZzZWo1kMvWOm guUQloyMFcimdf8XfmL/W3sCOX1uxUjmYhSBLLC83o7+18Q45r1+nIf+AmgxhNxC fWI1c+/zjWmAJFP51VOI6JSVrvH1ocNooumFe621Mc3TcLUwERMD3BOmikCXKtQJ Gp6ZC9VgtHB6bY5quL/mrUPQQmoA4vt2DPg0aui9PI1517AG7biPv/B/Y6slikI= =npAh -----END PGP SIGNATURE----- --Apple-Mail=_232DC571-48C2-46B9-A244-83A5FCE154F2-- From owner-svn-src-head@freebsd.org Wed Jul 15 06:14:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 003409A22C0; Wed, 15 Jul 2015 06:14:06 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E466E115E; Wed, 15 Jul 2015 06:14:05 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F6E5i0092578; Wed, 15 Jul 2015 06:14:05 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F6E5rn092577; Wed, 15 Jul 2015 06:14:05 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507150614.t6F6E5rn092577@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Wed, 15 Jul 2015 06:14:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285595 - head/usr.bin/ministat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 06:14:06 -0000 Author: jmg Date: Wed Jul 15 06:14:04 2015 New Revision: 285595 URL: https://svnweb.freebsd.org/changeset/base/285595 Log: fix error message... errx since errno may not be set (if we didn't parse the full field), and err and errx add their own newline at the end... Sponsored by: Netflix, Inc. Modified: head/usr.bin/ministat/ministat.c Modified: head/usr.bin/ministat/ministat.c ============================================================================== --- head/usr.bin/ministat/ministat.c Wed Jul 15 02:23:55 2015 (r285594) +++ head/usr.bin/ministat/ministat.c Wed Jul 15 06:14:04 2015 (r285595) @@ -487,7 +487,7 @@ ReadSet(const char *n, int column, const d = strtod(t, &p); if (p != NULL && *p != '\0') - err(2, "Invalid data on line %d in %s\n", line, n); + errx(2, "Invalid data on line %d in %s", line, n); if (*buf != '\0') AddPoint(s, d); } From owner-svn-src-head@freebsd.org Wed Jul 15 07:32:20 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3F409A21B5; Wed, 15 Jul 2015 07:32:20 +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 7A4AB1BFA; Wed, 15 Jul 2015 07:32:20 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (ppp121-45-240-47.lns20.per4.internode.on.net [121.45.240.47]) (authenticated bits=0) by vps1.elischer.org (8.14.9/8.14.9) with ESMTP id t6F7WDKk079032 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 15 Jul 2015 00:32:16 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <55A60C78.7050808@freebsd.org> Date: Wed, 15 Jul 2015 15:32:08 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: d@delphij.net, Ian Lepore CC: Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> <55A5A30F.4070005@delphij.net> In-Reply-To: <55A5A30F.4070005@delphij.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 07:32:20 -0000 On 7/15/15 8:02 AM, Xin Li wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 07/14/15 15:17, Ian Lepore wrote: >> On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote: >>> On 07/14/15 13:29, Garrett Cooper wrote: >>>> On Jul 14, 2015, at 12:16, Baptiste Daroussin >>>> wrote: >>>> >>>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: >>>>> 285552 URL: https://svnweb.freebsd.org/changeset/base/285552 >>>>> >>>>> Log: Convert atoi(3) to stronum(3) which allows to arguments >>>>> and report proper errors to the users >>>> Is strtonum preferred over strtoll, etc? >>> strtonum(3) is a wrapper of strtoll() and provides more >>> functionality like range checking, so I think the answer would be >>> yes. >>> >>> Cheers, >>> >> Except if we convert all our tools that take numbers on the command >> line to use strtonum() then peoples' existing scripts and other >> automation that passes 0xWhatever numbers suddenly stop working. >> strtonum() seems to be about 2/3 of a good idea. > I think the caller has to be calling with 0 or 16 as base to request > that behavior? If we are converting from atoi, the base number is a > fixed value of 10. > > My only concern with strtonum() is that it's English only. does it cover 0100 and 0x100? From owner-svn-src-head@freebsd.org Wed Jul 15 08:01:21 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 965EF9A292C; Wed, 15 Jul 2015 08:01:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 04B281EC5; Wed, 15 Jul 2015 08:01:20 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 0118C427D4A; Wed, 15 Jul 2015 18:01:13 +1000 (AEST) Date: Wed, 15 Jul 2015 18:01:12 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore cc: d@delphij.net, Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285552 - head/usr.bin/xargs In-Reply-To: <1436912270.1334.309.camel@freebsd.org> Message-ID: <20150715152233.S934@besplex.bde.org> References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=ItbjC+Lg c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=I-3w-4To1FASnUU9HwgA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 08:01:21 -0000 On Tue, 14 Jul 2015, Ian Lepore wrote: > On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote: >> On 07/14/15 13:29, Garrett Cooper wrote: >>> On Jul 14, 2015, at 12:16, Baptiste Daroussin >>> wrote: >>> >>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision: 285552 >>>> URL: https://svnweb.freebsd.org/changeset/base/285552 >>>> >>>> Log: Convert atoi(3) to stronum(3) which allows to arguments and >>>> report proper errors to the users >>> >>> Is strtonum preferred over strtoll, etc? No, but it is better than atoi() and expand_number() (except it uses the long long abomination, like strtoll()). >> strtonum(3) is a wrapper of strtoll() and provides more functionality >> like range checking, so I think the answer would be yes. It intentionally provides less functionality except for the range checking, so as to try to be easier to use. > Except if we convert all our tools that take numbers on the command line > to use strtonum() then peoples' existing scripts and other automation > that passes 0xWhatever numbers suddenly stop working. strtonum() seems > to be about 2/3 of a good idea. 1/3 io a good idea. Bugs in it start with its name: - it uses the reserved namespace - it uses up a good name for a bad API Bugs in its API include too much weakening of strtol(), etc: - no support for bases other than 10. This is the most annoying one. With the strtol() family, you get this support automatically by not forcing base 10. Changing the type requires using another member of the strtol() family. That is still possible with strtonum() by just not using it in complicated cases. - no support for unsigned numbers - no support for a mixture of signed and unsigned numbers (with e.g. a signed lower limit and an unsigned upper limit). This can be built out of strtoul() but is complicated. Applications like dd need this. - no support for floating point. Most numbers can be represented using floating point, support for floating point is not wanted for an atoi() replacement, and extra args to specify the format are also not wanted. - no support even for large signed numbers. The API hasn't caught up with C99 yet. It uses the long long abomination instead of intmax_t. This is the most annoying design error. With the strtol() family, you get intmax_t support automatically by using strtoimax() for everything, However, error handling is slightly more complicated with the general type. BTW, it is unclear if POSIX even allows non-decimal or large args in utilities, even in ones like dd where natural arg values are multiples of powers of 2. Portable shell scripts certainly shouldn't use large non-decimal args. This is a bug in POSIX. Other bugs in its API include it being quite complicated to use despite one of its reasons for existence being to be easier to use than the strtol() family. A drop-in replacement for atoi() would probably be named xatoi() and do the same as atoi() except print a message and exit on error. (The behaviour of atoi() on error is only undefined in some cases, so atoi() cannot exit on all errors.) The message for this cannot be context-specific, so xatoi() can't handle errors as well as a program that actually checks for errors from atoi(). (The value of errno after an error is unspecified, so checking it is nonsense, but the nonsense usually works.) strtonum()'s unease of use starts with the existence of its errstr parameter. This parameter is a bit like strtol()'s endptr parameter. Often you don't need this parameter and have to fill it in with NULL or a dummy pointer. Actually using it requires further complications. Unease of use continues with strtonum() having the same problem as xatoi() with generating a context-specific errror messages. strtonum() can and does only return an error string that depends only on the error type. This string is quite short (shorter than ones returned by strerror()). strtonum() also sets errno. Unfortunately, errno alone is not enough to encode the error type, since the ERANGE errno must be split into 2 types. strtonum() has its errstr to do little more than this splitting. Then to actually use errstr, you have to either accept its error description or parse it to turn it into your context-specific description. The latter would take more code than using strtol() directly. My main idea for a better API is a variadic one where only one parameter other than the string is required: intmax_t strtonum(const char *nptr, const char *flags, ...) where the usual case is simple but the general one is complicated. The simplest case has flags "" and no more args. This might give xatoi(). The next level of complications is to either tell strtonum() the messages that it should print before exiting, or tell it to return an error string or code that is easy to print yourself before existing. It seems difficult to do either of these without large code that would lose most of the advantages of the wrapper. Bruce From owner-svn-src-head@freebsd.org Wed Jul 15 09:14:08 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0052599CA84; Wed, 15 Jul 2015 09:14:08 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 CABC312E7; Wed, 15 Jul 2015 09:14:07 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F9E7UR070052; Wed, 15 Jul 2015 09:14:07 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F9E7dg070051; Wed, 15 Jul 2015 09:14:07 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507150914.t6F9E7dg070051@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Wed, 15 Jul 2015 09:14:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285596 - head/sys/compat/cloudabi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 09:14:08 -0000 Author: ed Date: Wed Jul 15 09:14:06 2015 New Revision: 285596 URL: https://svnweb.freebsd.org/changeset/base/285596 Log: Make posix_fallocate() and posix_fadvise() work. We can map these system calls directly to the FreeBSD counterparts. The other filesystem related system calls will be sent out for review separately, as they are a bit more complex to get right. Modified: head/sys/compat/cloudabi/cloudabi_file.c Modified: head/sys/compat/cloudabi/cloudabi_file.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_file.c Wed Jul 15 06:14:04 2015 (r285595) +++ head/sys/compat/cloudabi/cloudabi_file.c Wed Jul 15 09:14:06 2015 (r285596) @@ -26,15 +26,43 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include + #include +#include int cloudabi_sys_file_advise(struct thread *td, struct cloudabi_sys_file_advise_args *uap) { + int advice; - /* Not implemented. */ - return (ENOSYS); + switch (uap->advice) { + case CLOUDABI_ADVICE_DONTNEED: + advice = POSIX_FADV_DONTNEED; + break; + case CLOUDABI_ADVICE_NOREUSE: + advice = POSIX_FADV_NOREUSE; + break; + case CLOUDABI_ADVICE_NORMAL: + advice = POSIX_FADV_NORMAL; + break; + case CLOUDABI_ADVICE_RANDOM: + advice = POSIX_FADV_RANDOM; + break; + case CLOUDABI_ADVICE_SEQUENTIAL: + advice = POSIX_FADV_SEQUENTIAL; + break; + case CLOUDABI_ADVICE_WILLNEED: + advice = POSIX_FADV_WILLNEED; + break; + default: + return (EINVAL); + } + + return (kern_posix_fadvise(td, uap->fd, uap->offset, uap->len, advice)); } int @@ -42,8 +70,7 @@ cloudabi_sys_file_allocate(struct thread struct cloudabi_sys_file_allocate_args *uap) { - /* Not implemented. */ - return (ENOSYS); + return (kern_posix_fallocate(td, uap->fd, uap->offset, uap->len)); } int From owner-svn-src-head@freebsd.org Wed Jul 15 09:24:46 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C47FB99CFFA; Wed, 15 Jul 2015 09:24:46 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B4EA51B73; Wed, 15 Jul 2015 09:24:46 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6F9OkSg074070; Wed, 15 Jul 2015 09:24:46 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6F9OkZZ074069; Wed, 15 Jul 2015 09:24:46 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507150924.t6F9OkZZ074069@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Wed, 15 Jul 2015 09:24:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285597 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 09:24:46 -0000 Author: zbb Date: Wed Jul 15 09:24:45 2015 New Revision: 285597 URL: https://svnweb.freebsd.org/changeset/base/285597 Log: Add identify_cpu() to ARM64 init_secondary routine Identify current CPU. This is necessary to setup affinity registers and to provide support for runtime chip identification. Reviewed by: andrew Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3095 Modified: head/sys/arm64/arm64/mp_machdep.c Modified: head/sys/arm64/arm64/mp_machdep.c ============================================================================== --- head/sys/arm64/arm64/mp_machdep.c Wed Jul 15 09:14:06 2015 (r285596) +++ head/sys/arm64/arm64/mp_machdep.c Wed Jul 15 09:24:45 2015 (r285597) @@ -229,6 +229,13 @@ init_secondary(uint64_t cpu) pcpup->pc_curthread = pcpup->pc_idlethread; pcpup->pc_curpcb = pcpup->pc_idlethread->td_pcb; + /* + * Identify current CPU. This is necessary to setup + * affinity registers and to provide support for + * runtime chip identification. + */ + identify_cpu(); + /* Configure the interrupt controller */ arm_init_secondary(); From owner-svn-src-head@freebsd.org Wed Jul 15 09:29:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 13D6F9A1096; Wed, 15 Jul 2015 09:29:06 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id CE2BA1EA5; Wed, 15 Jul 2015 09:29:05 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from user-109-13.vpn.cl.cam.ac.uk (user-109-13.vpn.cl.cam.ac.uk [128.232.109.13]) (authenticated bits=0) by theravensnest.org (8.15.1/8.15.1) with ESMTPSA id t6F9SoY9041785 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 15 Jul 2015 09:28:51 GMT (envelope-from theraven@FreeBSD.org) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: svn commit: r285552 - head/usr.bin/xargs From: David Chisnall In-Reply-To: <55A5A30F.4070005@delphij.net> Date: Wed, 15 Jul 2015 10:29:22 +0100 Cc: Ian Lepore , Garrett Cooper , Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> <55A5A30F.4070005@delphij.net> To: d@delphij.net X-Mailer: Apple Mail (2.2098) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 09:29:06 -0000 On 15 Jul 2015, at 01:02, Xin Li wrote: >=20 > My only concern with strtonum() is that it's English only. Given that strtonum() wraps strtoll, it ought to support whatever the = current locale is (assuming that the program calls setlocale() before = calling strtonum(), otherwise it will use the C locale[1]). Or do you = mean that the error messages are not localised? David [1] I would strongly advise against calling strtonum() or strtoll(), = rather than strtoll_l() from a library, as it is impossible to specify = in a potentially multi-threaded context whether you=92re currently using = a human-friendly or a machine-friendly number representation. In a = single-threaded application, it=92s probably fine as long as *all* of = your number parsing is either from a user or from a machine-parsable = file (and all of your output is similar, or you=92re explicitly setting = the locale before each call). Given that strtonum() is non-standard = anyway, we should probably add a strtonum_l() that takes a locale_t and = a number base.= From owner-svn-src-head@freebsd.org Wed Jul 15 11:27:36 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F4629A2614; Wed, 15 Jul 2015 11:27:36 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0BDC91298; Wed, 15 Jul 2015 11:27:36 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FBRZ0o022273; Wed, 15 Jul 2015 11:27:35 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FBRZHe022272; Wed, 15 Jul 2015 11:27:35 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507151127.t6FBRZHe022272@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Wed, 15 Jul 2015 11:27:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285598 - head/sys/compat/cloudabi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 11:27:36 -0000 Author: ed Date: Wed Jul 15 11:27:34 2015 New Revision: 285598 URL: https://svnweb.freebsd.org/changeset/base/285598 Log: Implement the trivial socket system calls: shutdown() and listen(). Modified: head/sys/compat/cloudabi/cloudabi_sock.c Modified: head/sys/compat/cloudabi/cloudabi_sock.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_sock.c Wed Jul 15 09:24:45 2015 (r285597) +++ head/sys/compat/cloudabi/cloudabi_sock.c Wed Jul 15 11:27:34 2015 (r285598) @@ -26,7 +26,11 @@ #include __FBSDID("$FreeBSD$"); +#include +#include + #include +#include int cloudabi_sys_sock_accept(struct thread *td, @@ -59,18 +63,37 @@ int cloudabi_sys_sock_listen(struct thread *td, struct cloudabi_sys_sock_listen_args *uap) { + struct listen_args listen_args = { + .s = uap->s, + .backlog = uap->backlog, + }; - /* Not implemented. */ - return (ENOSYS); + return (sys_listen(td, &listen_args)); } int cloudabi_sys_sock_shutdown(struct thread *td, struct cloudabi_sys_sock_shutdown_args *uap) { + struct shutdown_args shutdown_args = { + .s = uap->fd, + }; + + switch (uap->how) { + case CLOUDABI_SHUT_RD: + shutdown_args.how = SHUT_RD; + break; + case CLOUDABI_SHUT_WR: + shutdown_args.how = SHUT_WR; + break; + case CLOUDABI_SHUT_RD | CLOUDABI_SHUT_WR: + shutdown_args.how = SHUT_RDWR; + break; + default: + return (EINVAL); + } - /* Not implemented. */ - return (ENOSYS); + return (sys_shutdown(td, &shutdown_args)); } int From owner-svn-src-head@freebsd.org Wed Jul 15 12:04:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E06B89A2355; Wed, 15 Jul 2015 12:04:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 D177B2B0B; Wed, 15 Jul 2015 12:04:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FC4DVn038252; Wed, 15 Jul 2015 12:04:13 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FC4Dsu038250; Wed, 15 Jul 2015 12:04:13 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201507151204.t6FC4Dsu038250@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 15 Jul 2015 12:04:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285600 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 12:04:14 -0000 Author: mav Date: Wed Jul 15 12:04:12 2015 New Revision: 285600 URL: https://svnweb.freebsd.org/changeset/base/285600 Log: MULTI_ID supported does not mean it is used. Modified: head/sys/dev/isp/isp.c head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp.c ============================================================================== --- head/sys/dev/isp/isp.c Wed Jul 15 11:58:30 2015 (r285599) +++ head/sys/dev/isp/isp.c Wed Jul 15 12:04:12 2015 (r285600) @@ -3653,7 +3653,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha * that have the same domain and area code as our own * portid. */ - if (ISP_CAP_MULTI_ID(isp)) { + if (ISP_CAP_MULTI_ID(isp) && isp->isp_nchan > 1) { if ((portid >> 8) == (fcp->isp_portid >> 8)) { isp_prt(isp, ISP_LOG_SANCFG, "Chan %d skip PortID 0x%06x", Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Wed Jul 15 11:58:30 2015 (r285599) +++ head/sys/dev/isp/isp_freebsd.c Wed Jul 15 12:04:12 2015 (r285600) @@ -2533,7 +2533,7 @@ isp_handle_platform_atio7(ispsoftc_t *is * If we can't, we're somewhat in trouble because we can't actually respond w/o that information. * We also, as a matter of course, need to know the WWN of the initiator too. */ - if (ISP_CAP_MULTI_ID(isp)) { + if (ISP_CAP_MULTI_ID(isp) && isp->isp_nchan > 1) { /* * Find the right channel based upon D_ID */ From owner-svn-src-head@freebsd.org Wed Jul 15 13:28:26 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8458F9A14A7; Wed, 15 Jul 2015 13:28:26 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 72B7B1BD3; Wed, 15 Jul 2015 13:28:26 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FDSQoZ071699; Wed, 15 Jul 2015 13:28:26 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FDSQWx071698; Wed, 15 Jul 2015 13:28:26 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201507151328.t6FDSQWx071698@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 15 Jul 2015 13:28:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285601 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 13:28:26 -0000 Author: andrew Date: Wed Jul 15 13:28:25 2015 New Revision: 285601 URL: https://svnweb.freebsd.org/changeset/base/285601 Log: Fix an infinite loop when a node doesn't have an interrupt-parent property. Submitted by: Aleksey Kuleshov Differential Revision: https://reviews.freebsd.org/D3041 Modified: head/sys/dev/ofw/ofw_bus_subr.c Modified: head/sys/dev/ofw/ofw_bus_subr.c ============================================================================== --- head/sys/dev/ofw/ofw_bus_subr.c Wed Jul 15 12:04:12 2015 (r285600) +++ head/sys/dev/ofw/ofw_bus_subr.c Wed Jul 15 13:28:25 2015 (r285601) @@ -445,7 +445,7 @@ ofw_bus_intr_to_rl(device_t dev, phandle if (OF_searchencprop(node, "interrupt-parent", &iparent, sizeof(iparent)) == -1) { for (iparent = node; iparent != 0; - iparent = OF_parent(node)) { + iparent = OF_parent(iparent)) { if (OF_hasprop(iparent, "interrupt-controller")) break; } From owner-svn-src-head@freebsd.org Wed Jul 15 17:14:06 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1EA509A25F6; Wed, 15 Jul 2015 17:14:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 068F31C4A; Wed, 15 Jul 2015 17:14:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FHE5EP067808; Wed, 15 Jul 2015 17:14:05 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FHE5Q4067807; Wed, 15 Jul 2015 17:14:05 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507151714.t6FHE5Q4067807@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 15 Jul 2015 17:14:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285606 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 17:14:06 -0000 Author: kib Date: Wed Jul 15 17:14:05 2015 New Revision: 285606 URL: https://svnweb.freebsd.org/changeset/base/285606 Log: Style. Remove excessive brackets. Compare non-boolean with zero. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_intr.c Modified: head/sys/kern/kern_intr.c ============================================================================== --- head/sys/kern/kern_intr.c Wed Jul 15 16:57:40 2015 (r285605) +++ head/sys/kern/kern_intr.c Wed Jul 15 17:14:05 2015 (r285606) @@ -1346,8 +1346,8 @@ ithread_loop(void *arg) * set again, so we have to check it again. */ thread_lock(td); - if ((atomic_load_acq_int(&ithd->it_need) == 0) && - !(ithd->it_flags & (IT_DEAD | IT_WAIT))) { + if (atomic_load_acq_int(&ithd->it_need) == 0 && + (ithd->it_flags & (IT_DEAD | IT_WAIT)) == 0) { TD_SET_IWAIT(td); ie->ie_count = 0; mi_switch(SW_VOL | SWT_IWAIT, NULL); @@ -1529,8 +1529,8 @@ ithread_loop(void *arg) * set again, so we have to check it again. */ thread_lock(td); - if ((atomic_load_acq_int(&ithd->it_need) == 0) && - !(ithd->it_flags & (IT_DEAD | IT_WAIT))) { + if (atomic_load_acq_int(&ithd->it_need) == 0 && + (ithd->it_flags & (IT_DEAD | IT_WAIT)) == 0) { TD_SET_IWAIT(td); ie->ie_count = 0; mi_switch(SW_VOL | SWT_IWAIT, NULL); From owner-svn-src-head@freebsd.org Wed Jul 15 17:36:36 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65E669A29C1; Wed, 15 Jul 2015 17:36:36 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 4974C1B28; Wed, 15 Jul 2015 17:36:36 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FHaaid076835; Wed, 15 Jul 2015 17:36:36 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FHaaBA076834; Wed, 15 Jul 2015 17:36:36 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507151736.t6FHaaBA076834@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 15 Jul 2015 17:36:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285607 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 17:36:36 -0000 Author: kib Date: Wed Jul 15 17:36:35 2015 New Revision: 285607 URL: https://svnweb.freebsd.org/changeset/base/285607 Log: Reset non-zero it_need indicator to zero atomically with fetching its current value. It is believed that the change is the real fix for the issue which was covered over by the r252683. With the current code, if the interrupt handler sets it_need between read and consequent reset, the update could be lost and ithread_execute_handlers() would not be called in response to the lost update. The r252683 could have hide the issue since at the moment of commit, atomic_load_acq_int() did locked cmpxchg on the variable, which puts the cache line into the exclusive owned state and clears store buffers. Then the immediate store of zero has very high chance of reusing the exclusive state of the cache line and make the load and store sequence operate as atomic swap. For now, add the acq+rel fence immediately after the swap, to not disturb current (but excessive) ordering. Acquire is needed for the ih_need reads after the load, while release does not serve a useful purpose [*]. Reviewed by: alc Noted by: alc [*] Discussed with: bde Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_intr.c Modified: head/sys/kern/kern_intr.c ============================================================================== --- head/sys/kern/kern_intr.c Wed Jul 15 17:14:05 2015 (r285606) +++ head/sys/kern/kern_intr.c Wed Jul 15 17:36:35 2015 (r285607) @@ -1327,14 +1327,13 @@ ithread_loop(void *arg) * we are running, it will set it_need to note that we * should make another pass. */ - while (atomic_load_acq_int(&ithd->it_need) != 0) { + while (atomic_swap_int(&ithd->it_need, 0) != 0) { /* - * This might need a full read and write barrier - * to make sure that this write posts before any - * of the memory or device accesses in the - * handlers. + * This needs a release barrier to make sure + * that this write posts before any of the + * memory or device accesses in the handlers. */ - atomic_store_rel_int(&ithd->it_need, 0); + atomic_thread_fence_acq_rel(); ithread_execute_handlers(p, ie); } WITNESS_WARN(WARN_PANIC, NULL, "suspending ithread"); @@ -1507,14 +1506,13 @@ ithread_loop(void *arg) * we are running, it will set it_need to note that we * should make another pass. */ - while (atomic_load_acq_int(&ithd->it_need) != 0) { + while (atomic_swap_int(&ithd->it_need, 0) != 0) { /* - * This might need a full read and write barrier - * to make sure that this write posts before any - * of the memory or device accesses in the - * handlers. + * This needs a release barrier to make sure + * that this write posts before any of the + * memory or device accesses in the handlers. */ - atomic_store_rel_int(&ithd->it_need, 0); + atomic_thread_fence_acq_rel(); if (priv) priv_ithread_execute_handler(p, ih); else From owner-svn-src-head@freebsd.org Wed Jul 15 18:49:16 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A67549A2AB9; Wed, 15 Jul 2015 18:49:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 968741D7A; Wed, 15 Jul 2015 18:49:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FInGS2011896; Wed, 15 Jul 2015 18:49:16 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FInGBg011895; Wed, 15 Jul 2015 18:49:16 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507151849.t6FInGBg011895@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 15 Jul 2015 18:49:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285610 - head/usr.bin/calendar X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 18:49:16 -0000 Author: bapt Date: Wed Jul 15 18:49:15 2015 New Revision: 285610 URL: https://svnweb.freebsd.org/changeset/base/285610 Log: Fix trimming spaces writing at index -1 if an empty string is passed Submitted by: Gennady Proskurin Modified: head/usr.bin/calendar/io.c Modified: head/usr.bin/calendar/io.c ============================================================================== --- head/usr.bin/calendar/io.c Wed Jul 15 18:18:07 2015 (r285609) +++ head/usr.bin/calendar/io.c Wed Jul 15 18:49:15 2015 (r285610) @@ -87,11 +87,16 @@ static void trimlr(char **buf) { char *walk = *buf; + char *last; while (isspace(*walk)) walk++; - while (isspace(walk[strlen(walk) -1])) - walk[strlen(walk) -1] = '\0'; + if (*walk != '\0') { + last = walk + strlen(walk) - 1; + while (last > walk && isspace(*last)) + last--; + *(last+1) = 0; + } *buf = walk; } From owner-svn-src-head@freebsd.org Wed Jul 15 21:35:10 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62B3B9A320F; Wed, 15 Jul 2015 21:35:10 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 52E961B86; Wed, 15 Jul 2015 21:35:10 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FLZAIp095843; Wed, 15 Jul 2015 21:35:10 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FLZAU4095842; Wed, 15 Jul 2015 21:35:10 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507152135.t6FLZAU4095842@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Wed, 15 Jul 2015 21:35:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285615 - head/sbin/newfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 21:35:10 -0000 Author: jmg Date: Wed Jul 15 21:35:09 2015 New Revision: 285615 URL: https://svnweb.freebsd.org/changeset/base/285615 Log: fix the docs, the number of frags per inode (NFPI) changed in r228794 to 2 from 4, but the man page didn't get updated... other minor changes to make igor happy... MFC after: 3 days Modified: head/sbin/newfs/newfs.8 Modified: head/sbin/newfs/newfs.8 ============================================================================== --- head/sbin/newfs/newfs.8 Wed Jul 15 21:09:38 2015 (r285614) +++ head/sbin/newfs/newfs.8 Wed Jul 15 21:35:09 2015 (r285615) @@ -28,7 +28,7 @@ .\" @(#)newfs.8 8.6 (Berkeley) 5/3/95 .\" $FreeBSD$ .\" -.Dd October 1, 2013 +.Dd July 15, 2015 .Dt NEWFS 8 .Os .Sh NAME @@ -152,7 +152,7 @@ The expected average number of files per .It Fl i Ar bytes Specify the density of inodes in the file system. The default is to create an inode for every -.Pq 4 * Ar frag-size +.Pq 2 * Ar frag-size bytes of data space. If fewer inodes are desired, a larger number should be used; to create more inodes a smaller number should be given. @@ -173,7 +173,7 @@ Clustering the metadata blocks speeds up and decreases the running time of .Xr fsck 8 . By default -.Xr newfs 8 +.Nm sets it to half of the space reserved to minfree. .It Fl l Enable multilabel MAC on the new file system. @@ -228,7 +228,7 @@ for more details on how to set this opti The partition name (a..h) you want to use in case the underlying image is a file, so you do not have access to individual partitions through the filesystem. -Can also be used with a device, e.g. +Can also be used with a device, e.g., .Nm .Fl p Ar f .Ar /dev/da1s3 From owner-svn-src-head@freebsd.org Wed Jul 15 21:44:17 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A217C9A33C5; Wed, 15 Jul 2015 21:44:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9093C1F97; Wed, 15 Jul 2015 21:44:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svnmir.geo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6FLiHeh000546; Wed, 15 Jul 2015 21:44:17 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svnmir.geo.freebsd.org (8.14.9/8.14.9/Submit) id t6FLiHVS000545; Wed, 15 Jul 2015 21:44:17 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507152144.t6FLiHVS000545@svnmir.geo.freebsd.org> X-Authentication-Warning: svnmir.geo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 15 Jul 2015 21:44:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285616 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 21:44:17 -0000 Author: kib Date: Wed Jul 15 21:44:16 2015 New Revision: 285616 URL: https://svnweb.freebsd.org/changeset/base/285616 Log: Do not use atomic_swap_int(9), it is not available on all architectures. Atomic_cmpset_int(9) is a direct replacement, due to loop. The change fixes arm, arm64, mips an sparc64, which lack atomic_swap(). Suggested and reviewed by: alc Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_intr.c Modified: head/sys/kern/kern_intr.c ============================================================================== --- head/sys/kern/kern_intr.c Wed Jul 15 21:35:09 2015 (r285615) +++ head/sys/kern/kern_intr.c Wed Jul 15 21:44:16 2015 (r285616) @@ -1327,7 +1327,7 @@ ithread_loop(void *arg) * we are running, it will set it_need to note that we * should make another pass. */ - while (atomic_swap_int(&ithd->it_need, 0) != 0) { + while (atomic_cmpset_int(&ithd->it_need, 1, 0) != 0) { /* * This needs a release barrier to make sure * that this write posts before any of the @@ -1506,7 +1506,7 @@ ithread_loop(void *arg) * we are running, it will set it_need to note that we * should make another pass. */ - while (atomic_swap_int(&ithd->it_need, 0) != 0) { + while (atomic_cmpset_int(&ithd->it_need, 1, 0) != 0) { /* * This needs a release barrier to make sure * that this write posts before any of the From owner-svn-src-head@freebsd.org Wed Jul 15 22:43:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A69C9A3A79; Wed, 15 Jul 2015 22:43:58 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ie0-x22e.google.com (mail-ie0-x22e.google.com [IPv6:2607:f8b0:4001:c03::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4B3761B0A; Wed, 15 Jul 2015 22:43:58 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by iebmu5 with SMTP id mu5so44042250ieb.1; Wed, 15 Jul 2015 15:43:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=7vH0YYfC4KTeGdFC+Sz+yKyx7B12gDnfkmOiwGd6VMM=; b=R2FpbxfGSR4OZf5pQeve4G+gppBBt6l4ie6GIdr0kskSHpgovzGwEjKWW1PWhvYkFL HaiRzm1WcbwjIM4WdkgqRombH6q9p7rotunKA3DUy8DvUxov8J721sNUrKoWEAMHlc/G NNj00aSpdNgMGGQST3hUIt0qXGMXZK5ZJXF8mbx0BhhMftzgPMDnkrmveYb8rzinHuGD In1MchCzwSeMwkiNZoAN9fjEcX1lHj5nWFuV1Hcn6iolKv1uvqNdkw443A2lhDZIktw2 3ENr9gzGMT26n/Lkij93ExzVtXrzP0Ae6a+LCfN12bvJfgpvgTx1BwJ5ZuO/tnRFVRK9 JTXQ== MIME-Version: 1.0 X-Received: by 10.50.64.179 with SMTP id p19mr527193igs.46.1437000237574; Wed, 15 Jul 2015 15:43:57 -0700 (PDT) Received: by 10.36.38.133 with HTTP; Wed, 15 Jul 2015 15:43:57 -0700 (PDT) In-Reply-To: <201506301700.t5UH0jPq001498@svn.freebsd.org> References: <201506301700.t5UH0jPq001498@svn.freebsd.org> Date: Wed, 15 Jul 2015 15:43:57 -0700 Message-ID: Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... From: Adrian Chadd To: Mark Murray Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 22:43:58 -0000 On 30 June 2015 at 10:00, Mark Murray wrote: > Author: markm > Date: Tue Jun 30 17:00:45 2015 > New Revision: 284959 > URL: https://svnweb.freebsd.org/changeset/base/284959 > - Add harvesting of FFS atime events. This needs to be checked for > weighing down the FS code. > - Add harvesting of slab allocator events. This needs to be checked for > weighing down the allocator code. Hi, Is this really doing it upon every one of those events? eg, for each mbuf alloc through UMA? -adrian From owner-svn-src-head@freebsd.org Thu Jul 16 02:08:55 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D39E39A36B1; Thu, 16 Jul 2015 02:08:55 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 BF24118ED; Thu, 16 Jul 2015 02:08:55 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G28te8015396; Thu, 16 Jul 2015 02:08:55 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G28ttZ015395; Thu, 16 Jul 2015 02:08:55 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201507160208.t6G28ttZ015395@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Thu, 16 Jul 2015 02:08:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285617 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 02:08:55 -0000 Author: ache Date: Thu Jul 16 02:08:54 2015 New Revision: 285617 URL: https://svnweb.freebsd.org/changeset/base/285617 Log: Comment out usr/sbin/mailwrapper removal because for no mailwrapper case we have: /usr/sbin/sendmail -> /usr/sbin/mailwrapper /usr/sbin/mailwrapper -> /usr/libexec/sendmail/sendmail Add comment explaining it. Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Wed Jul 15 21:44:16 2015 (r285616) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Jul 16 02:08:54 2015 (r285617) @@ -5122,7 +5122,10 @@ OLD_FILES+=usr/share/misc/mail.tildehelp .if ${MK_MAILWRAPPER} == no OLD_FILES+=etc/mail/mailer.conf -OLD_FILES+=usr/sbin/mailwrapper +# Don't remove, for no mailwrapper case: +# /usr/sbin/sendmail -> /usr/sbin/mailwrapper +# /usr/sbin/mailwrapper -> /usr/libexec/sendmail/sendmail +#OLD_FILES+=usr/sbin/mailwrapper OLD_FILES+=usr/share/man/man8/mailwrapper.8.gz .endif From owner-svn-src-head@freebsd.org Thu Jul 16 02:34:24 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10C5A9A3B31; Thu, 16 Jul 2015 02:34:24 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E8A97163E; Thu, 16 Jul 2015 02:34:23 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G2YNSZ027353; Thu, 16 Jul 2015 02:34:23 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G2YN25027352; Thu, 16 Jul 2015 02:34:23 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201507160234.t6G2YN25027352@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 16 Jul 2015 02:34:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285618 - head/usr.sbin/ypbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 02:34:24 -0000 Author: araujo (ports committer) Date: Thu Jul 16 02:34:22 2015 New Revision: 285618 URL: https://svnweb.freebsd.org/changeset/base/285618 Log: Fix a warning spotted by gcc4.9: dereferencing type-punned pointer will break strict-aliasing rules. Declare some variables as statics as well as some functions that are internal helpers. Update the function broadcast_result() to a post-K&R definition. Differential Revision: D2690 Reviewed by: rodrigc, dim Modified: head/usr.sbin/ypbind/ypbind.c Modified: head/usr.sbin/ypbind/ypbind.c ============================================================================== --- head/usr.sbin/ypbind/ypbind.c Thu Jul 16 02:08:54 2015 (r285617) +++ head/usr.sbin/ypbind/ypbind.c Thu Jul 16 02:34:22 2015 (r285618) @@ -106,16 +106,16 @@ void terminate(int); void yp_restricted_mode(char *); int verify(struct in_addr); -char *domain_name; -struct _dom_binding *ypbindlist; +static char *domain_name; +static struct _dom_binding *ypbindlist; static struct _dom_binding *broad_domain; #define YPSET_NO 0 #define YPSET_LOCAL 1 #define YPSET_ALL 2 -int ypsetmode = YPSET_NO; -int ypsecuremode = 0; -int ppid; +static int ypsetmode = YPSET_NO; +static int ypsecuremode = 0; +static int ppid; #define NOT_RESPONDING_HYSTERESIS 10 static int not_responding_count = 0; @@ -126,9 +126,9 @@ static int not_responding_count = 0; * in restricted_addrs will be used for binding. */ #define RESTRICTED_SERVERS 10 -int yp_restricted = 0; -int yp_manycast = 0; -struct in_addr restricted_addrs[RESTRICTED_SERVERS]; +static int yp_restricted = 0; +static int yp_manycast = 0; +static struct in_addr restricted_addrs[RESTRICTED_SERVERS]; /* No more than MAX_CHILDREN child broadcasters at a time. */ #ifndef MAX_CHILDREN @@ -148,13 +148,13 @@ struct in_addr restricted_addrs[RESTRICT #define MAX_RETRIES 30 #endif -int retries = 0; -int children = 0; -int domains = 0; -int yplockfd; -fd_set fdsr; +static int retries = 0; +static int children = 0; +static int domains = 0; +static int yplockfd; +static fd_set fdsr; -SVCXPRT *udptransp, *tcptransp; +static SVCXPRT *udptransp, *tcptransp; void * ypbindproc_null_2_yp(SVCXPRT *transp, void *argp, CLIENT *clnt) @@ -165,7 +165,7 @@ ypbindproc_null_2_yp(SVCXPRT *transp, vo return &res; } -struct ypbind_resp * +static struct ypbind_resp * ypbindproc_domain_2_yp(SVCXPRT *transp, domainname *argp, CLIENT *clnt) { static struct ypbind_resp res; @@ -225,10 +225,10 @@ rejecting.", *argp); res.ypbind_status = YPBIND_SUCC_VAL; res.ypbind_resp_u.ypbind_error = 0; /* Success */ - *(u_int32_t *)&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr = - ypdb->dom_server_addr.sin_addr.s_addr; - *(u_short *)&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port = - ypdb->dom_server_addr.sin_port; + memcpy(&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr, + &ypdb->dom_server_addr.sin_addr.s_addr, sizeof(u_int32_t)); + memcpy(&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port, + &ypdb->dom_server_addr.sin_port, sizeof(u_short)); /*printf("domain %s at %s/%d\n", ypdb->dom_domain, inet_ntoa(ypdb->dom_server_addr.sin_addr), ntohs(ypdb->dom_server_addr.sin_port));*/ @@ -275,8 +275,12 @@ rejecting.", argp->ypsetdom_domain); bzero(&bindsin, sizeof bindsin); bindsin.sin_family = AF_INET; - bindsin.sin_addr.s_addr = *(u_int32_t *)argp->ypsetdom_binding.ypbind_binding_addr; - bindsin.sin_port = *(u_short *)argp->ypsetdom_binding.ypbind_binding_port; + memcpy(&bindsin.sin_addr.s_addr, + &argp->ypsetdom_binding.ypbind_binding_addr, + sizeof(u_int32_t)); + memcpy(&bindsin.sin_port, + &argp->ypsetdom_binding.ypbind_binding_port, + sizeof(u_short)); rpc_received(argp->ypsetdom_domain, &bindsin, 1); return((void *) &result); @@ -615,9 +619,8 @@ tell_parent(char *dom, struct sockaddr_i return (0); } -bool_t broadcast_result(out, addr) -bool_t *out; -struct sockaddr_in *addr; +static bool_t +broadcast_result(bool_t *out, struct sockaddr_in *addr) { if (retries >= MAX_RETRIES) { bzero(addr, sizeof(struct sockaddr_in)); @@ -945,8 +948,10 @@ rpc_received(char *dom, struct sockaddr_ bzero(&ybr, sizeof ybr); ybr.ypbind_status = YPBIND_SUCC_VAL; - *(u_int32_t *)&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr = raddrp->sin_addr.s_addr; - *(u_short *)&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port = raddrp->sin_port; + memcpy(&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr, + &raddrp->sin_addr.s_addr, sizeof(u_int32_t)); + memcpy(&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port, + &raddrp->sin_port, sizeof(u_short)); if (writev(ypdb->dom_lockfd, iov, 2) != iov[0].iov_len + iov[1].iov_len) { syslog(LOG_WARNING, "write: %m"); From owner-svn-src-head@freebsd.org Thu Jul 16 04:15:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B2969A326F; Thu, 16 Jul 2015 04:15:23 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 61E8911C5; Thu, 16 Jul 2015 04:15:23 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G4FNYg069331; Thu, 16 Jul 2015 04:15:23 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G4FN8r069330; Thu, 16 Jul 2015 04:15:23 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201507160415.t6G4FN8r069330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Thu, 16 Jul 2015 04:15:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285619 - head/sys/dev/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 04:15:23 -0000 Author: neel Date: Thu Jul 16 04:15:22 2015 New Revision: 285619 URL: https://svnweb.freebsd.org/changeset/base/285619 Log: If uart interrupts are not functioning then schedule the callout to do the polling at device attach time [1]. Add tunables 'debug.uart_force_poll' and 'debug.uart_poll_freq' to control uart polling. Submitted by: Aleksey Kuleshov (rndfax@yandex.ru) [1] Modified: head/sys/dev/uart/uart_core.c Modified: head/sys/dev/uart/uart_core.c ============================================================================== --- head/sys/dev/uart/uart_core.c Thu Jul 16 02:34:22 2015 (r285618) +++ head/sys/dev/uart/uart_core.c Thu Jul 16 04:15:22 2015 (r285619) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -62,7 +63,12 @@ static MALLOC_DEFINE(M_UART, "UART", "UA #define UART_POLL_FREQ 50 #endif static int uart_poll_freq = UART_POLL_FREQ; -TUNABLE_INT("debug.uart_poll_freq", &uart_poll_freq); +SYSCTL_INT(_debug, OID_AUTO, uart_poll_freq, CTLFLAG_RDTUN, &uart_poll_freq, + 0, "UART poll frequency"); + +static int uart_force_poll; +SYSCTL_INT(_debug, OID_AUTO, uart_force_poll, CTLFLAG_RDTUN, &uart_force_poll, + 0, "Force UART polling"); void uart_add_sysdev(struct uart_devinfo *di) @@ -514,7 +520,7 @@ uart_bus_attach(device_t dev) * conditions. We may have broken H/W and polling is probably the * safest thing to do. */ - if (filt != FILTER_SCHEDULE_THREAD) { + if (filt != FILTER_SCHEDULE_THREAD && !uart_force_poll) { sc->sc_irid = 0; sc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->sc_irid, RF_ACTIVE | RF_SHAREABLE); @@ -540,6 +546,8 @@ uart_bus_attach(device_t dev) /* No interrupt resource. Force polled mode. */ sc->sc_polled = 1; callout_init(&sc->sc_timer, 1); + callout_reset(&sc->sc_timer, hz / uart_poll_freq, + (timeout_t *)uart_intr, sc); } if (bootverbose && (sc->sc_fastintr || sc->sc_polled)) { From owner-svn-src-head@freebsd.org Thu Jul 16 05:13:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04F509A3C00; Thu, 16 Jul 2015 05:13:09 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E92471606; Thu, 16 Jul 2015 05:13:08 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G5D8uM093356; Thu, 16 Jul 2015 05:13:08 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G5D8iZ093355; Thu, 16 Jul 2015 05:13:08 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201507160513.t6G5D8iZ093355@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 16 Jul 2015 05:13:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285620 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 05:13:09 -0000 Author: jhibbits Date: Thu Jul 16 05:13:08 2015 New Revision: 285620 URL: https://svnweb.freebsd.org/changeset/base/285620 Log: Fix userland program exception handling for powerpc64. It appears that the linker will not handle 64-bit relocations at addresses that are not aligned to 8-byte boundaries. Prior to this change the line: .llong generictrap was aligned to a 4-byte address, and the linker replaced that with an 8-byte 0x0. Aligning that address to 8 bytes caused the linker to generate the proper relocation. As a follow-through, the dblow from trap_subr33.S used the code sequence 'lwz %r1, TRAP_GENTRAP(0)', so this reproduces the analogue of that for 64-bit. Modified: head/sys/powerpc/aim/trap_subr64.S Modified: head/sys/powerpc/aim/trap_subr64.S ============================================================================== --- head/sys/powerpc/aim/trap_subr64.S Thu Jul 16 04:15:22 2015 (r285619) +++ head/sys/powerpc/aim/trap_subr64.S Thu Jul 16 05:13:08 2015 (r285620) @@ -842,11 +842,7 @@ CNAME(dblow): mflr %r1 /* save LR */ mtsprg2 %r1 /* And then in SPRG2 */ - nop /* Begin branching to generictrap */ - bl 9f - .llong generictrap -9: mflr %r1 - ld %r1,0(%r1) + ld %r1, TRAP_GENTRAP(0) /* Get branch address */ mtlr %r1 li %r1, 0 /* How to get the vector from LR */ blrl /* Branch to generictrap */ From owner-svn-src-head@freebsd.org Thu Jul 16 05:14:21 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2D519A3C46; Thu, 16 Jul 2015 05:14:21 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A387518D9; Thu, 16 Jul 2015 05:14:21 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G5ELi2093443; Thu, 16 Jul 2015 05:14:21 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G5ELpb093442; Thu, 16 Jul 2015 05:14:21 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201507160514.t6G5ELpb093442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 16 Jul 2015 05:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285621 - head/usr.sbin/devctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 05:14:21 -0000 Author: jhibbits Date: Thu Jul 16 05:14:20 2015 New Revision: 285621 URL: https://svnweb.freebsd.org/changeset/base/285621 Log: Fix formatting. Modified: head/usr.sbin/devctl/devctl.8 Modified: head/usr.sbin/devctl/devctl.8 ============================================================================== --- head/usr.sbin/devctl/devctl.8 Thu Jul 16 05:13:08 2015 (r285620) +++ head/usr.sbin/devctl/devctl.8 Thu Jul 16 05:14:20 2015 (r285621) @@ -109,7 +109,7 @@ loader tunable. .It Cm suspend Ar device Suspend a device. This may include placing the device in a reduced power state. -.It Cm resume device +.It Cm resume Ar device Resume a suspended device to a fully working state. .It Xo Cm set driver .Op Fl f From owner-svn-src-head@freebsd.org Thu Jul 16 05:39:12 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA5CB9A305E; Thu, 16 Jul 2015 05:39:12 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 B22131476; Thu, 16 Jul 2015 05:39:12 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=[192.168.42.192]) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZFbsz-000D8t-0o; Thu, 16 Jul 2015 06:39:09 +0100 References: <201506301700.t5UH0jPq001498@svn.freebsd.org> In-Reply-To: Mime-Version: 1.0 (1.0) Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Message-Id: <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" X-Mailer: iPad Mail (12H143) From: Mark Murray Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... Date: Thu, 16 Jul 2015 06:39:03 +0100 To: Adrian Chadd X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 05:39:13 -0000 > On 15 Jul 2015, at 23:43, Adrian Chadd wrote: > >> - Add harvesting of slab allocator events. This needs to be checked for >> weighing down the allocator code. > > Hi, > > Is this really doing it upon every one of those events? eg, for each > mbuf alloc through UMA? Only if you turn it on! M -- From owner-svn-src-head@freebsd.org Thu Jul 16 07:05:45 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98D449A376C; Thu, 16 Jul 2015 07:05:45 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8841218CE; Thu, 16 Jul 2015 07:05:45 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G75jAU039620; Thu, 16 Jul 2015 07:05:45 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G75h9U039612; Thu, 16 Jul 2015 07:05:43 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507160705.t6G75h9U039612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Thu, 16 Jul 2015 07:05:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285622 - in head/sys: compat/cloudabi kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 07:05:45 -0000 Author: ed Date: Thu Jul 16 07:05:42 2015 New Revision: 285622 URL: https://svnweb.freebsd.org/changeset/base/285622 Log: Implement CloudABI's exec() call. Summary: In a runtime that is purely based on capability-based security, there is a strong emphasis on how programs start their execution. We need to make sure that we execute an new program with an exact set of file descriptors, ensuring that credentials are not leaked into the process accidentally. Providing the right file descriptors is just half the problem. There also needs to be a framework in place that gives meaning to these file descriptors. How does a CloudABI mail server know which of the file descriptors corresponds to the socket that receives incoming emails? Furthermore, how will this mail server acquire its configuration parameters, as it cannot open a configuration file from a global path on disk? CloudABI solves this problem by replacing traditional string command line arguments by tree-like data structure consisting of scalars, sequences and mappings (similar to YAML/JSON). In this structure, file descriptors are treated as a first-class citizen. When calling exec(), file descriptors are passed on to the new executable if and only if they are referenced from this tree structure. See the cloudabi-run(1) man page for more details and examples (sysutils/cloudabi-utils). Fortunately, the kernel does not need to care about this tree structure at all. The C library is responsible for serializing and deserializing, but also for extracting the list of referenced file descriptors. The system call only receives a copy of the serialized data and a layout of what the new file descriptor table should look like: int proc_exec(int execfd, const void *data, size_t datalen, const int *fds, size_t fdslen); This change introduces a set of fd*_remapped() functions: - fdcopy_remapped() pulls a copy of a file descriptor table, remapping all of the file descriptors according to the provided mapping table. - fdinstall_remapped() replaces the file descriptor table of the process by the copy created by fdcopy_remapped(). - fdescfree_remapped() frees the table in case we aborted before fdinstall_remapped(). We then add a function exec_copyin_data_fds() that builds on top these functions. It copies in the data and constructs a new remapped file descriptor. This is used by cloudabi_sys_proc_exec(). Test Plan: cloudabi-run(1) is capable of spawning processes successfully, providing it data and file descriptors. procstat -f seems to confirm all is good. Regular FreeBSD processes also work properly. Reviewers: kib, mjg Reviewed By: mjg Subscribers: imp Differential Revision: https://reviews.freebsd.org/D3079 Modified: head/sys/compat/cloudabi/cloudabi_proc.c head/sys/kern/kern_descrip.c head/sys/kern/kern_exec.c head/sys/sys/filedesc.h head/sys/sys/imgact.h Modified: head/sys/compat/cloudabi/cloudabi_proc.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_proc.c Thu Jul 16 05:14:20 2015 (r285621) +++ head/sys/compat/cloudabi/cloudabi_proc.c Thu Jul 16 07:05:42 2015 (r285622) @@ -27,10 +27,12 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include #include +#include #include @@ -38,9 +40,16 @@ int cloudabi_sys_proc_exec(struct thread *td, struct cloudabi_sys_proc_exec_args *uap) { + struct image_args args; + int error; - /* Not implemented. */ - return (ENOSYS); + error = exec_copyin_data_fds(td, &args, uap->data, uap->datalen, + uap->fds, uap->fdslen); + if (error == 0) { + args.fd = uap->fd; + error = kern_execve(td, &args, NULL); + } + return (error); } int Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Thu Jul 16 05:14:20 2015 (r285621) +++ head/sys/kern/kern_descrip.c Thu Jul 16 07:05:42 2015 (r285622) @@ -1921,6 +1921,14 @@ fdunshare(struct thread *td) p->p_fd = tmp; } +void +fdinstall_remapped(struct thread *td, struct filedesc *fdp) +{ + + fdescfree(td); + td->td_proc->p_fd = fdp; +} + /* * Copy a filedesc structure. A NULL pointer in returns a NULL reference, * this is to ease callers, not catch errors. @@ -1960,6 +1968,65 @@ fdcopy(struct filedesc *fdp) } /* + * Copies a filedesc structure, while remapping all file descriptors + * stored inside using a translation table. + * + * File descriptors are copied over to the new file descriptor table, + * regardless of whether the close-on-exec flag is set. + */ +int +fdcopy_remapped(struct filedesc *fdp, const int *fds, size_t nfds, + struct filedesc **ret) +{ + struct filedesc *newfdp; + struct filedescent *nfde, *ofde; + int error, i; + + MPASS(fdp != NULL); + + newfdp = fdinit(fdp, true); + if (nfds > fdp->fd_lastfile + 1) { + /* New table cannot be larger than the old one. */ + error = E2BIG; + goto bad; + } + /* Copy all passable descriptors (i.e. not kqueue). */ + newfdp->fd_freefile = nfds; + for (i = 0; i < nfds; ++i) { + if (fds[i] < 0 || fds[i] > fdp->fd_lastfile) { + /* File descriptor out of bounds. */ + error = EBADF; + goto bad; + } + ofde = &fdp->fd_ofiles[fds[i]]; + if (ofde->fde_file == NULL) { + /* Unused file descriptor. */ + error = EBADF; + goto bad; + } + if ((ofde->fde_file->f_ops->fo_flags & DFLAG_PASSABLE) == 0) { + /* File descriptor cannot be passed. */ + error = EINVAL; + goto bad; + } + nfde = &newfdp->fd_ofiles[i]; + *nfde = *ofde; + filecaps_copy(&ofde->fde_caps, &nfde->fde_caps); + fhold(nfde->fde_file); + fdused_init(newfdp, i); + newfdp->fd_lastfile = i; + } + newfdp->fd_cmask = fdp->fd_cmask; + FILEDESC_SUNLOCK(fdp); + *ret = newfdp; + return (0); +bad: + FILEDESC_SUNLOCK(fdp); + fdescfree_remapped(newfdp); + return (error); +} + +/* * Clear POSIX style locks. This is only used when fdp looses a reference (i.e. * one of processes using it exits) and the table used to be shared. */ @@ -2114,6 +2181,42 @@ fdescfree(struct thread *td) fddrop(fdp); } +void +fdescfree_remapped(struct filedesc *fdp) +{ + struct filedesc0 *fdp0; + struct filedescent *fde; + struct file *fp; + struct freetable *ft, *tft; + int i; + + for (i = 0; i <= fdp->fd_lastfile; i++) { + fde = &fdp->fd_ofiles[i]; + fp = fde->fde_file; + if (fp != NULL) { + fdefree_last(fde); + (void) closef(fp, NULL); + } + } + + if (NDSLOTS(fdp->fd_nfiles) > NDSLOTS(NDFILE)) + free(fdp->fd_map, M_FILEDESC); + if (fdp->fd_nfiles > NDFILE) + free(fdp->fd_files, M_FILEDESC); + + fdp0 = (struct filedesc0 *)fdp; + SLIST_FOREACH_SAFE(ft, &fdp0->fd_free, ft_next, tft) + free(ft->ft_table, M_FILEDESC); + + if (fdp->fd_cdir != NULL) + vrele(fdp->fd_cdir); + if (fdp->fd_rdir != NULL) + vrele(fdp->fd_rdir); + if (fdp->fd_jdir != NULL) + vrele(fdp->fd_jdir); + fddrop(fdp); +} + /* * For setugid programs, we don't want to people to use that setugidness * to generate error messages which write to a file which otherwise would Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Thu Jul 16 05:14:20 2015 (r285621) +++ head/sys/kern/kern_exec.c Thu Jul 16 07:05:42 2015 (r285622) @@ -580,13 +580,20 @@ interpret: else suword(--stack_base, imgp->args->argc); - /* - * For security and other reasons, the file descriptor table cannot - * be shared after an exec. - */ - fdunshare(td); - /* close files on exec */ - fdcloseexec(td); + if (args->fdp != NULL) { + /* Install a brand new file descriptor table. */ + fdinstall_remapped(td, args->fdp); + args->fdp = NULL; + } else { + /* + * Keep on using the existing file descriptor table. For + * security and other reasons, the file descriptor table + * cannot be shared after an exec. + */ + fdunshare(td); + /* close files on exec */ + fdcloseexec(td); + } /* * Malloc things before we need locks. @@ -1197,6 +1204,71 @@ err_exit: return (error); } +int +exec_copyin_data_fds(struct thread *td, struct image_args *args, + const void *data, size_t datalen, const int *fds, size_t fdslen) +{ + struct filedesc *ofdp; + const char *p; + int *kfds; + int error; + + memset(args, '\0', sizeof(*args)); + ofdp = td->td_proc->p_fd; + if (datalen >= ARG_MAX || fdslen > ofdp->fd_lastfile + 1) + return (E2BIG); + error = exec_alloc_args(args); + if (error != 0) + return (error); + + args->begin_argv = args->buf; + args->stringspace = ARG_MAX; + + if (datalen > 0) { + /* + * Argument buffer has been provided. Copy it into the + * kernel as a single string and add a terminating null + * byte. + */ + error = copyin(data, args->begin_argv, datalen); + if (error != 0) + goto err_exit; + args->begin_argv[datalen] = '\0'; + args->endp = args->begin_argv + datalen + 1; + args->stringspace -= datalen + 1; + + /* + * Traditional argument counting. Count the number of + * null bytes. + */ + for (p = args->begin_argv; p < args->endp; ++p) + if (*p == '\0') + ++args->argc; + } else { + /* No argument buffer provided. */ + args->endp = args->begin_argv; + } + /* There are no environment variables. */ + args->begin_envv = args->endp; + + /* Create new file descriptor table. */ + kfds = malloc(fdslen * sizeof(int), M_TEMP, M_WAITOK); + error = copyin(fds, kfds, fdslen * sizeof(int)); + if (error != 0) { + free(kfds, M_TEMP); + goto err_exit; + } + error = fdcopy_remapped(ofdp, kfds, fdslen, &args->fdp); + free(kfds, M_TEMP); + if (error != 0) + goto err_exit; + + return (0); +err_exit: + exec_free_args(args); + return (error); +} + /* * Allocate temporary demand-paged, zero-filled memory for the file name, * argument, and environment strings. Returns zero if the allocation succeeds @@ -1223,6 +1295,8 @@ exec_free_args(struct image_args *args) free(args->fname_buf, M_TEMP); args->fname_buf = NULL; } + if (args->fdp != NULL) + fdescfree_remapped(args->fdp); } /* Modified: head/sys/sys/filedesc.h ============================================================================== --- head/sys/sys/filedesc.h Thu Jul 16 05:14:20 2015 (r285621) +++ head/sys/sys/filedesc.h Thu Jul 16 07:05:42 2015 (r285622) @@ -170,8 +170,12 @@ void fdclose(struct thread *td, struct f void fdcloseexec(struct thread *td); void fdsetugidsafety(struct thread *td); struct filedesc *fdcopy(struct filedesc *fdp); +int fdcopy_remapped(struct filedesc *fdp, const int *fds, size_t nfds, + struct filedesc **newfdp); +void fdinstall_remapped(struct thread *td, struct filedesc *fdp); void fdunshare(struct thread *td); void fdescfree(struct thread *td); +void fdescfree_remapped(struct filedesc *fdp); struct filedesc *fdinit(struct filedesc *fdp, bool prepfiles); struct filedesc *fdshare(struct filedesc *fdp); struct filedesc_to_leader * Modified: head/sys/sys/imgact.h ============================================================================== --- head/sys/sys/imgact.h Thu Jul 16 05:14:20 2015 (r285621) +++ head/sys/sys/imgact.h Thu Jul 16 07:05:42 2015 (r285622) @@ -49,6 +49,7 @@ struct image_args { int argc; /* count of argument strings */ int envc; /* count of environment strings */ int fd; /* file descriptor of the executable */ + struct filedesc *fdp; /* new file descriptor table */ }; struct image_params { @@ -99,6 +100,8 @@ void exec_setregs(struct thread *, struc int exec_shell_imgact(struct image_params *); int exec_copyin_args(struct image_args *, char *, enum uio_seg, char **, char **); +int exec_copyin_data_fds(struct thread *, struct image_args *, const void *, + size_t, const int *, size_t); int pre_execve(struct thread *td, struct vmspace **oldvmspace); void post_execve(struct thread *td, int error, struct vmspace *oldvmspace); #endif From owner-svn-src-head@freebsd.org Thu Jul 16 08:03:24 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E7A89A335A; Thu, 16 Jul 2015 08:03:24 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 5EFAC188E; Thu, 16 Jul 2015 08:03:24 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6G83OrV063689; Thu, 16 Jul 2015 08:03:24 GMT (envelope-from kevlo@FreeBSD.org) Received: (from kevlo@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6G83O5N063688; Thu, 16 Jul 2015 08:03:24 GMT (envelope-from kevlo@FreeBSD.org) Message-Id: <201507160803.t6G83O5N063688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevlo set sender to kevlo@FreeBSD.org using -f From: Kevin Lo Date: Thu, 16 Jul 2015 08:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285623 - head/sys/dev/e1000 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 08:03:24 -0000 Author: kevlo Date: Thu Jul 16 08:03:23 2015 New Revision: 285623 URL: https://svnweb.freebsd.org/changeset/base/285623 Log: Fix typo in register definition. Submitted by: James Hung Reviewed by: sbruno Modified: head/sys/dev/e1000/e1000_regs.h Modified: head/sys/dev/e1000/e1000_regs.h ============================================================================== --- head/sys/dev/e1000/e1000_regs.h Thu Jul 16 07:05:42 2015 (r285622) +++ head/sys/dev/e1000/e1000_regs.h Thu Jul 16 08:03:23 2015 (r285623) @@ -552,7 +552,7 @@ #define E1000_WVBR 0x03554 /* VM Wrong Behavior - RWS */ #define E1000_RPLOLR 0x05AF0 /* Replication Offload - RW */ #define E1000_UTA 0x0A000 /* Unicast Table Array - RW */ -#define E1000_IOVTCL 0x05BBC /* IOV Control Register */ +#define E1000_IOVCTL 0x05BBC /* IOV Control Register */ #define E1000_VMRCTL 0X05D80 /* Virtual Mirror Rule Control */ #define E1000_VMRVLAN 0x05D90 /* Virtual Mirror Rule VLAN */ #define E1000_VMRVM 0x05DA0 /* Virtual Mirror Rule VM */ From owner-svn-src-head@freebsd.org Thu Jul 16 10:22:59 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BF7A9A308E; Thu, 16 Jul 2015 10:22:59 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 22B1B1ABC; Thu, 16 Jul 2015 10:22:59 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GAMx0A020570; Thu, 16 Jul 2015 10:22:59 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GAMwq4020568; Thu, 16 Jul 2015 10:22:58 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507161022.t6GAMwq4020568@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 16 Jul 2015 10:22:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285626 - in head/sys/arm64: arm64 include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 10:22:59 -0000 Author: zbb Date: Thu Jul 16 10:22:57 2015 New Revision: 285626 URL: https://svnweb.freebsd.org/changeset/base/285626 Log: Set-up proper TCR values for memory related to Translation Table Walking This commit adds proper cache and shareability attributes to the TCR register. Set memory attributes to Normal, outer and inner cacheable WBWA. Set shareability to inner and outer shareable when SMP is enabled. Reviewed by: andrew Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3093 Modified: head/sys/arm64/arm64/locore.S head/sys/arm64/include/armreg.h Modified: head/sys/arm64/arm64/locore.S ============================================================================== --- head/sys/arm64/arm64/locore.S Thu Jul 16 10:12:10 2015 (r285625) +++ head/sys/arm64/arm64/locore.S Thu Jul 16 10:22:57 2015 (r285626) @@ -535,7 +535,8 @@ mair: /* Device Normal, no cache Normal, write-back */ .quad MAIR_ATTR(0x00, 0) | MAIR_ATTR(0x44, 1) | MAIR_ATTR(0xff, 2) tcr: - .quad (TCR_TxSZ(64 - VIRT_BITS) | TCR_ASID_16 | TCR_TG1_4K) + .quad (TCR_TxSZ(64 - VIRT_BITS) | TCR_ASID_16 | TCR_TG1_4K | \ + TCR_CACHE_ATTRS | TCR_SMP_ATTRS) sctlr_set: /* Bits to set */ .quad (SCTLR_UCI | SCTLR_nTWE | SCTLR_nTWI | SCTLR_UCT | SCTLR_DZE | \ Modified: head/sys/arm64/include/armreg.h ============================================================================== --- head/sys/arm64/include/armreg.h Thu Jul 16 10:12:10 2015 (r285625) +++ head/sys/arm64/include/armreg.h Thu Jul 16 10:22:57 2015 (r285626) @@ -200,6 +200,28 @@ #define TCR_TG1_4K (2 << TCR_TG1_SHIFT) #define TCR_TG1_64K (3 << TCR_TG1_SHIFT) +#define TCR_SH1_SHIFT 28 +#define TCR_SH1_IS (0x3UL << TCR_SH1_SHIFT) +#define TCR_ORGN1_SHIFT 26 +#define TCR_ORGN1_WBWA (0x1UL << TCR_ORGN1_SHIFT) +#define TCR_IRGN1_SHIFT 24 +#define TCR_IRGN1_WBWA (0x1UL << TCR_IRGN1_SHIFT) +#define TCR_SH0_SHIFT 12 +#define TCR_SH0_IS (0x3UL << TCR_SH0_SHIFT) +#define TCR_ORGN0_SHIFT 10 +#define TCR_ORGN0_WBWA (0x1UL << TCR_ORGN0_SHIFT) +#define TCR_IRGN0_SHIFT 8 +#define TCR_IRGN0_WBWA (0x1UL << TCR_IRGN0_SHIFT) + +#define TCR_CACHE_ATTRS ((TCR_IRGN0_WBWA | TCR_IRGN1_WBWA) |\ + (TCR_ORGN0_WBWA | TCR_ORGN1_WBWA)) + +#ifdef SMP +#define TCR_SMP_ATTRS (TCR_SH0_IS | TCR_SH1_IS) +#else +#define TCR_SMP_ATTRS 0 +#endif + #define TCR_T1SZ_SHIFT 16 #define TCR_T0SZ_SHIFT 0 #define TCR_TxSZ(x) (((x) << TCR_T1SZ_SHIFT) | ((x) << TCR_T0SZ_SHIFT)) From owner-svn-src-head@freebsd.org Thu Jul 16 10:47:01 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A36D39A34AB; Thu, 16 Jul 2015 10:47:01 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 7F2B814AC; Thu, 16 Jul 2015 10:47:01 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GAl1wb028815; Thu, 16 Jul 2015 10:47:01 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GAkrEt028784; Thu, 16 Jul 2015 10:46:53 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507161046.t6GAkrEt028784@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Thu, 16 Jul 2015 10:46:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285627 - in head/sys: arm/arm arm/at91 arm/cavium/cns11xx arm/samsung/s3c2xx0 arm/xscale/i80321 arm/xscale/i8134x arm/xscale/ixp425 arm/xscale/pxa arm64/arm64 ddb i386/i386 powerpc/boo... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 10:47:01 -0000 Author: zbb Date: Thu Jul 16 10:46:52 2015 New Revision: 285627 URL: https://svnweb.freebsd.org/changeset/base/285627 Log: Fix KSTACK_PAGES issue when the default value was changed in KERNCONF If KSTACK_PAGES was changed to anything alse than the default, the value from param.h was taken instead in some places and the value from KENRCONF in some others. This resulted in inconsistency which caused corruption in SMP envorinment. Ensure all places where KSTACK_PAGES are used the opt_kstack_pages.h is included. The file opt_kstack_pages.h could not be included in param.h because was breaking the toolchain compilation. Reviewed by: kib Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3094 Modified: head/sys/arm/arm/machdep.c head/sys/arm/at91/at91_machdep.c head/sys/arm/cavium/cns11xx/econa_machdep.c head/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c head/sys/arm/xscale/i80321/ep80219_machdep.c head/sys/arm/xscale/i80321/iq31244_machdep.c head/sys/arm/xscale/i8134x/crb_machdep.c head/sys/arm/xscale/ixp425/avila_machdep.c head/sys/arm/xscale/pxa/pxa_machdep.c head/sys/arm64/arm64/locore.S head/sys/arm64/arm64/mp_machdep.c head/sys/arm64/arm64/swtch.S head/sys/ddb/db_ps.c head/sys/ddb/db_sym.c head/sys/i386/i386/locore.s head/sys/powerpc/booke/pmap.c head/sys/sparc64/sparc64/exception.S head/sys/sparc64/sparc64/stack_machdep.c head/sys/sparc64/sparc64/support.S head/sys/x86/xen/pv.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/arm/machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -44,6 +44,7 @@ #include "opt_compat.h" #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include "opt_platform.h" #include "opt_sched.h" #include "opt_timer.h" Modified: head/sys/arm/at91/at91_machdep.c ============================================================================== --- head/sys/arm/at91/at91_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/at91/at91_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -43,6 +43,7 @@ * Created : 17/09/94 */ +#include "opt_kstack_pages.h" #include "opt_platform.h" #include Modified: head/sys/arm/cavium/cns11xx/econa_machdep.c ============================================================================== --- head/sys/arm/cavium/cns11xx/econa_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/cavium/cns11xx/econa_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -38,6 +38,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include Modified: head/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c ============================================================================== --- head/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -44,6 +44,7 @@ */ #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include __FBSDID("$FreeBSD$"); Modified: head/sys/arm/xscale/i80321/ep80219_machdep.c ============================================================================== --- head/sys/arm/xscale/i80321/ep80219_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/xscale/i80321/ep80219_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include Modified: head/sys/arm/xscale/i80321/iq31244_machdep.c ============================================================================== --- head/sys/arm/xscale/i80321/iq31244_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/xscale/i80321/iq31244_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include Modified: head/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- head/sys/arm/xscale/i8134x/crb_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/xscale/i8134x/crb_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include Modified: head/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- head/sys/arm/xscale/ixp425/avila_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/xscale/ixp425/avila_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include Modified: head/sys/arm/xscale/pxa/pxa_machdep.c ============================================================================== --- head/sys/arm/xscale/pxa/pxa_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm/xscale/pxa/pxa_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -46,6 +46,7 @@ */ #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include __FBSDID("$FreeBSD$"); Modified: head/sys/arm64/arm64/locore.S ============================================================================== --- head/sys/arm64/arm64/locore.S Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm64/arm64/locore.S Thu Jul 16 10:46:52 2015 (r285627) @@ -27,6 +27,7 @@ */ #include "assym.s" +#include "opt_kstack_pages.h" #include #include #include @@ -51,8 +52,6 @@ * We are loaded at a 2MiB aligned address */ -#define INIT_STACK_SIZE (PAGE_SIZE * 4) - .text .globl _start _start: Modified: head/sys/arm64/arm64/mp_machdep.c ============================================================================== --- head/sys/arm64/arm64/mp_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm64/arm64/mp_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -28,6 +28,7 @@ * */ +#include "opt_kstack_pages.h" #include "opt_platform.h" #include Modified: head/sys/arm64/arm64/swtch.S ============================================================================== --- head/sys/arm64/arm64/swtch.S Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/arm64/arm64/swtch.S Thu Jul 16 10:46:52 2015 (r285627) @@ -30,6 +30,7 @@ */ #include "assym.s" +#include "opt_kstack_pages.h" #include "opt_sched.h" #include Modified: head/sys/ddb/db_ps.c ============================================================================== --- head/sys/ddb/db_ps.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/ddb/db_ps.c Thu Jul 16 10:46:52 2015 (r285627) @@ -30,6 +30,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include Modified: head/sys/ddb/db_sym.c ============================================================================== --- head/sys/ddb/db_sym.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/ddb/db_sym.c Thu Jul 16 10:46:52 2015 (r285627) @@ -31,6 +31,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include Modified: head/sys/i386/i386/locore.s ============================================================================== --- head/sys/i386/i386/locore.s Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/i386/i386/locore.s Thu Jul 16 10:46:52 2015 (r285627) @@ -41,6 +41,7 @@ #include "opt_bootp.h" #include "opt_compat.h" +#include "opt_kstack_pages.h" #include "opt_nfsroot.h" #include "opt_pmap.h" Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/powerpc/booke/pmap.c Thu Jul 16 10:46:52 2015 (r285627) @@ -51,6 +51,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include Modified: head/sys/sparc64/sparc64/exception.S ============================================================================== --- head/sys/sparc64/sparc64/exception.S Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/sparc64/sparc64/exception.S Thu Jul 16 10:46:52 2015 (r285627) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include #include Modified: head/sys/sparc64/sparc64/stack_machdep.c ============================================================================== --- head/sys/sparc64/sparc64/stack_machdep.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/sparc64/sparc64/stack_machdep.c Thu Jul 16 10:46:52 2015 (r285627) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include Modified: head/sys/sparc64/sparc64/support.S ============================================================================== --- head/sys/sparc64/sparc64/support.S Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/sparc64/sparc64/support.S Thu Jul 16 10:46:52 2015 (r285627) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include Modified: head/sys/x86/xen/pv.c ============================================================================== --- head/sys/x86/xen/pv.c Thu Jul 16 10:22:57 2015 (r285626) +++ head/sys/x86/xen/pv.c Thu Jul 16 10:46:52 2015 (r285627) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include #include From owner-svn-src-head@freebsd.org Thu Jul 16 11:15:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA4479A3891; Thu, 16 Jul 2015 11:15:00 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8F44D1202; Thu, 16 Jul 2015 11:15:00 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GBF0DD041076; Thu, 16 Jul 2015 11:15:00 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GBF0hp041075; Thu, 16 Jul 2015 11:15:00 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <201507161115.t6GBF0hp041075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Thu, 16 Jul 2015 11:15:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285628 - head/sys/dev/ichwd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 11:15:00 -0000 Author: brueffer Date: Thu Jul 16 11:14:59 2015 New Revision: 285628 URL: https://svnweb.freebsd.org/changeset/base/285628 Log: Actually recognize all Intel Lynx Point devices we have device IDs for. PR: 195851 Submitted by: ftigeot@wolfpond.org MFC after: 1 week Modified: head/sys/dev/ichwd/ichwd.c Modified: head/sys/dev/ichwd/ichwd.c ============================================================================== --- head/sys/dev/ichwd/ichwd.c Thu Jul 16 10:46:52 2015 (r285627) +++ head/sys/dev/ichwd/ichwd.c Thu Jul 16 11:14:59 2015 (r285628) @@ -194,6 +194,35 @@ static struct ichwd_device ichwd_devices { DEVICEID_LPT0, "Intel Lynx Point watchdog timer", 10 }, { DEVICEID_LPT1, "Intel Lynx Point watchdog timer", 10 }, { DEVICEID_LPT2, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT3, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT4, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT5, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT6, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT7, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT8, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT9, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT10, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT11, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT12, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT13, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT14, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT15, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT16, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT17, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT18, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT19, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT20, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT21, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT22, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT23, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT24, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT25, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT26, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT27, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT28, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT29, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT30, "Intel Lynx Point watchdog timer", 10 }, + { DEVICEID_LPT31, "Intel Lynx Point watchdog timer", 10 }, { DEVICEID_WCPT2, "Intel Wildcat Point watchdog timer", 10 }, { DEVICEID_WCPT4, "Intel Wildcat Point watchdog timer", 10 }, { DEVICEID_WCPT6, "Intel Wildcat Point watchdog timer", 10 }, From owner-svn-src-head@freebsd.org Thu Jul 16 12:16:43 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45FDC9A2A2B; Thu, 16 Jul 2015 12:16:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 3745514AB; Thu, 16 Jul 2015 12:16:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GCGhk1065905; Thu, 16 Jul 2015 12:16:43 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GCGhID065904; Thu, 16 Jul 2015 12:16:43 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507161216.t6GCGhID065904@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 16 Jul 2015 12:16:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285629 - head/sys/x86/x86 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 12:16:43 -0000 Author: kib Date: Thu Jul 16 12:16:42 2015 New Revision: 285629 URL: https://svnweb.freebsd.org/changeset/base/285629 Log: Fix warnings about unused functions for UP build. Sponsored by: The FreeBSD Foundation Modified: head/sys/x86/x86/local_apic.c Modified: head/sys/x86/x86/local_apic.c ============================================================================== --- head/sys/x86/x86/local_apic.c Thu Jul 16 11:14:59 2015 (r285628) +++ head/sys/x86/x86/local_apic.c Thu Jul 16 12:16:42 2015 (r285629) @@ -204,6 +204,7 @@ lapic_write32_nofence(enum LAPIC_REGISTE } } +#ifdef SMP static uint64_t lapic_read_icr(void) { @@ -241,6 +242,7 @@ lapic_write_icr(uint32_t vhi, uint32_t v lapic_write32(LAPIC_ICR_LO, vlo); } } +#endif /* SMP */ static void native_lapic_enable_x2apic(void) @@ -292,9 +294,6 @@ static int native_lapic_enable_pmc(void static void native_lapic_disable_pmc(void); static void native_lapic_reenable_pmc(void); static void native_lapic_enable_cmc(void); -static void native_lapic_ipi_raw(register_t icrlo, u_int dest); -static void native_lapic_ipi_vectored(u_int vector, int dest); -static int native_lapic_ipi_wait(int delay); static int native_lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked); static int native_lapic_set_lvt_mode(u_int apic_id, u_int lvt, @@ -303,8 +302,13 @@ static int native_lapic_set_lvt_polarit enum intr_polarity pol); static int native_lapic_set_lvt_triggermode(u_int apic_id, u_int lvt, enum intr_trigger trigger); +#ifdef SMP +static void native_lapic_ipi_raw(register_t icrlo, u_int dest); +static void native_lapic_ipi_vectored(u_int vector, int dest); +static int native_lapic_ipi_wait(int delay); static int native_lapic_ipi_alloc(inthand_t *ipifunc); static void native_lapic_ipi_free(int vector); +#endif /* SMP */ struct apic_ops apic_ops = { .create = native_lapic_create, From owner-svn-src-head@freebsd.org Thu Jul 16 13:09:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E26099C5DA; Thu, 16 Jul 2015 13:09:23 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1141C1D1F; Thu, 16 Jul 2015 13:09:23 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GD9Mnd086245; Thu, 16 Jul 2015 13:09:22 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GD9Mu2086243; Thu, 16 Jul 2015 13:09:22 GMT (envelope-from des@FreeBSD.org) Message-Id: <201507161309.t6GD9Mu2086243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Thu, 16 Jul 2015 13:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285630 - head/usr.bin/sockstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 13:09:23 -0000 Author: des Date: Thu Jul 16 13:09:21 2015 New Revision: 285630 URL: https://svnweb.freebsd.org/changeset/base/285630 Log: Add a -s option which adds a column listing the connection state if applicable (currently only for TCP). PR: 201585 MFC after: 3 weeks Modified: head/usr.bin/sockstat/sockstat.1 head/usr.bin/sockstat/sockstat.c Modified: head/usr.bin/sockstat/sockstat.1 ============================================================================== --- head/usr.bin/sockstat/sockstat.1 Thu Jul 16 12:16:42 2015 (r285629) +++ head/usr.bin/sockstat/sockstat.1 Thu Jul 16 13:09:21 2015 (r285630) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 20, 2015 +.Dd July 14, 2015 .Dt SOCKSTAT 1 .Os .Sh NAME @@ -35,7 +35,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46cLlu +.Op Fl 46cLlsu .Op Fl j Ar jid .Op Fl p Ar ports .Op Fl P Ar protocols @@ -83,6 +83,9 @@ The argument is a comma-separated list of protocol names, as they are defined in .Xr protocols 5 . +.It Fl s +Display the protocol state, if applicable. +This is currently only implemented for TCP. .It Fl u Show .Dv AF_LOCAL Modified: head/usr.bin/sockstat/sockstat.c ============================================================================== --- head/usr.bin/sockstat/sockstat.c Thu Jul 16 12:16:42 2015 (r285629) +++ head/usr.bin/sockstat/sockstat.c Thu Jul 16 13:09:21 2015 (r285630) @@ -45,6 +45,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define TCPSTATES /* load state names */ +#include #include #include #include @@ -71,6 +73,7 @@ static int opt_c; /* Show connected so static int opt_j; /* Show specified jail */ static int opt_L; /* Don't show IPv4 or IPv6 loopback sockets */ static int opt_l; /* Show listening sockets */ +static int opt_s; /* Show protocol state if applicable */ static int opt_u; /* Show Unix domain sockets */ static int opt_v; /* Verbose mode */ @@ -101,6 +104,7 @@ struct sock { int vflag; int family; int proto; + int state; const char *protoname; struct addr *laddr; struct addr *faddr; @@ -538,9 +542,9 @@ gather_inet(int proto) const char *varname, *protoname; size_t len, bufsize; void *buf; - int hash, retry, vflag; + int hash, retry, state, vflag; - vflag = 0; + state = vflag = 0; if (opt_4) vflag |= INP_IPV4; if (opt_6) @@ -604,6 +608,7 @@ gather_inet(int proto) inp = &xtp->xt_inp; so = &xtp->xt_socket; protoname = xtp->xt_tp.t_flags & TF_TOE ? "toe" : "tcp"; + state = xtp->xt_tp.t_state; break; case IPPROTO_UDP: case IPPROTO_DIVERT: @@ -670,6 +675,8 @@ gather_inet(int proto) sock->laddr = laddr; sock->faddr = faddr; sock->vflag = inp->inp_vflag; + if (proto == IPPROTO_TCP) + sock->state = xtp->xt_tp.t_state; sock->protoname = protoname; hash = (int)((uintptr_t)sock->socket % HASHSIZE); sock->next = sockhash[hash]; @@ -977,7 +984,14 @@ displaysock(struct sock *s, int pos) pos = 0; } } - xprintf("\n"); + if (opt_s && s->proto == IPPROTO_TCP) { + while (pos < 80) + pos += xprintf(" "); + if (s->state >= 0 && s->state < TCP_NSTATES) + pos += xprintf("%s", tcpstates[s->state]); + else + pos += xprintf("?"); + } } static void @@ -988,9 +1002,12 @@ display(void) struct sock *s; int hash, n, pos; - printf("%-8s %-10s %-5s %-2s %-6s %-21s %-21s\n", + printf("%-8s %-10s %-5s %-2s %-6s %-21s %-21s", "USER", "COMMAND", "PID", "FD", "PROTO", "LOCAL ADDRESS", "FOREIGN ADDRESS"); + if (opt_s) + printf(" %-12s", "STATE"); + printf("\n"); setpassent(1); for (xf = xfiles, n = 0; n < nxfiles; ++n, ++xf) { if (xf->xf_data == NULL) @@ -1019,6 +1036,7 @@ display(void) pos += xprintf(" "); pos += xprintf("%d ", xf->xf_fd); displaysock(s, pos); + xprintf("\n"); } } if (opt_j >= 0) @@ -1033,6 +1051,7 @@ display(void) pos += xprintf("%-8s %-10s %-5s %-2s ", "?", "?", "?", "?"); displaysock(s, pos); + xprintf("\n"); } } } @@ -1061,7 +1080,7 @@ static void usage(void) { fprintf(stderr, - "Usage: sockstat [-46cLlu] [-j jid] [-p ports] [-P protocols]\n"); + "usage: sockstat [-46cLlsu] [-j jid] [-p ports] [-P protocols]\n"); exit(1); } @@ -1072,7 +1091,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46cj:Llp:P:uv")) != -1) + while ((o = getopt(argc, argv, "46cj:Llp:P:suv")) != -1) switch (o) { case '4': opt_4 = 1; @@ -1098,6 +1117,9 @@ main(int argc, char *argv[]) case 'P': protos_defined = parse_protos(optarg); break; + case 's': + opt_s = 1; + break; case 'u': opt_u = 1; break; From owner-svn-src-head@freebsd.org Thu Jul 16 13:33:05 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6123699CAC9; Thu, 16 Jul 2015 13:33:05 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 50DB9196B; Thu, 16 Jul 2015 13:33:05 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GDX5aA098765; Thu, 16 Jul 2015 13:33:05 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GDX4h5098761; Thu, 16 Jul 2015 13:33:04 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201507161333.t6GDX4h5098761@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 16 Jul 2015 13:33:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285631 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 13:33:05 -0000 Author: andrew Date: Thu Jul 16 13:33:03 2015 New Revision: 285631 URL: https://svnweb.freebsd.org/changeset/base/285631 Log: Split out the arm and armv6 parts of atomic.h to new files. While here use __ARM_ARCH to determine which revision of the architecture is applicable. Sponsored by: ABT Systems Ltd Added: head/sys/arm/include/atomic-v4.h - copied, changed from r285531, head/sys/arm/include/atomic.h head/sys/arm/include/atomic-v6.h - copied, changed from r285531, head/sys/arm/include/atomic.h Modified: head/sys/arm/include/atomic.h Copied and modified: head/sys/arm/include/atomic-v4.h (from r285531, head/sys/arm/include/atomic.h) ============================================================================== --- head/sys/arm/include/atomic.h Tue Jul 14 10:49:36 2015 (r285531, copy source) +++ head/sys/arm/include/atomic-v4.h Thu Jul 16 13:33:03 2015 (r285631) @@ -36,659 +36,25 @@ * $FreeBSD$ */ -#ifndef _MACHINE_ATOMIC_H_ -#define _MACHINE_ATOMIC_H_ +#ifndef _MACHINE_ATOMIC_V4_H_ +#define _MACHINE_ATOMIC_V4_H_ -#include -#include - -#ifndef _KERNEL -#include -#else -#include +#ifndef _MACHINE_ATOMIC_H_ +#error Do not include this file directly, use #endif -#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) -#define isb() __asm __volatile("isb" : : : "memory") -#define dsb() __asm __volatile("dsb" : : : "memory") -#define dmb() __asm __volatile("dmb" : : : "memory") -#elif defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) || \ - defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6T2__) || \ - defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) -#define isb() __asm __volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory") -#define dsb() __asm __volatile("mcr p15, 0, %0, c7, c10, 4" : : "r" (0) : "memory") -#define dmb() __asm __volatile("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory") -#else +#if __ARM_ARCH <= 5 #define isb() __asm __volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory") #define dsb() __asm __volatile("mcr p15, 0, %0, c7, c10, 4" : : "r" (0) : "memory") #define dmb() dsb() +#else +#error Only use this file with ARMv5 and earlier #endif #define mb() dmb() #define wmb() dmb() #define rmb() dmb() - - -/* - * It would be nice to use _HAVE_ARMv6_INSTRUCTIONS from machine/asm.h - * here, but that header can't be included here because this is C - * code. I would like to move the _HAVE_ARMv6_INSTRUCTIONS definition - * out of asm.h so it can be used in both asm and C code. - kientzle@ - */ -#if defined (__ARM_ARCH_7__) || \ - defined (__ARM_ARCH_7A__) || \ - defined (__ARM_ARCH_6__) || \ - defined (__ARM_ARCH_6J__) || \ - defined (__ARM_ARCH_6K__) || \ - defined (__ARM_ARCH_6T2__) || \ - defined (__ARM_ARCH_6Z__) || \ - defined (__ARM_ARCH_6ZK__) -#define ARM_HAVE_ATOMIC64 - -static __inline void -__do_dmb(void) -{ - -#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) - __asm __volatile("dmb" : : : "memory"); -#else - __asm __volatile("mcr p15, 0, r0, c7, c10, 5" : : : "memory"); -#endif -} - -#define ATOMIC_ACQ_REL_LONG(NAME) \ -static __inline void \ -atomic_##NAME##_acq_long(__volatile u_long *p, u_long v) \ -{ \ - atomic_##NAME##_long(p, v); \ - __do_dmb(); \ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_long(__volatile u_long *p, u_long v) \ -{ \ - __do_dmb(); \ - atomic_##NAME##_long(p, v); \ -} - -#define ATOMIC_ACQ_REL(NAME, WIDTH) \ -static __inline void \ -atomic_##NAME##_acq_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\ -{ \ - atomic_##NAME##_##WIDTH(p, v); \ - __do_dmb(); \ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\ -{ \ - __do_dmb(); \ - atomic_##NAME##_##WIDTH(p, v); \ -} - -static __inline void -atomic_set_32(volatile uint32_t *address, uint32_t setmask) -{ - uint32_t tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "orr %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - , "+r" (address), "+r" (setmask) : : "cc", "memory"); - -} - -static __inline void -atomic_set_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " orr %Q[tmp], %Q[val]\n" - " orr %R[tmp], %R[val]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); -} - -static __inline void -atomic_set_long(volatile u_long *address, u_long setmask) -{ - u_long tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "orr %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - , "+r" (address), "+r" (setmask) : : "cc", "memory"); - -} - -static __inline void -atomic_clear_32(volatile uint32_t *address, uint32_t setmask) -{ - uint32_t tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "bic %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (address), "+r" (setmask) : : "cc", "memory"); -} - -static __inline void -atomic_clear_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " bic %Q[tmp], %Q[val]\n" - " bic %R[tmp], %R[val]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); -} - -static __inline void -atomic_clear_long(volatile u_long *address, u_long setmask) -{ - u_long tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "bic %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (address), "+r" (setmask) : : "cc", "memory"); -} - -static __inline u_int32_t -atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) -{ - uint32_t ret; - - __asm __volatile("1: ldrex %0, [%1]\n" - "cmp %0, %2\n" - "itt ne\n" - "movne %0, #0\n" - "bne 2f\n" - "strex %0, %3, [%1]\n" - "cmp %0, #0\n" - "ite eq\n" - "moveq %0, #1\n" - "bne 1b\n" - "2:" - : "=&r" (ret) - ,"+r" (p), "+r" (cmpval), "+r" (newval) : : "cc", - "memory"); - return (ret); -} - -static __inline int -atomic_cmpset_64(volatile uint64_t *p, uint64_t cmpval, uint64_t newval) -{ - uint64_t tmp; - uint32_t ret; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %Q[tmp], %Q[cmpval]\n" - " itee eq \n" - " teqeq %R[tmp], %R[cmpval]\n" - " movne %[ret], #0\n" - " bne 2f\n" - " strexd %[ret], %Q[newval], %R[newval], [%[ptr]]\n" - " teq %[ret], #0\n" - " it ne \n" - " bne 1b\n" - " mov %[ret], #1\n" - "2: \n" - : [ret] "=&r" (ret), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [cmpval] "r" (cmpval), - [newval] "r" (newval) - : "cc", "memory"); - return (ret); -} - -static __inline u_long -atomic_cmpset_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) -{ - u_long ret; - - __asm __volatile("1: ldrex %0, [%1]\n" - "cmp %0, %2\n" - "itt ne\n" - "movne %0, #0\n" - "bne 2f\n" - "strex %0, %3, [%1]\n" - "cmp %0, #0\n" - "ite eq\n" - "moveq %0, #1\n" - "bne 1b\n" - "2:" - : "=&r" (ret) - ,"+r" (p), "+r" (cmpval), "+r" (newval) : : "cc", - "memory"); - return (ret); -} - -static __inline u_int32_t -atomic_cmpset_acq_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) -{ - u_int32_t ret = atomic_cmpset_32(p, cmpval, newval); - - __do_dmb(); - return (ret); -} - -static __inline uint64_t -atomic_cmpset_acq_64(volatile uint64_t *p, volatile uint64_t cmpval, volatile uint64_t newval) -{ - uint64_t ret = atomic_cmpset_64(p, cmpval, newval); - - __do_dmb(); - return (ret); -} - -static __inline u_long -atomic_cmpset_acq_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) -{ - u_long ret = atomic_cmpset_long(p, cmpval, newval); - - __do_dmb(); - return (ret); -} - -static __inline u_int32_t -atomic_cmpset_rel_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) -{ - - __do_dmb(); - return (atomic_cmpset_32(p, cmpval, newval)); -} - -static __inline uint64_t -atomic_cmpset_rel_64(volatile uint64_t *p, volatile uint64_t cmpval, volatile uint64_t newval) -{ - - __do_dmb(); - return (atomic_cmpset_64(p, cmpval, newval)); -} - -static __inline u_long -atomic_cmpset_rel_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) -{ - - __do_dmb(); - return (atomic_cmpset_long(p, cmpval, newval)); -} - - -static __inline void -atomic_add_32(volatile u_int32_t *p, u_int32_t val) -{ - uint32_t tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "add %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); -} - -static __inline void -atomic_add_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " adds %Q[tmp], %Q[val]\n" - " adc %R[tmp], %R[tmp], %R[val]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); -} - -static __inline void -atomic_add_long(volatile u_long *p, u_long val) -{ - u_long tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "add %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); -} - -static __inline void -atomic_subtract_32(volatile u_int32_t *p, u_int32_t val) -{ - uint32_t tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "sub %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); -} - -static __inline void -atomic_subtract_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " subs %Q[tmp], %Q[val]\n" - " sbc %R[tmp], %R[tmp], %R[val]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); -} - -static __inline void -atomic_subtract_long(volatile u_long *p, u_long val) -{ - u_long tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%2]\n" - "sub %0, %0, %3\n" - "strex %1, %0, [%2]\n" - "cmp %1, #0\n" - "it ne\n" - "bne 1b\n" - : "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); -} - -ATOMIC_ACQ_REL(clear, 32) -ATOMIC_ACQ_REL(add, 32) -ATOMIC_ACQ_REL(subtract, 32) -ATOMIC_ACQ_REL(set, 32) -ATOMIC_ACQ_REL(clear, 64) -ATOMIC_ACQ_REL(add, 64) -ATOMIC_ACQ_REL(subtract, 64) -ATOMIC_ACQ_REL(set, 64) -ATOMIC_ACQ_REL_LONG(clear) -ATOMIC_ACQ_REL_LONG(add) -ATOMIC_ACQ_REL_LONG(subtract) -ATOMIC_ACQ_REL_LONG(set) - -#undef ATOMIC_ACQ_REL -#undef ATOMIC_ACQ_REL_LONG - -static __inline uint32_t -atomic_fetchadd_32(volatile uint32_t *p, uint32_t val) -{ - uint32_t tmp = 0, tmp2 = 0, ret = 0; - - __asm __volatile("1: ldrex %0, [%3]\n" - "add %1, %0, %4\n" - "strex %2, %1, [%3]\n" - "cmp %2, #0\n" - "it ne\n" - "bne 1b\n" - : "+r" (ret), "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); - return (ret); -} - -static __inline uint32_t -atomic_readandclear_32(volatile u_int32_t *p) -{ - uint32_t ret, tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%3]\n" - "mov %1, #0\n" - "strex %2, %1, [%3]\n" - "cmp %2, #0\n" - "it ne\n" - "bne 1b\n" - : "=r" (ret), "=&r" (tmp), "+r" (tmp2) - ,"+r" (p) : : "cc", "memory"); - return (ret); -} - -static __inline uint32_t -atomic_load_acq_32(volatile uint32_t *p) -{ - uint32_t v; - - v = *p; - __do_dmb(); - return (v); -} - -static __inline void -atomic_store_rel_32(volatile uint32_t *p, uint32_t v) -{ - - __do_dmb(); - *p = v; -} - -static __inline uint64_t -atomic_fetchadd_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t ret, tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " adds %Q[tmp], %Q[ret], %Q[val]\n" - " adc %R[tmp], %R[ret], %R[val]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [ret] "=&r" (ret), - [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); - return (ret); -} - -static __inline uint64_t -atomic_readandclear_64(volatile uint64_t *p) -{ - uint64_t ret, tmp; - uint32_t exflag; - - __asm __volatile( - "1: \n" - " ldrexd %Q[ret], %R[ret], [%[ptr]]\n" - " mov %Q[tmp], #0\n" - " mov %R[tmp], #0\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [ret] "=&r" (ret), - [exf] "=&r" (exflag), - [tmp] "=&r" (tmp) - : [ptr] "r" (p) - : "cc", "memory"); - return (ret); -} - -static __inline uint64_t -atomic_load_64(volatile uint64_t *p) -{ - uint64_t ret; - - /* - * The only way to atomically load 64 bits is with LDREXD which puts the - * exclusive monitor into the exclusive state, so reset it to open state - * with CLREX because we don't actually need to store anything. - */ - __asm __volatile( - "1: \n" - " ldrexd %Q[ret], %R[ret], [%[ptr]]\n" - " clrex \n" - : [ret] "=&r" (ret) - : [ptr] "r" (p) - : "cc", "memory"); - return (ret); -} - -static __inline uint64_t -atomic_load_acq_64(volatile uint64_t *p) -{ - uint64_t ret; - - ret = atomic_load_64(p); - __do_dmb(); - return (ret); -} - -static __inline void -atomic_store_64(volatile uint64_t *p, uint64_t val) -{ - uint64_t tmp; - uint32_t exflag; - - /* - * The only way to atomically store 64 bits is with STREXD, which will - * succeed only if paired up with a preceeding LDREXD using the same - * address, so we read and discard the existing value before storing. - */ - __asm __volatile( - "1: \n" - " ldrexd %Q[tmp], %R[tmp], [%[ptr]]\n" - " strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]]\n" - " teq %[exf], #0\n" - " it ne \n" - " bne 1b\n" - : [tmp] "=&r" (tmp), - [exf] "=&r" (exflag) - : [ptr] "r" (p), - [val] "r" (val) - : "cc", "memory"); -} - -static __inline void -atomic_store_rel_64(volatile uint64_t *p, uint64_t val) -{ - - __do_dmb(); - atomic_store_64(p, val); -} - -static __inline u_long -atomic_fetchadd_long(volatile u_long *p, u_long val) -{ - u_long tmp = 0, tmp2 = 0, ret = 0; - - __asm __volatile("1: ldrex %0, [%3]\n" - "add %1, %0, %4\n" - "strex %2, %1, [%3]\n" - "cmp %2, #0\n" - "it ne\n" - "bne 1b\n" - : "+r" (ret), "=&r" (tmp), "+r" (tmp2) - ,"+r" (p), "+r" (val) : : "cc", "memory"); - return (ret); -} - -static __inline u_long -atomic_readandclear_long(volatile u_long *p) -{ - u_long ret, tmp = 0, tmp2 = 0; - - __asm __volatile("1: ldrex %0, [%3]\n" - "mov %1, #0\n" - "strex %2, %1, [%3]\n" - "cmp %2, #0\n" - "it ne\n" - "bne 1b\n" - : "=r" (ret), "=&r" (tmp), "+r" (tmp2) - ,"+r" (p) : : "cc", "memory"); - return (ret); -} - -static __inline u_long -atomic_load_acq_long(volatile u_long *p) -{ - u_long v; - - v = *p; - __do_dmb(); - return (v); -} - -static __inline void -atomic_store_rel_long(volatile u_long *p, u_long v) -{ - - __do_dmb(); - *p = v; -} -#else /* < armv6 */ - #define __with_interrupts_disabled(expr) \ do { \ u_int cpsr_save, tmp; \ @@ -1073,90 +439,4 @@ atomic_subtract_long(volatile u_long *p, atomic_subtract_32((volatile uint32_t *)p, v); } - - -#endif /* Arch >= v6 */ - -static __inline int -atomic_load_32(volatile uint32_t *v) -{ - - return (*v); -} - -static __inline void -atomic_store_32(volatile uint32_t *dst, uint32_t src) -{ - *dst = src; -} - -static __inline int -atomic_load_long(volatile u_long *v) -{ - - return (*v); -} - -static __inline void -atomic_store_long(volatile u_long *dst, u_long src) -{ - *dst = src; -} - -static __inline void -atomic_thread_fence_acq(void) -{ - - dmb(); -} - -static __inline void -atomic_thread_fence_rel(void) -{ - - dmb(); -} - -static __inline void -atomic_thread_fence_acq_rel(void) -{ - - dmb(); -} - -static __inline void -atomic_thread_fence_seq_cst(void) -{ - - dmb(); -} - -#define atomic_clear_ptr atomic_clear_32 -#define atomic_set_ptr atomic_set_32 -#define atomic_cmpset_ptr atomic_cmpset_32 -#define atomic_cmpset_rel_ptr atomic_cmpset_rel_32 -#define atomic_cmpset_acq_ptr atomic_cmpset_acq_32 -#define atomic_store_ptr atomic_store_32 -#define atomic_store_rel_ptr atomic_store_rel_32 - -#define atomic_add_int atomic_add_32 -#define atomic_add_acq_int atomic_add_acq_32 -#define atomic_add_rel_int atomic_add_rel_32 -#define atomic_subtract_int atomic_subtract_32 -#define atomic_subtract_acq_int atomic_subtract_acq_32 -#define atomic_subtract_rel_int atomic_subtract_rel_32 -#define atomic_clear_int atomic_clear_32 -#define atomic_clear_acq_int atomic_clear_acq_32 -#define atomic_clear_rel_int atomic_clear_rel_32 -#define atomic_set_int atomic_set_32 -#define atomic_set_acq_int atomic_set_acq_32 -#define atomic_set_rel_int atomic_set_rel_32 -#define atomic_cmpset_int atomic_cmpset_32 -#define atomic_cmpset_acq_int atomic_cmpset_acq_32 -#define atomic_cmpset_rel_int atomic_cmpset_rel_32 -#define atomic_fetchadd_int atomic_fetchadd_32 -#define atomic_readandclear_int atomic_readandclear_32 -#define atomic_load_acq_int atomic_load_acq_32 -#define atomic_store_rel_int atomic_store_rel_32 - #endif /* _MACHINE_ATOMIC_H_ */ Copied and modified: head/sys/arm/include/atomic-v6.h (from r285531, head/sys/arm/include/atomic.h) ============================================================================== --- head/sys/arm/include/atomic.h Tue Jul 14 10:49:36 2015 (r285531, copy source) +++ head/sys/arm/include/atomic-v6.h Thu Jul 16 13:33:03 2015 (r285631) @@ -36,61 +36,36 @@ * $FreeBSD$ */ -#ifndef _MACHINE_ATOMIC_H_ -#define _MACHINE_ATOMIC_H_ +#ifndef _MACHINE_ATOMIC_V6_H_ +#define _MACHINE_ATOMIC_V6_H_ -#include -#include - -#ifndef _KERNEL -#include -#else -#include +#ifndef _MACHINE_ATOMIC_H_ +#error Do not include this file directly, use #endif -#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) +#if __ARM_ARCH >= 7 #define isb() __asm __volatile("isb" : : : "memory") #define dsb() __asm __volatile("dsb" : : : "memory") #define dmb() __asm __volatile("dmb" : : : "memory") -#elif defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) || \ - defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6T2__) || \ - defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) +#elif __ARM_ARCH >= 6 #define isb() __asm __volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory") #define dsb() __asm __volatile("mcr p15, 0, %0, c7, c10, 4" : : "r" (0) : "memory") #define dmb() __asm __volatile("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory") #else -#define isb() __asm __volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory") -#define dsb() __asm __volatile("mcr p15, 0, %0, c7, c10, 4" : : "r" (0) : "memory") -#define dmb() dsb() +#error Only use this file with ARMv6 and later #endif #define mb() dmb() #define wmb() dmb() #define rmb() dmb() - - -/* - * It would be nice to use _HAVE_ARMv6_INSTRUCTIONS from machine/asm.h - * here, but that header can't be included here because this is C - * code. I would like to move the _HAVE_ARMv6_INSTRUCTIONS definition - * out of asm.h so it can be used in both asm and C code. - kientzle@ - */ -#if defined (__ARM_ARCH_7__) || \ - defined (__ARM_ARCH_7A__) || \ - defined (__ARM_ARCH_6__) || \ - defined (__ARM_ARCH_6J__) || \ - defined (__ARM_ARCH_6K__) || \ - defined (__ARM_ARCH_6T2__) || \ - defined (__ARM_ARCH_6Z__) || \ - defined (__ARM_ARCH_6ZK__) #define ARM_HAVE_ATOMIC64 static __inline void __do_dmb(void) { -#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) +#if __ARM_ARCH >= 7 __asm __volatile("dmb" : : : "memory"); #else __asm __volatile("mcr p15, 0, r0, c7, c10, 5" : : : "memory"); @@ -687,476 +662,5 @@ atomic_store_rel_long(volatile u_long *p __do_dmb(); *p = v; } -#else /* < armv6 */ - -#define __with_interrupts_disabled(expr) \ - do { \ - u_int cpsr_save, tmp; \ - \ - __asm __volatile( \ - "mrs %0, cpsr;" \ - "orr %1, %0, %2;" \ - "msr cpsr_fsxc, %1;" \ - : "=r" (cpsr_save), "=r" (tmp) \ - : "I" (PSR_I | PSR_F) \ - : "cc" ); \ - (expr); \ - __asm __volatile( \ - "msr cpsr_fsxc, %0" \ - : /* no output */ \ - : "r" (cpsr_save) \ - : "cc" ); \ - } while(0) - -static __inline uint32_t -__swp(uint32_t val, volatile uint32_t *ptr) -{ - __asm __volatile("swp %0, %2, [%3]" - : "=&r" (val), "=m" (*ptr) - : "r" (val), "r" (ptr), "m" (*ptr) - : "memory"); - return (val); -} - - -#ifdef _KERNEL -#define ARM_HAVE_ATOMIC64 - -static __inline void -atomic_set_32(volatile uint32_t *address, uint32_t setmask) -{ - __with_interrupts_disabled(*address |= setmask); -} - -static __inline void -atomic_set_64(volatile uint64_t *address, uint64_t setmask) -{ - __with_interrupts_disabled(*address |= setmask); -} - -static __inline void -atomic_clear_32(volatile uint32_t *address, uint32_t clearmask) -{ - __with_interrupts_disabled(*address &= ~clearmask); -} - -static __inline void -atomic_clear_64(volatile uint64_t *address, uint64_t clearmask) -{ - __with_interrupts_disabled(*address &= ~clearmask); -} - -static __inline u_int32_t -atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) -{ - int ret; - - __with_interrupts_disabled( - { - if (*p == cmpval) { - *p = newval; - ret = 1; - } else { - ret = 0; - } - }); - return (ret); -} - -static __inline u_int64_t -atomic_cmpset_64(volatile u_int64_t *p, volatile u_int64_t cmpval, volatile u_int64_t newval) -{ - int ret; - - __with_interrupts_disabled( - { - if (*p == cmpval) { - *p = newval; - ret = 1; - } else { - ret = 0; - } - }); - return (ret); -} - -static __inline void -atomic_add_32(volatile u_int32_t *p, u_int32_t val) -{ - __with_interrupts_disabled(*p += val); -} - -static __inline void -atomic_add_64(volatile u_int64_t *p, u_int64_t val) -{ - __with_interrupts_disabled(*p += val); -} - -static __inline void -atomic_subtract_32(volatile u_int32_t *p, u_int32_t val) -{ - __with_interrupts_disabled(*p -= val); -} - -static __inline void -atomic_subtract_64(volatile u_int64_t *p, u_int64_t val) -{ - __with_interrupts_disabled(*p -= val); -} - -static __inline uint32_t -atomic_fetchadd_32(volatile uint32_t *p, uint32_t v) -{ - uint32_t value; - - __with_interrupts_disabled( - { - value = *p; - *p += v; - }); - return (value); -} - -static __inline uint64_t -atomic_fetchadd_64(volatile uint64_t *p, uint64_t v) -{ - uint64_t value; - - __with_interrupts_disabled( - { - value = *p; - *p += v; - }); - return (value); -} - -static __inline uint64_t -atomic_load_64(volatile uint64_t *p) -{ - uint64_t value; - - __with_interrupts_disabled(value = *p); - return (value); -} - -static __inline void -atomic_store_64(volatile uint64_t *p, uint64_t value) -{ - __with_interrupts_disabled(*p = value); -} - -#else /* !_KERNEL */ - -static __inline u_int32_t -atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) -{ - register int done, ras_start = ARM_RAS_START; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Thu Jul 16 13:57:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EB94599CF33; Thu, 16 Jul 2015 13:57:08 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 DACBE11B1; Thu, 16 Jul 2015 13:57:08 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GDv8Xp007689; Thu, 16 Jul 2015 13:57:08 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GDv6Ph007683; Thu, 16 Jul 2015 13:57:06 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507161357.t6GDv6Ph007683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jul 2015 13:57:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285632 - in head/sys: cddl/contrib/opensolaris/uts/common/fs kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 13:57:09 -0000 Author: mjg Date: Thu Jul 16 13:57:05 2015 New Revision: 285632 URL: https://svnweb.freebsd.org/changeset/base/285632 Log: vfs: implement v_holdcnt/v_usecount manipulation using atomic ops Transitions 0->1 and 1->0 (which decide e.g. on putting the vnode on the free list) of either counter are still guarded with vnode interlock. Reviewed by: kib (earlier version) Tested by: pho Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c head/sys/kern/vfs_cache.c head/sys/kern/vfs_hash.c head/sys/kern/vfs_subr.c head/sys/sys/lockmgr.h head/sys/sys/vnode.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c Thu Jul 16 13:57:05 2015 (r285632) @@ -99,6 +99,6 @@ vn_rele_async(vnode_t *vp, taskq_t *task (task_func_t *)vn_rele_inactive, vp, TQ_SLEEP) != 0); return; } - vp->v_usecount--; + refcount_release(&vp->v_usecount); vdropl(vp); } Modified: head/sys/kern/vfs_cache.c ============================================================================== --- head/sys/kern/vfs_cache.c Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/kern/vfs_cache.c Thu Jul 16 13:57:05 2015 (r285632) @@ -661,12 +661,12 @@ success: ltype = VOP_ISLOCKED(dvp); VOP_UNLOCK(dvp, 0); } - VI_LOCK(*vpp); + vhold(*vpp); if (wlocked) CACHE_WUNLOCK(); else CACHE_RUNLOCK(); - error = vget(*vpp, cnp->cn_lkflags | LK_INTERLOCK, cnp->cn_thread); + error = vget(*vpp, cnp->cn_lkflags | LK_VNHELD, cnp->cn_thread); if (cnp->cn_flags & ISDOTDOT) { vn_lock(dvp, ltype | LK_RETRY); if (dvp->v_iflag & VI_DOOMED) { @@ -1366,9 +1366,9 @@ vn_dir_dd_ino(struct vnode *vp) if ((ncp->nc_flag & NCF_ISDOTDOT) != 0) continue; ddvp = ncp->nc_dvp; - VI_LOCK(ddvp); + vhold(ddvp); CACHE_RUNLOCK(); - if (vget(ddvp, LK_INTERLOCK | LK_SHARED | LK_NOWAIT, curthread)) + if (vget(ddvp, LK_SHARED | LK_NOWAIT | LK_VNHELD, curthread)) return (NULL); return (ddvp); } Modified: head/sys/kern/vfs_hash.c ============================================================================== --- head/sys/kern/vfs_hash.c Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/kern/vfs_hash.c Thu Jul 16 13:57:05 2015 (r285632) @@ -84,9 +84,9 @@ vfs_hash_get(const struct mount *mp, u_i continue; if (fn != NULL && fn(vp, arg)) continue; - VI_LOCK(vp); + vhold(vp); rw_runlock(&vfs_hash_lock); - error = vget(vp, flags | LK_INTERLOCK, td); + error = vget(vp, flags | LK_VNHELD, td); if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; if (error) @@ -128,9 +128,9 @@ vfs_hash_insert(struct vnode *vp, u_int continue; if (fn != NULL && fn(vp2, arg)) continue; - VI_LOCK(vp2); + vhold(vp2); rw_wunlock(&vfs_hash_lock); - error = vget(vp2, flags | LK_INTERLOCK, td); + error = vget(vp2, flags | LK_VNHELD, td); if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; rw_wlock(&vfs_hash_lock); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/kern/vfs_subr.c Thu Jul 16 13:57:05 2015 (r285632) @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -101,10 +102,8 @@ static int flushbuflist(struct bufv *buf int slpflag, int slptimeo); static void syncer_shutdown(void *arg, int howto); static int vtryrecycle(struct vnode *vp); +static void v_init_counters(struct vnode *); static void v_incr_usecount(struct vnode *); -static void v_decr_usecount(struct vnode *); -static void v_decr_useonly(struct vnode *); -static void v_upgrade_usecount(struct vnode *); static void v_incr_devcount(struct vnode *); static void v_decr_devcount(struct vnode *); static void vnlru_free(int); @@ -870,7 +869,7 @@ vnlru_free(int count) */ freevnodes--; vp->v_iflag &= ~VI_FREE; - vp->v_holdcnt++; + refcount_acquire(&vp->v_holdcnt); mtx_unlock(&vnode_free_list_mtx); VI_UNLOCK(vp); @@ -1144,7 +1143,7 @@ alloc: vp->v_type = VNON; vp->v_tag = tag; vp->v_op = vops; - v_incr_usecount(vp); + v_init_counters(vp); vp->v_data = NULL; #ifdef MAC mac_vnode_init(vp); @@ -2072,72 +2071,85 @@ reassignbuf(struct buf *bp) } /* - * Increment the use and hold counts on the vnode, taking care to reference - * the driver's usecount if this is a chardev. The vholdl() will remove - * the vnode from the free list if it is presently free. Requires the - * vnode interlock and returns with it held. + * A temporary hack until refcount_* APIs are sorted out. */ -static void -v_incr_usecount(struct vnode *vp) +static __inline int +vfs_refcount_acquire_if_not_zero(volatile u_int *count) { + u_int old; - CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - VNASSERT(vp->v_usecount == 0 || (vp->v_iflag & VI_OWEINACT) == 0, vp, - ("vnode with usecount and VI_OWEINACT set")); - if (vp->v_iflag & VI_OWEINACT) - vp->v_iflag &= ~VI_OWEINACT; - vholdl(vp); - vp->v_usecount++; - v_incr_devcount(vp); + for (;;) { + old = *count; + if (old == 0) + return (0); + if (atomic_cmpset_int(count, old, old + 1)) + return (1); + } } -/* - * Turn a holdcnt into a use+holdcnt such that only one call to - * v_decr_usecount is needed. - */ -static void -v_upgrade_usecount(struct vnode *vp) +static __inline int +vfs_refcount_release_if_not_last(volatile u_int *count) { + u_int old; - CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - vp->v_usecount++; - v_incr_devcount(vp); + for (;;) { + old = *count; + if (old == 1) + return (0); + if (atomic_cmpset_int(count, old, old - 1)) + return (1); + } } -/* - * Decrement the vnode use and hold count along with the driver's usecount - * if this is a chardev. The vdropl() below releases the vnode interlock - * as it may free the vnode. - */ static void -v_decr_usecount(struct vnode *vp) +v_init_counters(struct vnode *vp) { - ASSERT_VI_LOCKED(vp, __FUNCTION__); - VNASSERT(vp->v_usecount > 0, vp, - ("v_decr_usecount: negative usecount")); - CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - vp->v_usecount--; - v_decr_devcount(vp); - vdropl(vp); + VNASSERT(vp->v_type == VNON && vp->v_data == NULL && vp->v_iflag == 0, + vp, ("%s called for an initialized vnode", __FUNCTION__)); + ASSERT_VI_UNLOCKED(vp, __FUNCTION__); + + refcount_init(&vp->v_holdcnt, 1); + refcount_init(&vp->v_usecount, 1); } /* - * Decrement only the use count and driver use count. This is intended to - * be paired with a follow on vdropl() to release the remaining hold count. - * In this way we may vgone() a vnode with a 0 usecount without risk of - * having it end up on a free list because the hold count is kept above 0. + * Increment the use and hold counts on the vnode, taking care to reference + * the driver's usecount if this is a chardev. The _vhold() will remove + * the vnode from the free list if it is presently free. */ static void -v_decr_useonly(struct vnode *vp) +v_incr_usecount(struct vnode *vp) { - ASSERT_VI_LOCKED(vp, __FUNCTION__); - VNASSERT(vp->v_usecount > 0, vp, - ("v_decr_useonly: negative usecount")); + ASSERT_VI_UNLOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - vp->v_usecount--; - v_decr_devcount(vp); + + if (vp->v_type == VCHR) { + VI_LOCK(vp); + _vhold(vp, true); + if (vp->v_iflag & VI_OWEINACT) { + VNASSERT(vp->v_usecount == 0, vp, + ("vnode with usecount and VI_OWEINACT set")); + vp->v_iflag &= ~VI_OWEINACT; + } + refcount_acquire(&vp->v_usecount); + v_incr_devcount(vp); + VI_UNLOCK(vp); + return; + } + + _vhold(vp, false); + if (vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) { + VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp, + ("vnode with usecount and VI_OWEINACT set")); + } else { + VI_LOCK(vp); + if (vp->v_iflag & VI_OWEINACT) + vp->v_iflag &= ~VI_OWEINACT; + refcount_acquire(&vp->v_usecount); + VI_UNLOCK(vp); + } } /* @@ -2147,11 +2159,7 @@ static void v_incr_devcount(struct vnode *vp) { -#ifdef INVARIANTS - /* getnewvnode() calls v_incr_usecount() without holding interlock. */ - if (vp->v_type != VNON || vp->v_data != NULL) - ASSERT_VI_LOCKED(vp, __FUNCTION__); -#endif + ASSERT_VI_LOCKED(vp, __FUNCTION__); if (vp->v_type == VCHR && vp->v_rdev != NULL) { dev_lock(); vp->v_rdev->si_usecount++; @@ -2180,21 +2188,35 @@ v_decr_devcount(struct vnode *vp) * is being destroyed. Only callers who specify LK_RETRY will * see doomed vnodes. If inactive processing was delayed in * vput try to do it here. + * + * Notes on lockless counter manipulation: + * _vhold, vputx and other routines make various decisions based + * on either holdcnt or usecount being 0. As long as either contuner + * is not transitioning 0->1 nor 1->0, the manipulation can be done + * with atomic operations. Otherwise the interlock is taken. */ int vget(struct vnode *vp, int flags, struct thread *td) { - int error; + int error, oweinact; - error = 0; VNASSERT((flags & LK_TYPE_MASK) != 0, vp, ("vget: invalid lock operation")); + + if ((flags & LK_INTERLOCK) != 0) + ASSERT_VI_LOCKED(vp, __func__); + else + ASSERT_VI_UNLOCKED(vp, __func__); + if ((flags & LK_VNHELD) != 0) + VNASSERT((vp->v_holdcnt > 0), vp, + ("vget: LK_VNHELD passed but vnode not held")); + CTR3(KTR_VFS, "%s: vp %p with flags %d", __func__, vp, flags); - if ((flags & LK_INTERLOCK) == 0) - VI_LOCK(vp); - vholdl(vp); - if ((error = vn_lock(vp, flags | LK_INTERLOCK)) != 0) { + if ((flags & LK_VNHELD) == 0) + _vhold(vp, (flags & LK_INTERLOCK) != 0); + + if ((error = vn_lock(vp, flags)) != 0) { vdrop(vp); CTR2(KTR_VFS, "%s: impossible to lock vnode %p", __func__, vp); @@ -2202,24 +2224,33 @@ vget(struct vnode *vp, int flags, struct } if (vp->v_iflag & VI_DOOMED && (flags & LK_RETRY) == 0) panic("vget: vn_lock failed to return ENOENT\n"); - VI_LOCK(vp); - VNASSERT(vp->v_usecount == 0 || (vp->v_iflag & VI_OWEINACT) == 0, vp, - ("vnode with usecount and VI_OWEINACT set")); - /* Upgrade our holdcnt to a usecount. */ - v_upgrade_usecount(vp); /* * We don't guarantee that any particular close will * trigger inactive processing so just make a best effort * here at preventing a reference to a removed file. If * we don't succeed no harm is done. + * + * Upgrade our holdcnt to a usecount. */ - if (vp->v_iflag & VI_OWEINACT) { - if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE && + if (vp->v_type != VCHR && + vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) { + VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp, + ("vnode with usecount and VI_OWEINACT set")); + } else { + VI_LOCK(vp); + if ((vp->v_iflag & VI_OWEINACT) == 0) { + oweinact = 0; + } else { + oweinact = 1; + vp->v_iflag &= ~VI_OWEINACT; + } + refcount_acquire(&vp->v_usecount); + v_incr_devcount(vp); + if (oweinact && VOP_ISLOCKED(vp) == LK_EXCLUSIVE && (flags & LK_NOWAIT) == 0) vinactive(vp, td); - vp->v_iflag &= ~VI_OWEINACT; + VI_UNLOCK(vp); } - VI_UNLOCK(vp); return (0); } @@ -2231,36 +2262,34 @@ vref(struct vnode *vp) { CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - VI_LOCK(vp); v_incr_usecount(vp); - VI_UNLOCK(vp); } /* * Return reference count of a vnode. * - * The results of this call are only guaranteed when some mechanism other - * than the VI lock is used to stop other processes from gaining references - * to the vnode. This may be the case if the caller holds the only reference. - * This is also useful when stale data is acceptable as race conditions may - * be accounted for by some other means. + * The results of this call are only guaranteed when some mechanism is used to + * stop other processes from gaining references to the vnode. This may be the + * case if the caller holds the only reference. This is also useful when stale + * data is acceptable as race conditions may be accounted for by some other + * means. */ int vrefcnt(struct vnode *vp) { - int usecnt; - VI_LOCK(vp); - usecnt = vp->v_usecount; - VI_UNLOCK(vp); - - return (usecnt); + return (vp->v_usecount); } #define VPUTX_VRELE 1 #define VPUTX_VPUT 2 #define VPUTX_VUNREF 3 +/* + * Decrement the use and hold counts for a vnode. + * + * See an explanation near vget() as to why atomic operation is safe. + */ static void vputx(struct vnode *vp, int func) { @@ -2273,33 +2302,44 @@ vputx(struct vnode *vp, int func) ASSERT_VOP_LOCKED(vp, "vput"); else KASSERT(func == VPUTX_VRELE, ("vputx: wrong func")); + ASSERT_VI_UNLOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - VI_LOCK(vp); - /* Skip this v_writecount check if we're going to panic below. */ - VNASSERT(vp->v_writecount < vp->v_usecount || vp->v_usecount < 1, vp, - ("vputx: missed vn_close")); - error = 0; - - if (vp->v_usecount > 1 || ((vp->v_iflag & VI_DOINGINACT) && - vp->v_usecount == 1)) { + if (vp->v_type != VCHR && + vfs_refcount_release_if_not_last(&vp->v_usecount)) { if (func == VPUTX_VPUT) VOP_UNLOCK(vp, 0); - v_decr_usecount(vp); + vdrop(vp); return; } - if (vp->v_usecount != 1) { - vprint("vputx: negative ref count", vp); - panic("vputx: negative ref cnt"); - } - CTR2(KTR_VFS, "%s: return vnode %p to the freelist", __func__, vp); + VI_LOCK(vp); + /* * We want to hold the vnode until the inactive finishes to * prevent vgone() races. We drop the use count here and the * hold count below when we're done. */ - v_decr_useonly(vp); + if (!refcount_release(&vp->v_usecount) || + (vp->v_iflag & VI_DOINGINACT)) { + if (func == VPUTX_VPUT) + VOP_UNLOCK(vp, 0); + v_decr_devcount(vp); + vdropl(vp); + return; + } + + v_decr_devcount(vp); + + error = 0; + + if (vp->v_usecount != 0) { + vprint("vputx: usecount not zero", vp); + panic("vputx: usecount not zero"); + } + + CTR2(KTR_VFS, "%s: return vnode %p to the freelist", __func__, vp); + /* * We must call VOP_INACTIVE with the node locked. Mark * as VI_DOINGINACT to avoid recursion. @@ -2369,36 +2409,36 @@ vunref(struct vnode *vp) } /* - * Somebody doesn't want the vnode recycled. - */ -void -vhold(struct vnode *vp) -{ - - VI_LOCK(vp); - vholdl(vp); - VI_UNLOCK(vp); -} - -/* * Increase the hold count and activate if this is the first reference. */ void -vholdl(struct vnode *vp) +_vhold(struct vnode *vp, bool locked) { struct mount *mp; + if (locked) + ASSERT_VI_LOCKED(vp, __func__); + else + ASSERT_VI_UNLOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); -#ifdef INVARIANTS - /* getnewvnode() calls v_incr_usecount() without holding interlock. */ - if (vp->v_type != VNON || vp->v_data != NULL) - ASSERT_VI_LOCKED(vp, "vholdl"); -#endif - vp->v_holdcnt++; - if ((vp->v_iflag & VI_FREE) == 0) + if (!locked && vfs_refcount_acquire_if_not_zero(&vp->v_holdcnt)) { + VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, + ("_vhold: vnode with holdcnt is free")); + return; + } + + if (!locked) + VI_LOCK(vp); + if ((vp->v_iflag & VI_FREE) == 0) { + refcount_acquire(&vp->v_holdcnt); + if (!locked) + VI_UNLOCK(vp); return; - VNASSERT(vp->v_holdcnt == 1, vp, ("vholdl: wrong hold count")); - VNASSERT(vp->v_op != NULL, vp, ("vholdl: vnode already reclaimed.")); + } + VNASSERT(vp->v_holdcnt == 0, vp, + ("%s: wrong hold count", __func__)); + VNASSERT(vp->v_op != NULL, vp, + ("%s: vnode already reclaimed.", __func__)); /* * Remove a vnode from the free list, mark it as in use, * and put it on the active list. @@ -2414,18 +2454,9 @@ vholdl(struct vnode *vp) TAILQ_INSERT_HEAD(&mp->mnt_activevnodelist, vp, v_actfreelist); mp->mnt_activevnodelistsize++; mtx_unlock(&vnode_free_list_mtx); -} - -/* - * Note that there is one less who cares about this vnode. - * vdrop() is the opposite of vhold(). - */ -void -vdrop(struct vnode *vp) -{ - - VI_LOCK(vp); - vdropl(vp); + refcount_acquire(&vp->v_holdcnt); + if (!locked) + VI_UNLOCK(vp); } /* @@ -2434,20 +2465,28 @@ vdrop(struct vnode *vp) * (marked VI_DOOMED) in which case we will free it. */ void -vdropl(struct vnode *vp) +_vdrop(struct vnode *vp, bool locked) { struct bufobj *bo; struct mount *mp; int active; - ASSERT_VI_LOCKED(vp, "vdropl"); + if (locked) + ASSERT_VI_LOCKED(vp, __func__); + else + ASSERT_VI_UNLOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - if (vp->v_holdcnt <= 0) + if ((int)vp->v_holdcnt <= 0) panic("vdrop: holdcnt %d", vp->v_holdcnt); - vp->v_holdcnt--; - VNASSERT(vp->v_holdcnt >= vp->v_usecount, vp, - ("hold count less than use count")); - if (vp->v_holdcnt > 0) { + if (vfs_refcount_release_if_not_last(&vp->v_holdcnt)) { + if (locked) + VI_UNLOCK(vp); + return; + } + + if (!locked) + VI_LOCK(vp); + if (refcount_release(&vp->v_holdcnt) == 0) { VI_UNLOCK(vp); return; } Modified: head/sys/sys/lockmgr.h ============================================================================== --- head/sys/sys/lockmgr.h Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/sys/lockmgr.h Thu Jul 16 13:57:05 2015 (r285632) @@ -159,6 +159,7 @@ _lockmgr_args_rw(struct lock *lk, u_int #define LK_SLEEPFAIL 0x000800 #define LK_TIMELOCK 0x001000 #define LK_NODDLKTREAT 0x002000 +#define LK_VNHELD 0x004000 /* * Operations for lockmgr(). Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Thu Jul 16 13:33:03 2015 (r285631) +++ head/sys/sys/vnode.h Thu Jul 16 13:57:05 2015 (r285632) @@ -77,6 +77,7 @@ struct vpollinfo { * c - namecache mutex * f - freelist mutex * i - interlock + * I - updated with atomics, 0->1 and 1->0 transitions with interlock held * m - mount point interlock * p - pollinfo lock * u - Only a reference to the vnode is needed to read. @@ -162,8 +163,8 @@ struct vnode { daddr_t v_lastw; /* v last write */ int v_clen; /* v length of cur. cluster */ - int v_holdcnt; /* i prevents recycling. */ - int v_usecount; /* i ref count of users */ + u_int v_holdcnt; /* I prevents recycling. */ + u_int v_usecount; /* I ref count of users */ u_int v_iflag; /* i vnode flags (see below) */ u_int v_vflag; /* v vnode flags */ int v_writecount; /* v ref count of writers */ @@ -651,13 +652,15 @@ int vaccess_acl_posix1e(enum vtype type, struct ucred *cred, int *privused); void vattr_null(struct vattr *vap); int vcount(struct vnode *vp); -void vdrop(struct vnode *); -void vdropl(struct vnode *); +#define vdrop(vp) _vdrop((vp), 0) +#define vdropl(vp) _vdrop((vp), 1) +void _vdrop(struct vnode *, bool); int vflush(struct mount *mp, int rootrefs, int flags, struct thread *td); int vget(struct vnode *vp, int lockflag, struct thread *td); void vgone(struct vnode *vp); -void vhold(struct vnode *); -void vholdl(struct vnode *); +#define vhold(vp) _vhold((vp), 0) +#define vholdl(vp) _vhold((vp), 1) +void _vhold(struct vnode *, bool); void vinactive(struct vnode *, struct thread *); int vinvalbuf(struct vnode *vp, int save, int slpflag, int slptimeo); int vtruncbuf(struct vnode *vp, struct ucred *cred, off_t length, From owner-svn-src-head@freebsd.org Thu Jul 16 14:08:57 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE4589A1216 for ; Thu, 16 Jul 2015 14:08:57 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery4.ore.mailhop.org (pmta2.delivery4.ore.mailhop.org [54.200.247.200]) by mx1.freebsd.org (Postfix) with SMTP id 8B5BE1A60 for ; Thu, 16 Jul 2015 14:08:57 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Thu, 16 Jul 2015 14:08:35 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6GE8nSp054181; Thu, 16 Jul 2015 08:08:49 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1437055729.1334.359.camel@freebsd.org> Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... From: Ian Lepore To: Mark Murray Cc: Adrian Chadd , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Date: Thu, 16 Jul 2015 08:08:49 -0600 In-Reply-To: <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 14:08:57 -0000 On Thu, 2015-07-16 at 06:39 +0100, Mark Murray wrote: > > On 15 Jul 2015, at 23:43, Adrian Chadd wrote: > > > >> - Add harvesting of slab allocator events. This needs to be checked for > >> weighing down the allocator code. > > > > Hi, > > > > Is this really doing it upon every one of those events? eg, for each > > mbuf alloc through UMA? > > Only if you turn it on! > > M > In random_harvestq_init() I see harvest_context.hc_source_mask = RANDOM_HARVEST_EVERYTHING_MASK; and #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << (RANDOM_ENVIRONMENTAL_END + 1)) - 1) So doesn't that include the RANDOM_FAST flag that controls harvesting during every UMA alloc and free call? And that harvesting appears to be anything but fast, at least at a glance... it looks like it passes the entire struct uma_zone to the jenkins hash function... is there really useful entropy in all the data in that struct? -- Ian From owner-svn-src-head@freebsd.org Thu Jul 16 14:30:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 490929A15F0; Thu, 16 Jul 2015 14:30:14 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 260B2151B; Thu, 16 Jul 2015 14:30:14 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GEUEKZ020231; Thu, 16 Jul 2015 14:30:14 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GEUCbH019751; Thu, 16 Jul 2015 14:30:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507161430.t6GEUCbH019751@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jul 2015 14:30:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285633 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 14:30:14 -0000 Author: mjg Date: Thu Jul 16 14:30:11 2015 New Revision: 285633 URL: https://svnweb.freebsd.org/changeset/base/285633 Log: Get rid of lim_update_thread and cred_update_thread. Their primary use was in thread_cow_update to free up old resources. Freeing had to be done with proc lock held and _cow_ funcs already knew how to free old structs. Modified: head/sys/kern/init_main.c head/sys/kern/kern_prot.c head/sys/kern/kern_resource.c head/sys/kern/kern_thread.c head/sys/sys/resourcevar.h head/sys/sys/ucred.h Modified: head/sys/kern/init_main.c ============================================================================== --- head/sys/kern/init_main.c Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/kern/init_main.c Thu Jul 16 14:30:11 2015 (r285633) @@ -827,6 +827,7 @@ static void create_init(const void *udata __unused) { struct ucred *newcred, *oldcred; + struct thread *td; int error; error = fork1(&thread0, RFFDG | RFPROC | RFSTOPPED, 0, &initproc, @@ -850,7 +851,9 @@ create_init(const void *udata __unused) audit_cred_proc1(newcred); #endif proc_set_cred(initproc, newcred); - cred_update_thread(FIRST_THREAD_IN_PROC(initproc)); + td = FIRST_THREAD_IN_PROC(initproc); + crfree(td->td_ucred); + td->td_ucred = crhold(initproc->p_ucred); PROC_UNLOCK(initproc); sx_xunlock(&proctree_lock); crfree(oldcred); Modified: head/sys/kern/kern_prot.c ============================================================================== --- head/sys/kern/kern_prot.c Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/kern/kern_prot.c Thu Jul 16 14:30:11 2015 (r285633) @@ -1935,24 +1935,6 @@ cru2x(struct ucred *cr, struct xucred *x } /* - * small routine to swap a thread's current ucred for the correct one taken - * from the process. - */ -void -cred_update_thread(struct thread *td) -{ - struct proc *p; - struct ucred *cred; - - p = td->td_proc; - cred = td->td_ucred; - PROC_LOCK_ASSERT(p, MA_OWNED); - td->td_ucred = crhold(p->p_ucred); - if (cred != NULL) - crfree(cred); -} - -/* * Set initial process credentials. * Callers are responsible for providing the reference for provided credentials. */ Modified: head/sys/kern/kern_resource.c ============================================================================== --- head/sys/kern/kern_resource.c Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/kern/kern_resource.c Thu Jul 16 14:30:11 2015 (r285633) @@ -1436,17 +1436,3 @@ chgkqcnt(struct uidinfo *uip, int diff, return (chglimit(uip, &uip->ui_kqcnt, diff, max, "kqcnt")); } - -void -lim_update_thread(struct thread *td) -{ - struct proc *p; - struct plimit *lim; - - p = td->td_proc; - lim = td->td_limit; - PROC_LOCK_ASSERT(p, MA_OWNED); - td->td_limit = lim_hold(p->p_limit); - if (lim != NULL) - lim_free(lim); -} Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/kern/kern_thread.c Thu Jul 16 14:30:11 2015 (r285633) @@ -409,9 +409,9 @@ void thread_cow_free(struct thread *td) { - if (td->td_ucred) + if (td->td_ucred != NULL) crfree(td->td_ucred); - if (td->td_limit) + if (td->td_limit != NULL) lim_free(td->td_limit); } @@ -419,15 +419,27 @@ void thread_cow_update(struct thread *td) { struct proc *p; + struct ucred *oldcred; + struct plimit *oldlimit; p = td->td_proc; + oldcred = NULL; + oldlimit = NULL; PROC_LOCK(p); - if (td->td_ucred != p->p_ucred) - cred_update_thread(td); - if (td->td_limit != p->p_limit) - lim_update_thread(td); + if (td->td_ucred != p->p_ucred) { + oldcred = td->td_ucred; + td->td_ucred = crhold(p->p_ucred); + } + if (td->td_limit != p->p_limit) { + oldlimit = td->td_limit; + td->td_limit = lim_hold(p->p_limit); + } td->td_cowgen = p->p_cowgen; PROC_UNLOCK(p); + if (oldcred != NULL) + crfree(oldcred); + if (oldlimit != NULL) + lim_free(oldlimit); } /* Modified: head/sys/sys/resourcevar.h ============================================================================== --- head/sys/sys/resourcevar.h Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/sys/resourcevar.h Thu Jul 16 14:30:11 2015 (r285633) @@ -159,7 +159,5 @@ void ui_racct_foreach(void (*callback)( void *arg2, void *arg3), void *arg2, void *arg3); #endif -void lim_update_thread(struct thread *td); - #endif /* _KERNEL */ #endif /* !_SYS_RESOURCEVAR_H_ */ Modified: head/sys/sys/ucred.h ============================================================================== --- head/sys/sys/ucred.h Thu Jul 16 13:57:05 2015 (r285632) +++ head/sys/sys/ucred.h Thu Jul 16 14:30:11 2015 (r285633) @@ -105,7 +105,6 @@ void change_svuid(struct ucred *newcred, void crcopy(struct ucred *dest, struct ucred *src); struct ucred *crcopysafe(struct proc *p, struct ucred *cr); struct ucred *crdup(struct ucred *cr); -void cred_update_thread(struct thread *td); void proc_set_cred_init(struct proc *p, struct ucred *cr); struct ucred *proc_set_cred(struct proc *p, struct ucred *cr); void crfree(struct ucred *cr); From owner-svn-src-head@freebsd.org Thu Jul 16 15:26:38 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C82139A34A2; Thu, 16 Jul 2015 15:26:38 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B48831FDF; Thu, 16 Jul 2015 15:26:38 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GFQceh044150; Thu, 16 Jul 2015 15:26:38 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GFQceM044149; Thu, 16 Jul 2015 15:26:38 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201507161526.t6GFQceM044149@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jul 2015 15:26:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285636 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 15:26:39 -0000 Author: mjg Date: Thu Jul 16 15:26:37 2015 New Revision: 285636 URL: https://svnweb.freebsd.org/changeset/base/285636 Log: fd: partially deduplicate fdescfree and fdescfree_remapped This also moves vrele of cdir/rdir/jdir vnodes earlier, which should not matter. Modified: head/sys/kern/kern_descrip.c Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Thu Jul 16 15:13:17 2015 (r285635) +++ head/sys/kern/kern_descrip.c Thu Jul 16 15:26:37 2015 (r285636) @@ -2110,18 +2110,46 @@ retry: /* * Release a filedesc structure. */ -void -fdescfree(struct thread *td) +static void +fdescfree_fds(struct thread *td, struct filedesc *fdp, bool needclose) { - struct proc *p; struct filedesc0 *fdp0; - struct filedesc *fdp; struct freetable *ft, *tft; struct filedescent *fde; struct file *fp; - struct vnode *cdir, *jdir, *rdir; int i; + for (i = 0; i <= fdp->fd_lastfile; i++) { + fde = &fdp->fd_ofiles[i]; + fp = fde->fde_file; + if (fp != NULL) { + fdefree_last(fde); + if (needclose) + (void) closef(fp, td); + else + fdrop(fp, td); + } + } + + if (NDSLOTS(fdp->fd_nfiles) > NDSLOTS(NDFILE)) + free(fdp->fd_map, M_FILEDESC); + if (fdp->fd_nfiles > NDFILE) + free(fdp->fd_files, M_FILEDESC); + + fdp0 = (struct filedesc0 *)fdp; + SLIST_FOREACH_SAFE(ft, &fdp0->fd_free, ft_next, tft) + free(ft->ft_table, M_FILEDESC); + + fddrop(fdp); +} + +void +fdescfree(struct thread *td) +{ + struct proc *p; + struct filedesc *fdp; + struct vnode *cdir, *jdir, *rdir; + p = td->td_proc; fdp = p->p_fd; MPASS(fdp != NULL); @@ -2134,7 +2162,7 @@ fdescfree(struct thread *td) } #endif - if (td->td_proc->p_fdtol != NULL) + if (p->p_fdtol != NULL) fdclearlocks(td); PROC_LOCK(p); @@ -2153,24 +2181,6 @@ fdescfree(struct thread *td) fdp->fd_jdir = NULL; FILEDESC_XUNLOCK(fdp); - for (i = 0; i <= fdp->fd_lastfile; i++) { - fde = &fdp->fd_ofiles[i]; - fp = fde->fde_file; - if (fp != NULL) { - fdefree_last(fde); - (void) closef(fp, td); - } - } - - if (NDSLOTS(fdp->fd_nfiles) > NDSLOTS(NDFILE)) - free(fdp->fd_map, M_FILEDESC); - if (fdp->fd_nfiles > NDFILE) - free(fdp->fd_files, M_FILEDESC); - - fdp0 = (struct filedesc0 *)fdp; - SLIST_FOREACH_SAFE(ft, &fdp0->fd_free, ft_next, tft) - free(ft->ft_table, M_FILEDESC); - if (cdir != NULL) vrele(cdir); if (rdir != NULL) @@ -2178,35 +2188,12 @@ fdescfree(struct thread *td) if (jdir != NULL) vrele(jdir); - fddrop(fdp); + fdescfree_fds(td, fdp, 1); } void fdescfree_remapped(struct filedesc *fdp) { - struct filedesc0 *fdp0; - struct filedescent *fde; - struct file *fp; - struct freetable *ft, *tft; - int i; - - for (i = 0; i <= fdp->fd_lastfile; i++) { - fde = &fdp->fd_ofiles[i]; - fp = fde->fde_file; - if (fp != NULL) { - fdefree_last(fde); - (void) closef(fp, NULL); - } - } - - if (NDSLOTS(fdp->fd_nfiles) > NDSLOTS(NDFILE)) - free(fdp->fd_map, M_FILEDESC); - if (fdp->fd_nfiles > NDFILE) - free(fdp->fd_files, M_FILEDESC); - - fdp0 = (struct filedesc0 *)fdp; - SLIST_FOREACH_SAFE(ft, &fdp0->fd_free, ft_next, tft) - free(ft->ft_table, M_FILEDESC); if (fdp->fd_cdir != NULL) vrele(fdp->fd_cdir); @@ -2214,7 +2201,8 @@ fdescfree_remapped(struct filedesc *fdp) vrele(fdp->fd_rdir); if (fdp->fd_jdir != NULL) vrele(fdp->fd_jdir); - fddrop(fdp); + + fdescfree_fds(curthread, fdp, 0); } /* From owner-svn-src-head@freebsd.org Thu Jul 16 15:43:56 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF84E9A3939; Thu, 16 Jul 2015 15:43:56 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 D08572000; Thu, 16 Jul 2015 15:43:56 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GFhuKf052275; Thu, 16 Jul 2015 15:43:56 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GFhuaU052274; Thu, 16 Jul 2015 15:43:56 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507161543.t6GFhuaU052274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Thu, 16 Jul 2015 15:43:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285637 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 15:43:57 -0000 Author: ed Date: Thu Jul 16 15:43:55 2015 New Revision: 285637 URL: https://svnweb.freebsd.org/changeset/base/285637 Log: Fix a small typo: "the the". Spotted by: wblock Modified: head/share/man/man9/random.9 Modified: head/share/man/man9/random.9 ============================================================================== --- head/share/man/man9/random.9 Thu Jul 16 15:26:37 2015 (r285636) +++ head/share/man/man9/random.9 Thu Jul 16 15:43:55 2015 (r285637) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" " -.Dd July 14, 2015 +.Dd July 16, 2015 .Dt RANDOM 9 .Os .Sh NAME @@ -129,7 +129,7 @@ on The .Fa uio argument points to a buffer where random data should be stored. -This function only returns data if the the random device is seeded. +This function only returns data if the random device is seeded. It blocks if unseeded, except when the .Fa nonblock From owner-svn-src-head@freebsd.org Thu Jul 16 16:08:42 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA7099A3F36; Thu, 16 Jul 2015 16:08:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 999661EAC; Thu, 16 Jul 2015 16:08:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GG8gao060579; Thu, 16 Jul 2015 16:08:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GG8fHt060576; Thu, 16 Jul 2015 16:08:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201507161608.t6GG8fHt060576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 16 Jul 2015 16:08:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285638 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 16:08:42 -0000 Author: hselasky Date: Thu Jul 16 16:08:40 2015 New Revision: 285638 URL: https://svnweb.freebsd.org/changeset/base/285638 Log: Optimise the DWC OTG host mode driver's transmit path: 1) Use the TX FIFO empty interrupts to poll the transmit FIFO usage, instead of using own software counters and waiting for SOF interrupts. Assume that enough FIFO space is available to execute one USB OUT transfer of any kind when the TX FIFO is empty. 2) Use the host channel halted event to asynchronously wait for host channels to be disabled instead of waiting for SOF interrupts. This results in less turnaround time for re-using host channels and at the same time increases the performance. The network transmit performance measured by "iperf" for the "RPi-B v1 2011/12" board, increased from 45MBit/s to 65Mbit/s after applying the changes above. No regressions seen using: - High Speed (BULK, CONTROL, INTERRUPT) - Full Speed (All transfer types) - Low Speed (Control and Interrupt) MFC after: 1 month Submitted by: Daisuke Aoyama Modified: head/sys/dev/usb/controller/dwc_otg.c head/sys/dev/usb/controller/dwc_otg.h head/sys/dev/usb/controller/dwc_otgreg.h Modified: head/sys/dev/usb/controller/dwc_otg.c ============================================================================== --- head/sys/dev/usb/controller/dwc_otg.c Thu Jul 16 15:43:55 2015 (r285637) +++ head/sys/dev/usb/controller/dwc_otg.c Thu Jul 16 16:08:40 2015 (r285638) @@ -1,5 +1,6 @@ /* $FreeBSD$ */ /*- + * Copyright (c) 2015 Daisuke Aoyama. All rights reserved. * Copyright (c) 2012 Hans Petter Selasky. All rights reserved. * Copyright (c) 2010-2011 Aleksandr Rybalko. All rights reserved. * @@ -151,7 +152,6 @@ static void dwc_otg_do_poll(struct usb_b static void dwc_otg_standard_done(struct usb_xfer *); static void dwc_otg_root_intr(struct dwc_otg_softc *); static void dwc_otg_interrupt_poll_locked(struct dwc_otg_softc *); -static void dwc_otg_host_channel_disable(struct dwc_otg_softc *, uint8_t); /* * Here is a configuration that the chip supports. @@ -224,7 +224,7 @@ dwc_otg_init_fifo(struct dwc_otg_softc * /* split equally for IN and OUT */ fifo_size /= 2; - /* align to 4 bytes boundary */ + /* Align to 4 bytes boundary (refer to PGM) */ fifo_size &= ~3; /* set global receive FIFO size */ @@ -237,13 +237,6 @@ dwc_otg_init_fifo(struct dwc_otg_softc * return (EINVAL); } - /* disable any leftover host channels */ - for (x = 0; x != sc->sc_host_ch_max; x++) { - if (sc->sc_chan_state[x].wait_sof == 0) - continue; - dwc_otg_host_channel_disable(sc, x); - } - if (mode == DWC_MODE_HOST) { /* reset active endpoints */ @@ -252,6 +245,8 @@ dwc_otg_init_fifo(struct dwc_otg_softc * /* split equally for periodic and non-periodic */ fifo_size /= 2; + DPRINTF("PTX/NPTX FIFO=%u\n", fifo_size); + /* align to 4 bytes boundary */ fifo_size &= ~3; @@ -262,7 +257,7 @@ dwc_otg_init_fifo(struct dwc_otg_softc * tx_start += fifo_size; for (x = 0; x != sc->sc_host_ch_max; x++) { - /* disable all host interrupts */ + /* enable all host interrupts */ DWC_OTG_WRITE_4(sc, DOTG_HCINTMSK(x), HCINT_DEFAULT_MASK); } @@ -274,13 +269,6 @@ dwc_otg_init_fifo(struct dwc_otg_softc * /* reset host channel state */ memset(sc->sc_chan_state, 0, sizeof(sc->sc_chan_state)); - /* reset FIFO TX levels */ - sc->sc_tx_cur_p_level = 0; - sc->sc_tx_cur_np_level = 0; - - /* store maximum periodic and non-periodic FIFO TX size */ - sc->sc_tx_max_size = fifo_size; - /* enable all host channel interrupts */ DWC_OTG_WRITE_4(sc, DOTG_HAINTMSK, (1U << sc->sc_host_ch_max) - 1U); @@ -358,15 +346,8 @@ dwc_otg_init_fifo(struct dwc_otg_softc * /* reset active endpoints */ sc->sc_active_rx_ep = 0; - /* reset periodic and non-periodic FIFO TX size */ - sc->sc_tx_max_size = fifo_size; - /* reset host channel state */ memset(sc->sc_chan_state, 0, sizeof(sc->sc_chan_state)); - - /* reset FIFO TX levels */ - sc->sc_tx_cur_p_level = 0; - sc->sc_tx_cur_np_level = 0; } return (0); } @@ -612,10 +593,39 @@ dwc_otg_clear_hcint(struct dwc_otg_softc } static uint8_t -dwc_otg_host_channel_alloc(struct dwc_otg_softc *sc, struct dwc_otg_td *td, uint8_t is_out) +dwc_otg_host_check_fifo_empty(struct dwc_otg_softc *sc, struct dwc_otg_td *td) +{ + uint32_t temp; + + temp = DWC_OTG_READ_4(sc, DOTG_GINTSTS); + + if (td->ep_type == UE_INTERRUPT || + td->ep_type == UE_ISOCHRONOUS) { + if (!(temp & GINTSTS_PTXFEMP)) { + DPRINTF("Periodic TX FIFO is not empty\n"); + if (!(sc->sc_irq_mask & GINTMSK_PTXFEMPMSK)) { + sc->sc_irq_mask |= GINTMSK_PTXFEMPMSK; + DWC_OTG_WRITE_4(sc, DOTG_GINTMSK, sc->sc_irq_mask); + } + return (1); /* busy */ + } + } else { + if (!(temp & GINTSTS_NPTXFEMP)) { + DPRINTF("Non-periodic TX FIFO is not empty\n"); + if (!(sc->sc_irq_mask & GINTMSK_NPTXFEMPMSK)) { + sc->sc_irq_mask |= GINTMSK_NPTXFEMPMSK; + DWC_OTG_WRITE_4(sc, DOTG_GINTMSK, sc->sc_irq_mask); + } + return (1); /* busy */ + } + } + return (0); /* ready for transmit */ +} + +static uint8_t +dwc_otg_host_channel_alloc(struct dwc_otg_softc *sc, + struct dwc_otg_td *td, uint8_t is_out) { - uint32_t tx_p_size; - uint32_t tx_np_size; uint8_t x; if (td->channel < DWC_OTG_MAX_CHANNELS) @@ -627,45 +637,19 @@ dwc_otg_host_channel_alloc(struct dwc_ot /* compute needed TX FIFO size */ if (is_out != 0) { - if (td->ep_type == UE_ISOCHRONOUS) { - tx_p_size = td->max_packet_size; - tx_np_size = 0; - if (td->hcsplt != 0 && tx_p_size > HCSPLT_XACTLEN_BURST) - tx_p_size = HCSPLT_XACTLEN_BURST; - if ((sc->sc_tx_cur_p_level + tx_p_size) > sc->sc_tx_max_size) { - DPRINTF("Too little FIFO space\n"); - return (1); /* too little FIFO */ - } - } else { - tx_p_size = 0; - tx_np_size = td->max_packet_size; - if (td->hcsplt != 0 && tx_np_size > HCSPLT_XACTLEN_BURST) - tx_np_size = HCSPLT_XACTLEN_BURST; - if ((sc->sc_tx_cur_np_level + tx_np_size) > sc->sc_tx_max_size) { - DPRINTF("Too little FIFO space\n"); - return (1); /* too little FIFO */ - } - } - } else { - /* not a TX transaction */ - tx_p_size = 0; - tx_np_size = 0; + if (dwc_otg_host_check_fifo_empty(sc, td) != 0) + return (1); /* busy - cannot transfer data */ } for (x = 0; x != sc->sc_host_ch_max; x++) { + /* check if channel is allocated */ if (sc->sc_chan_state[x].allocated != 0) continue; /* check if channel is still enabled */ - if (sc->sc_chan_state[x].wait_sof != 0) + if (sc->sc_chan_state[x].wait_halted != 0) continue; sc->sc_chan_state[x].allocated = 1; - sc->sc_chan_state[x].tx_p_size = tx_p_size; - sc->sc_chan_state[x].tx_np_size = tx_np_size; - - /* keep track of used TX FIFO, if any */ - sc->sc_tx_cur_p_level += tx_p_size; - sc->sc_tx_cur_np_level += tx_np_size; /* clear interrupts */ dwc_otg_clear_hcint(sc, x); @@ -689,6 +673,7 @@ dwc_otg_host_channel_alloc(struct dwc_ot static void dwc_otg_host_channel_free(struct dwc_otg_softc *sc, struct dwc_otg_td *td) { + uint32_t hcchar; uint8_t x; if (td->channel >= DWC_OTG_MAX_CHANNELS) @@ -702,18 +687,8 @@ dwc_otg_host_channel_free(struct dwc_otg /* * We need to let programmed host channels run till complete - * else the host channel will stop functioning. Assume that - * after a fixed given amount of time the host channel is no - * longer doing any USB traffic: + * else the host channel will stop functioning. */ - if (td->ep_type == UE_ISOCHRONOUS) { - /* double buffered */ - sc->sc_chan_state[x].wait_sof = DWC_OTG_SLOT_IDLE_MAX; - } else { - /* single buffered */ - sc->sc_chan_state[x].wait_sof = DWC_OTG_SLOT_IDLE_MIN; - } - sc->sc_chan_state[x].allocated = 0; /* ack any pending messages */ @@ -724,6 +699,16 @@ dwc_otg_host_channel_free(struct dwc_otg /* clear active channel */ sc->sc_active_rx_ep &= ~(1 << x); + + /* disable host channel */ + hcchar = DWC_OTG_READ_4(sc, DOTG_HCCHAR(x)); + if (hcchar & HCCHAR_CHENA) { + DPRINTF("Halting channel %d\n", x); + DWC_OTG_WRITE_4(sc, DOTG_HCCHAR(x), + hcchar | HCCHAR_CHDIS); + sc->sc_chan_state[x].wait_halted = 1; + /* don't write HCCHAR until the channel is halted */ + } } static void @@ -1402,7 +1387,8 @@ receive_pkt: hcchar |= HCCHAR_EPDIR_IN; /* receive complete split ASAP */ - if ((sc->sc_last_frame_num & 1) != 0) + if ((sc->sc_last_frame_num & 1) != 0 && + (td->ep_type == UE_INTERRUPT || td->ep_type == UE_ISOCHRONOUS)) hcchar |= HCCHAR_ODDFRM; else hcchar &= ~HCCHAR_ODDFRM; @@ -1450,7 +1436,8 @@ receive_spkt: DWC_OTG_WRITE_4(sc, DOTG_HCSPLT(channel), td->hcsplt); /* send after next SOF event */ - if ((sc->sc_last_frame_num & 1) == 0) + if ((sc->sc_last_frame_num & 1) == 0 && + (td->ep_type == UE_INTERRUPT || td->ep_type == UE_ISOCHRONOUS)) td->hcchar |= HCCHAR_ODDFRM; else td->hcchar &= ~HCCHAR_ODDFRM; @@ -1890,7 +1877,8 @@ send_isoc_pkt: hcchar &= ~HCCHAR_EPDIR_IN; /* send after next SOF event */ - if ((sc->sc_last_frame_num & 1) == 0) + if ((sc->sc_last_frame_num & 1) == 0 && + (td->ep_type == UE_INTERRUPT || td->ep_type == UE_ISOCHRONOUS)) hcchar |= HCCHAR_ODDFRM; else hcchar &= ~HCCHAR_ODDFRM; @@ -1954,7 +1942,8 @@ send_cpkt: hcchar &= ~HCCHAR_EPDIR_IN; /* receive complete split ASAP */ - if ((sc->sc_last_frame_num & 1) != 0) + if ((sc->sc_last_frame_num & 1) != 0 && + (td->ep_type == UE_INTERRUPT || td->ep_type == UE_ISOCHRONOUS)) hcchar |= HCCHAR_ODDFRM; else hcchar &= ~HCCHAR_ODDFRM; @@ -2350,31 +2339,6 @@ dwc_otg_timer_stop(struct dwc_otg_softc usb_callout_stop(&sc->sc_timer); } -static void -dwc_otg_host_channel_disable(struct dwc_otg_softc *sc, uint8_t x) -{ - uint32_t hcchar; - - hcchar = DWC_OTG_READ_4(sc, DOTG_HCCHAR(x)); - - /* disable host channel, if any */ - if (hcchar & (HCCHAR_CHENA | HCCHAR_CHDIS)) { - /* disable channel */ - DWC_OTG_WRITE_4(sc, DOTG_HCCHAR(x), - HCCHAR_CHENA | HCCHAR_CHDIS); - /* wait for chip to get its brains in order */ - sc->sc_chan_state[x].wait_sof = 2; - } - - /* release TX FIFO usage, if any */ - sc->sc_tx_cur_p_level -= sc->sc_chan_state[x].tx_p_size; - sc->sc_tx_cur_np_level -= sc->sc_chan_state[x].tx_np_size; - - /* don't release TX FIFO usage twice */ - sc->sc_chan_state[x].tx_p_size = 0; - sc->sc_chan_state[x].tx_np_size = 0; -} - static uint16_t dwc_otg_compute_isoc_rx_tt_slot(struct dwc_otg_tt_info *pinfo) { @@ -2392,7 +2356,6 @@ dwc_otg_update_host_transfer_schedule_lo struct dwc_otg_td *td; uint16_t temp; uint16_t slot; - uint8_t x; temp = DWC_OTG_READ_4(sc, DOTG_HFNUM) & DWC_OTG_FRAME_MASK; @@ -2403,15 +2366,6 @@ dwc_otg_update_host_transfer_schedule_lo TAILQ_INIT(&head); - for (x = 0; x != sc->sc_host_ch_max; x++) { - if (sc->sc_chan_state[x].wait_sof == 0) - continue; - - sc->sc_needsof = 1; - if (--(sc->sc_chan_state[x].wait_sof) == 0) - dwc_otg_host_channel_disable(sc, x); - } - if ((temp & 7) == 0) { /* reset the schedule */ @@ -2631,6 +2585,12 @@ repeat: if (temp != GRXSTSRD_STP_DATA && temp != GRXSTSRD_STP_COMPLETE && temp != GRXSTSRD_OUT_DATA) { + /* check for halted channel */ + if (temp == GRXSTSRH_HALTED) { + ep_no = GRXSTSRD_CHNUM_GET(sc->sc_last_rx_status); + sc->sc_chan_state[ep_no].wait_halted = 0; + DPRINTFN(5, "channel halt complete ch=%u\n", ep_no); + } dwc_otg_common_rx_ack(sc); goto repeat; } @@ -2764,6 +2724,12 @@ dwc_otg_filter_interrupt(void *arg) if ((status & DWC_OTG_MSK_GINT_THREAD_IRQ) != 0) retval = FILTER_SCHEDULE_THREAD; + /* clear FIFO empty interrupts */ + if (status & sc->sc_irq_mask & + (GINTSTS_PTXFEMP | GINTSTS_NPTXFEMP)) { + sc->sc_irq_mask &= ~(GINTSTS_PTXFEMP | GINTSTS_NPTXFEMP); + DWC_OTG_WRITE_4(sc, DOTG_GINTMSK, sc->sc_irq_mask); + } /* clear all IN endpoint interrupts */ if (status & GINTSTS_IEPINT) { uint32_t temp; Modified: head/sys/dev/usb/controller/dwc_otg.h ============================================================================== --- head/sys/dev/usb/controller/dwc_otg.h Thu Jul 16 15:43:55 2015 (r285637) +++ head/sys/dev/usb/controller/dwc_otg.h Thu Jul 16 16:08:40 2015 (r285638) @@ -37,7 +37,7 @@ #define DWC_OTG_TT_SLOT_MAX 8 #define DWC_OTG_SLOT_IDLE_MAX 3 #define DWC_OTG_SLOT_IDLE_MIN 2 -#define DWC_OTG_NAK_MAX 8 /* 1 ms */ +#define DWC_OTG_NAK_MAX 16 /* 16 NAKs = 2 ms */ #ifndef DWC_OTG_TX_MAX_FIFO_SIZE #define DWC_OTG_TX_MAX_FIFO_SIZE DWC_OTG_MAX_TXN #endif @@ -156,10 +156,8 @@ struct dwc_otg_profile { struct dwc_otg_chan_state { uint16_t allocated; - uint16_t wait_sof; + uint16_t wait_halted; uint32_t hcint; - uint16_t tx_p_size; /* periodic */ - uint16_t tx_np_size; /* non-periodic */ }; struct dwc_otg_softc { @@ -181,9 +179,6 @@ struct dwc_otg_softc { uint32_t sc_tx_bounce_buffer[MAX(512 * DWC_OTG_MAX_TXP, 1024) / 4]; uint32_t sc_fifo_size; - uint32_t sc_tx_max_size; - uint32_t sc_tx_cur_p_level; /* periodic */ - uint32_t sc_tx_cur_np_level; /* non-periodic */ uint32_t sc_irq_mask; uint32_t sc_last_rx_status; uint32_t sc_out_ctl[DWC_OTG_MAX_ENDPOINTS]; Modified: head/sys/dev/usb/controller/dwc_otgreg.h ============================================================================== --- head/sys/dev/usb/controller/dwc_otgreg.h Thu Jul 16 15:43:55 2015 (r285637) +++ head/sys/dev/usb/controller/dwc_otgreg.h Thu Jul 16 16:08:40 2015 (r285638) @@ -47,6 +47,8 @@ #define DOTG_GGPIO 0x0038 #define DOTG_GUID 0x003C #define DOTG_GSNPSID 0x0040 +#define DOTG_GSNPSID_REV_2_80a 0x4f54280a /* RPi model B/RPi2 */ +#define DOTG_GSNPSID_REV_3_10a 0x4f54310a /* ODROID-C1 */ #define DOTG_GHWCFG1 0x0044 #define DOTG_GHWCFG2 0x0048 #define DOTG_GHWCFG3 0x004C From owner-svn-src-head@freebsd.org Thu Jul 16 16:32:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC1439A3382; Thu, 16 Jul 2015 16:32:58 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 BC7E71DE5; Thu, 16 Jul 2015 16:32:58 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GGWwIS072337; Thu, 16 Jul 2015 16:32:58 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GGWwJA072336; Thu, 16 Jul 2015 16:32:58 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201507161632.t6GGWwJA072336@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Thu, 16 Jul 2015 16:32:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285639 - head/sys/dev/e1000 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 16:32:58 -0000 Author: sbruno Date: Thu Jul 16 16:32:57 2015 New Revision: 285639 URL: https://svnweb.freebsd.org/changeset/base/285639 Log: Add an adapter CORE lock in the DDB hook em_dump_queue to avoid WITNESS panic in em_init_locked() while debugging. MFC after: 2 weeks Sponsored by: Limelight Networks Modified: head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Thu Jul 16 16:08:40 2015 (r285638) +++ head/sys/dev/e1000/if_em.c Thu Jul 16 16:32:57 2015 (r285639) @@ -5998,7 +5998,9 @@ DB_COMMAND(em_reset_dev, em_ddb_reset_de dev = devclass_get_device(dc, index); if (device_get_driver(dev) == &em_driver) { struct adapter *adapter = device_get_softc(dev); + EM_CORE_LOCK(adapter); em_init_locked(adapter); + EM_CORE_UNLOCK(adapter); } } } From owner-svn-src-head@freebsd.org Thu Jul 16 17:36:11 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 700EB9A3100; Thu, 16 Jul 2015 17:36:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 5C76A1529; Thu, 16 Jul 2015 17:36:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 553191ACD; Thu, 16 Jul 2015 17:36:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id DCFA9B8A5; Thu, 16 Jul 2015 17:36:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id 2ybwFvyQ7Zdv; Thu, 16 Jul 2015 17:35:49 +0000 (UTC) Message-ID: <55A7EB74.8090503@FreeBSD.org> DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 4571AB89D Date: Thu, 16 Jul 2015 10:35:48 -0700 From: Bryan Drewery Organization: FreeBSD User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Mark Murray , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, gjb@FreeBSD.org Subject: Re: svn commit: r285550 - head/usr.bin/w References: <201507141853.t6EIrPcY072885@repo.freebsd.org> In-Reply-To: <201507141853.t6EIrPcY072885@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 17:36:11 -0000 On 7/14/15 11:53 AM, Mark Murray wrote: > Author: markm > Date: Tue Jul 14 18:53:24 2015 > New Revision: 285550 > URL: https://svnweb.freebsd.org/changeset/base/285550 > > Log: > Widen the host field so that a full IPv6 address will be seen. Relnotes: yes! MFC: Please -- Regards, Bryan Drewery From owner-svn-src-head@freebsd.org Thu Jul 16 17:45:46 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7A499A3389; Thu, 16 Jul 2015 17:45:46 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 517A81DC6; Thu, 16 Jul 2015 17:45:45 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 7C4FA1046508; Fri, 17 Jul 2015 03:45:37 +1000 (AEST) Date: Fri, 17 Jul 2015 03:45:36 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Sean Bruno cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285639 - head/sys/dev/e1000 In-Reply-To: <201507161632.t6GGWwJA072336@repo.freebsd.org> Message-ID: <20150717030840.B3034@besplex.bde.org> References: <201507161632.t6GGWwJA072336@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=ItbjC+Lg c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=KZVWSx2yD1shGd9gcesA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 17:45:46 -0000 On Thu, 16 Jul 2015, Sean Bruno wrote: > Log: > Add an adapter CORE lock in the DDB hook em_dump_queue to avoid WITNESS > panic in em_init_locked() while debugging. It is a bug to lock anything from within ddb. Witness or something should panic when such a lock is attempted. > Modified: head/sys/dev/e1000/if_em.c > ============================================================================== > --- head/sys/dev/e1000/if_em.c Thu Jul 16 16:08:40 2015 (r285638) > +++ head/sys/dev/e1000/if_em.c Thu Jul 16 16:32:57 2015 (r285639) > @@ -5998,7 +5998,9 @@ DB_COMMAND(em_reset_dev, em_ddb_reset_de The primary bug is probably existence of this command. You just can't call arbitary code from within ddb. It wanders into locks galore. It should detect this and panic, but is usually not that smart. It is more likely to deadlock. The existence of the dump command is an even larger error. The existence of the panic command is a smaller error. Panic enters a separate state, similar to ddb's but not as strong. Panic is a last resort, so deadlocks and recursive panics in it are acceptable. It has some defense against endless recursion. > dev = devclass_get_device(dc, index); > if (device_get_driver(dev) == &em_driver) { New-bus calls should be locked by Giant or something like that. This is probably not done, and the bug is apparently not detected. > struct adapter *adapter = device_get_softc(dev); > + EM_CORE_LOCK(adapter); > em_init_locked(adapter); A bug was previously detected here by an assertion that the lock is held. Acquiring the lock breaks the the detection. em's mutex is not recursive, so attempting to acquire it from within ddb like this gives deadlock if it is already held. In the previous version, suppose you turn off witness so that the bug is detected. Then em's mutext locking just doesn't work. > + EM_CORE_UNLOCK(adapter); > } > } > } I used checks like the following in a very old version to detect broken locking calls from within ddb. This had to be turned off because there are too many broken callers: X diff -u2 kern_mutex.c~ kern_mutex.c X --- kern_mutex.c~ Wed Apr 7 20:39:12 2004 X +++ kern_mutex.c Sat Feb 3 04:25:00 2007 X @@ -244,4 +246,9 @@ X { X X +#ifdef DDB1 X + if (db_active) X + db_printf("_mtx_lock_flags: called with db_active @ %s:%d\n", X + file, line); X +#endif X MPASS(curthread != NULL); X KASSERT(m->mtx_object.lo_class == &lock_class_mtx_sleep, X @@ -348,4 +355,10 @@ X { X X +#ifdef DDB1 X + if (db_active) X + db_printf( X + "_mtx_lock_spin_flags: called with db_active @ %s:%d\n", X + file, line); X +#endif X MPASS(curthread != NULL); X KASSERT(m->mtx_object.lo_class == &lock_class_mtx_spin, X @@ -432,4 +445,9 @@ X #endif X X +#ifdef DDB1 X + if (db_active) X + db_printf("_mtx_lock_sleep: called with db_active @ %s:%d\n", X + file, line); X +#endif X if (mtx_owned(m)) { X KASSERT((m->mtx_object.lo_flags & LO_RECURSABLE) != 0, X @@ -568,4 +585,9 @@ X int i = 0; X X +#ifdef DDB1 X + if (db_active) X + db_printf("_mtx_lock_spin: called with db_active @ %s:%d\n", X + file, line); X +#endif X if (LOCK_LOG_TEST(&m->mtx_object, opts)) X CTR1(KTR_LOCK, "_mtx_lock_spin: %p spinning", m); The correct way to implement many ddb commands and all instances of call commands from within ddb is to use a trampoline like gdb does in userland (or just like signals are handled in userland). ddb must be exited from to run the command, and must regain control after running the command. The dangers of calling arbitrary code are then more obvious. The code is then run without ddb's stopping of other CPUs and masking of interrupts on the current CPU. Sometimes that allows it to work, but sometimes it just races more with other CPUs. The code acts at it is run by a trap handler that may be entered by any CPU at any address. An intermediate mode where ddb exits but keeps other CPUs stopped and interrupts masked might be useful but is hard to implement. ddb is too stupid to implement this even for trace traps. Single stepping is implemented by exiting ddb for every step (thus starting other CPUs, etc., for every step) after setting the trace flag to arrange for a trap after the next instruction. It is the normal path of execution that is exited to, so this is relatively safe, but ddb still loses all control and other threads and interrupts may change the state that you are trying to see changed 1 step at a time. Bruce From owner-svn-src-head@freebsd.org Thu Jul 16 17:48:38 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 846A39A3418; Thu, 16 Jul 2015 17:48:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 748EC1FD0; Thu, 16 Jul 2015 17:48:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GHmcO3001387; Thu, 16 Jul 2015 17:48:38 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GHmcux001386; Thu, 16 Jul 2015 17:48:38 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201507161748.t6GHmcux001386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 16 Jul 2015 17:48:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285640 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 17:48:38 -0000 Author: gjb Date: Thu Jul 16 17:48:37 2015 New Revision: 285640 URL: https://svnweb.freebsd.org/changeset/base/285640 Log: Document r285550, w(1) now displays the full IPv6 address of a remote connected host. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jul 16 16:32:57 2015 (r285639) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Jul 16 17:48:37 2015 (r285640) @@ -391,6 +391,10 @@ sponsor="&scaleengine;">The &man.fstyp.8; utility has been updated to be able to detect &man.zfs.8; and &man.geli.8; filesystems. + + The &man.w.1; utility has been updated + to display the full IPv6 remote address of the host from which + a user is connected. From owner-svn-src-head@freebsd.org Thu Jul 16 18:02:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 124589A37A6; Thu, 16 Jul 2015 18:02:52 +0000 (UTC) (envelope-from bjkfbsd@gmail.com) Received: from mail-wg0-x22c.google.com (mail-wg0-x22c.google.com [IPv6:2a00:1450:400c:c00::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9EB2019D2; Thu, 16 Jul 2015 18:02:51 +0000 (UTC) (envelope-from bjkfbsd@gmail.com) Received: by wgxm20 with SMTP id m20so64587819wgx.3; Thu, 16 Jul 2015 11:02:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Q12+8HzSGFbsxLSkHuuuua6RwMl8LhGBcsOed5cnX1M=; b=tOZExBsapKEQaERD32z721Niwrs6vABs97gi+16aAMUwwbMYWXZytEatCZsjeAUNr1 xn/IZKEuKPIRxE3Gd1fvlQMZ/68q82hnb76O7m/THByLpSIu9MJbFI/xdqYdXIT6/5KN gKaHy86DBkozfo0NQzfCxKeTBqgU0CX+js7OqeS0+v9NoqMRJy8Tpxhb0NTgyQ7ReoOd 7vSSZG/6Ck7ZED3VELQonBdowLREqGPvgGhaCYGETwADu/mSz8LXDsdyMAznI8S6Uf5w 4X4o+rvEh9JYEtYwuZa4BSJ/pa+8GZPwS3XMRx2aMUdelrGvL4aAYLi02bQVr7QjjsSX cUIA== MIME-Version: 1.0 X-Received: by 10.180.83.72 with SMTP id o8mr7590033wiy.27.1437069769899; Thu, 16 Jul 2015 11:02:49 -0700 (PDT) Received: by 10.27.87.195 with HTTP; Thu, 16 Jul 2015 11:02:49 -0700 (PDT) In-Reply-To: <201507161046.t6GAkrEt028784@repo.freebsd.org> References: <201507161046.t6GAkrEt028784@repo.freebsd.org> Date: Thu, 16 Jul 2015 14:02:49 -0400 Message-ID: Subject: Re: svn commit: r285627 - in head/sys: arm/arm arm/at91 arm/cavium/cns11xx arm/samsung/s3c2xx0 arm/xscale/i80321 arm/xscale/i8134x arm/xscale/ixp425 arm/xscale/pxa arm64/arm64 ddb i386/i386 powerpc/boo... From: Benjamin Kaduk To: Zbigniew Bodek Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 18:02:52 -0000 On Thu, Jul 16, 2015 at 6:46 AM, Zbigniew Bodek wrote: > Author: zbb > Date: Thu Jul 16 10:46:52 2015 > New Revision: 285627 > URL: https://svnweb.freebsd.org/changeset/base/285627 > > Log: > Fix KSTACK_PAGES issue when the default value was changed in KERNCONF > > If KSTACK_PAGES was changed to anything alse than the default, > the value from param.h was taken instead in some places and > the value from KENRCONF in some others. This resulted in > inconsistency which caused corruption in SMP envorinment. > > Ensure all places where KSTACK_PAGES are used the opt_kstack_pages.h > is included. > This leads to the question: why is KSTACK_PAGES defined in param.h at all, if the value will be incorrect for custom kernel configurations? -Ben From owner-svn-src-head@freebsd.org Thu Jul 16 18:24:10 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 994499A3CE4; Thu, 16 Jul 2015 18:24:10 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 87F90161E; Thu, 16 Jul 2015 18:24:10 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GIOAcv017399; Thu, 16 Jul 2015 18:24:10 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GIO7Wj017388; Thu, 16 Jul 2015 18:24:07 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507161824.t6GIO7Wj017388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Thu, 16 Jul 2015 18:24:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285641 - in head/sys: amd64/cloudabi64 compat/cloudabi conf contrib/cloudabi sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 18:24:10 -0000 Author: ed Date: Thu Jul 16 18:24:06 2015 New Revision: 285641 URL: https://svnweb.freebsd.org/changeset/base/285641 Log: Add a sysentvec for CloudABI on x86-64. Summary: For CloudABI we need to put two things on the stack of new processes: the argument data (a binary blob; not strings) and a startup data structure. The startup data structure contains interesting things such as a pointer to the ELF program header, the thread ID of the initial thread, a stack smashing protection canary, and a pointer to the argument data. Fetching system call arguments and setting the return value is similar to FreeBSD. The only differences are that system call 0 does not exist and that we call into cloudabi_convert_errno() to convert the error code. We also need this function in a couple of other places, so we'd better reuse it here. Reviewers: dchagin, kib Reviewed By: kib Subscribers: imp Differential Revision: https://reviews.freebsd.org/D3098 Added: head/sys/amd64/cloudabi64/ head/sys/amd64/cloudabi64/cloudabi64_sysvec.c (contents, props changed) head/sys/compat/cloudabi/cloudabi_errno.c (contents, props changed) head/sys/compat/cloudabi/cloudabi_util.h (contents, props changed) Modified: head/sys/conf/files head/sys/conf/files.amd64 head/sys/contrib/cloudabi/syscalldefs_md.h head/sys/contrib/cloudabi/syscalldefs_mi.h head/sys/sys/sysent.h Added: head/sys/amd64/cloudabi64/cloudabi64_sysvec.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/cloudabi64/cloudabi64_sysvec.c Thu Jul 16 18:24:06 2015 (r285641) @@ -0,0 +1,230 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * 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 + +extern const char *cloudabi64_syscallnames[]; +extern struct sysent cloudabi64_sysent[]; + +static register_t * +cloudabi64_copyout_strings(struct image_params *imgp) +{ + uintptr_t begin; + size_t len; + + /* Copy out program arguments. */ + len = imgp->args->begin_envv - imgp->args->begin_argv; + begin = rounddown2(USRSTACK - len, sizeof(register_t)); + copyout(imgp->args->begin_argv, (void *)begin, len); + return ((register_t *)begin); +} + +static int +cloudabi64_fixup(register_t **stack_base, struct image_params *imgp) +{ + char canarybuf[64]; + Elf64_Auxargs *args; + void *argdata, *canary; + size_t argdatalen; + int error; + + /* Store canary for stack smashing protection. */ + argdata = *stack_base; + arc4rand(canarybuf, sizeof(canarybuf), 0); + *stack_base -= howmany(sizeof(canarybuf), sizeof(register_t)); + canary = *stack_base; + error = copyout(canarybuf, canary, sizeof(canarybuf)); + if (error != 0) + return (error); + + /* + * Compute length of program arguments. As the argument data is + * binary safe, we had to add a trailing null byte in + * exec_copyin_data_fds(). Undo this by reducing the length. + */ + args = (Elf64_Auxargs *)imgp->auxargs; + argdatalen = imgp->args->begin_envv - imgp->args->begin_argv; + if (argdatalen > 0) + --argdatalen; + + /* Write out an auxiliary vector. */ + cloudabi64_auxv_t auxv[] = { +#define VAL(type, val) { .a_type = (type), .a_val = (val) } +#define PTR(type, ptr) { .a_type = (type), .a_ptr = (uintptr_t)(ptr) } + PTR(CLOUDABI_AT_ARGDATA, argdata), + VAL(CLOUDABI_AT_ARGDATALEN, argdatalen), + PTR(CLOUDABI_AT_CANARY, canary), + VAL(CLOUDABI_AT_CANARYLEN, sizeof(canarybuf)), + VAL(CLOUDABI_AT_NCPUS, mp_ncpus), + VAL(CLOUDABI_AT_PAGESZ, args->pagesz), + PTR(CLOUDABI_AT_PHDR, args->phdr), + VAL(CLOUDABI_AT_PHNUM, args->phnum), + VAL(CLOUDABI_AT_TID, curthread->td_tid), +#undef VAL +#undef PTR + { .a_type = CLOUDABI_AT_NULL }, + }; + *stack_base -= howmany(sizeof(auxv), sizeof(register_t)); + return (copyout(auxv, *stack_base, sizeof(auxv))); +} + +static int +cloudabi64_fetch_syscall_args(struct thread *td, struct syscall_args *sa) +{ + struct trapframe *frame = td->td_frame; + + /* Obtain system call number. */ + sa->code = frame->tf_rax; + if (sa->code >= CLOUDABI64_SYS_MAXSYSCALL) + return (ENOSYS); + sa->callp = &cloudabi64_sysent[sa->code]; + + /* Fetch system call arguments. */ + sa->args[0] = frame->tf_rdi; + sa->args[1] = frame->tf_rsi; + sa->args[2] = frame->tf_rdx; + sa->args[3] = frame->tf_rcx; /* Actually %r10. */ + sa->args[4] = frame->tf_r8; + sa->args[5] = frame->tf_r9; + + /* Default system call return values. */ + td->td_retval[0] = 0; + td->td_retval[1] = frame->tf_rdx; + return (0); +} + +static void +cloudabi64_set_syscall_retval(struct thread *td, int error) +{ + struct trapframe *frame = td->td_frame; + + switch (error) { + case 0: + /* System call succeeded. */ + frame->tf_rax = td->td_retval[0]; + frame->tf_rdx = td->td_retval[1]; + frame->tf_rflags &= ~PSL_C; + break; + case ERESTART: + /* Restart system call. */ + frame->tf_rip -= frame->tf_err; + frame->tf_r10 = frame->tf_rcx; + set_pcb_flags(td->td_pcb, PCB_FULL_IRET); + break; + case EJUSTRETURN: + break; + default: + /* System call returned an error. */ + frame->tf_rax = cloudabi_convert_errno(error); + frame->tf_rflags |= PSL_C; + break; + } +} + +static struct sysentvec cloudabi64_elf_sysvec = { + .sv_size = CLOUDABI64_SYS_MAXSYSCALL, + .sv_table = cloudabi64_sysent, + .sv_fixup = cloudabi64_fixup, + .sv_name = "CloudABI ELF64", + .sv_coredump = elf64_coredump, + .sv_pagesize = PAGE_SIZE, + .sv_minuser = VM_MIN_ADDRESS, + .sv_maxuser = VM_MAXUSER_ADDRESS, + .sv_usrstack = USRSTACK, + .sv_stackprot = VM_PROT_READ | VM_PROT_WRITE, + .sv_copyout_strings = cloudabi64_copyout_strings, + .sv_flags = SV_ABI_CLOUDABI, + .sv_set_syscall_retval = cloudabi64_set_syscall_retval, + .sv_fetch_syscall_args = cloudabi64_fetch_syscall_args, + .sv_syscallnames = cloudabi64_syscallnames, +}; + +INIT_SYSENTVEC(elf_sysvec, &cloudabi64_elf_sysvec); + +static Elf64_Brandinfo cloudabi64_brand = { + .brand = ELFOSABI_CLOUDABI, + .machine = EM_X86_64, + .sysvec = &cloudabi64_elf_sysvec, + .compat_3_brand = "CloudABI", +}; + +static int +cloudabi64_modevent(module_t mod, int type, void *data) +{ + + switch (type) { + case MOD_LOAD: + if (elf64_insert_brand_entry(&cloudabi64_brand) < 0) { + printf("Failed to add CloudABI ELF brand handler\n"); + return (EINVAL); + } + return (0); + case MOD_UNLOAD: + if (elf64_brand_inuse(&cloudabi64_brand)) + return (EBUSY); + if (elf64_remove_brand_entry(&cloudabi64_brand) < 0) { + printf("Failed to remove CloudABI ELF brand handler\n"); + return (EINVAL); + } + return (0); + default: + return (EOPNOTSUPP); + } +} + +static moduledata_t cloudabi64_module = { + "cloudabi64", + cloudabi64_modevent, + NULL +}; + +DECLARE_MODULE_TIED(cloudabi64, cloudabi64_module, SI_SUB_EXEC, SI_ORDER_ANY); +MODULE_DEPEND(cloudabi64, cloudabi, 1, 1, 1); Added: head/sys/compat/cloudabi/cloudabi_errno.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/cloudabi/cloudabi_errno.c Thu Jul 16 18:24:06 2015 (r285641) @@ -0,0 +1,121 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * 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 + +/* Converts a FreeBSD errno to a CloudABI errno. */ +cloudabi_errno_t +cloudabi_convert_errno(int error) +{ + static const int table[] = { + [E2BIG] = CLOUDABI_E2BIG, + [EACCES] = CLOUDABI_EACCES, + [EADDRINUSE] = CLOUDABI_EADDRINUSE, + [EADDRNOTAVAIL] = CLOUDABI_EADDRNOTAVAIL, + [EAFNOSUPPORT] = CLOUDABI_EAFNOSUPPORT, + [EAGAIN] = CLOUDABI_EAGAIN, + [EALREADY] = CLOUDABI_EALREADY, + [EBADF] = CLOUDABI_EBADF, + [EBADMSG] = CLOUDABI_EBADMSG, + [EBUSY] = CLOUDABI_EBUSY, + [ECANCELED] = CLOUDABI_ECANCELED, + [ECHILD] = CLOUDABI_ECHILD, + [ECONNABORTED] = CLOUDABI_ECONNABORTED, + [ECONNREFUSED] = CLOUDABI_ECONNREFUSED, + [ECONNRESET] = CLOUDABI_ECONNRESET, + [EDEADLK] = CLOUDABI_EDEADLK, + [EDESTADDRREQ] = CLOUDABI_EDESTADDRREQ, + [EDOM] = CLOUDABI_EDOM, + [EDQUOT] = CLOUDABI_EDQUOT, + [EEXIST] = CLOUDABI_EEXIST, + [EFAULT] = CLOUDABI_EFAULT, + [EFBIG] = CLOUDABI_EFBIG, + [EHOSTUNREACH] = CLOUDABI_EHOSTUNREACH, + [EIDRM] = CLOUDABI_EIDRM, + [EILSEQ] = CLOUDABI_EILSEQ, + [EINPROGRESS] = CLOUDABI_EINPROGRESS, + [EINTR] = CLOUDABI_EINTR, + [EINVAL] = CLOUDABI_EINVAL, + [EIO] = CLOUDABI_EIO, + [EISCONN] = CLOUDABI_EISCONN, + [EISDIR] = CLOUDABI_EISDIR, + [ELOOP] = CLOUDABI_ELOOP, + [EMFILE] = CLOUDABI_EMFILE, + [EMLINK] = CLOUDABI_EMLINK, + [EMSGSIZE] = CLOUDABI_EMSGSIZE, + [EMULTIHOP] = CLOUDABI_EMULTIHOP, + [ENAMETOOLONG] = CLOUDABI_ENAMETOOLONG, + [ENETDOWN] = CLOUDABI_ENETDOWN, + [ENETRESET] = CLOUDABI_ENETRESET, + [ENETUNREACH] = CLOUDABI_ENETUNREACH, + [ENFILE] = CLOUDABI_ENFILE, + [ENOBUFS] = CLOUDABI_ENOBUFS, + [ENODEV] = CLOUDABI_ENODEV, + [ENOENT] = CLOUDABI_ENOENT, + [ENOEXEC] = CLOUDABI_ENOEXEC, + [ENOLCK] = CLOUDABI_ENOLCK, + [ENOLINK] = CLOUDABI_ENOLINK, + [ENOMEM] = CLOUDABI_ENOMEM, + [ENOMSG] = CLOUDABI_ENOMSG, + [ENOPROTOOPT] = CLOUDABI_ENOPROTOOPT, + [ENOSPC] = CLOUDABI_ENOSPC, + [ENOSYS] = CLOUDABI_ENOSYS, + [ENOTCONN] = CLOUDABI_ENOTCONN, + [ENOTDIR] = CLOUDABI_ENOTDIR, + [ENOTEMPTY] = CLOUDABI_ENOTEMPTY, + [ENOTRECOVERABLE] = CLOUDABI_ENOTRECOVERABLE, + [ENOTSOCK] = CLOUDABI_ENOTSOCK, + [ENOTSUP] = CLOUDABI_ENOTSUP, + [ENOTTY] = CLOUDABI_ENOTTY, + [ENXIO] = CLOUDABI_ENXIO, + [EOVERFLOW] = CLOUDABI_EOVERFLOW, + [EOWNERDEAD] = CLOUDABI_EOWNERDEAD, + [EPERM] = CLOUDABI_EPERM, + [EPIPE] = CLOUDABI_EPIPE, + [EPROTO] = CLOUDABI_EPROTO, + [EPROTONOSUPPORT] = CLOUDABI_EPROTONOSUPPORT, + [EPROTOTYPE] = CLOUDABI_EPROTOTYPE, + [ERANGE] = CLOUDABI_ERANGE, + [EROFS] = CLOUDABI_EROFS, + [ESPIPE] = CLOUDABI_ESPIPE, + [ESRCH] = CLOUDABI_ESRCH, + [ESTALE] = CLOUDABI_ESTALE, + [ETIMEDOUT] = CLOUDABI_ETIMEDOUT, + [ETXTBSY] = CLOUDABI_ETXTBSY, + [EXDEV] = CLOUDABI_EXDEV, + [ENOTCAPABLE] = CLOUDABI_ENOTCAPABLE, + }; + + /* Unknown error: fall back to returning ENOSYS. */ + if (error < 0 || error >= nitems(table) || table[error] == 0) + return (error == 0 ? 0 : CLOUDABI_ENOSYS); + return (table[error]); +} Added: head/sys/compat/cloudabi/cloudabi_util.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/cloudabi/cloudabi_util.h Thu Jul 16 18:24:06 2015 (r285641) @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * 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 _CLOUDABI_UTIL_H_ +#define _CLOUDABI_UTIL_H_ + +#include + +/* Converts a FreeBSD errno to a CloudABI errno. */ +cloudabi_errno_t cloudabi_convert_errno(int); + +#endif Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Thu Jul 16 17:48:37 2015 (r285640) +++ head/sys/conf/files Thu Jul 16 18:24:06 2015 (r285641) @@ -254,6 +254,7 @@ cddl/dev/systrace/systrace.c optional d cddl/dev/prototype.c optional dtrace_prototype | dtraceall compile-with "${CDDL_C}" fs/nfsclient/nfs_clkdtrace.c optional dtnfscl nfscl | dtraceall nfscl compile-with "${CDDL_C}" compat/cloudabi/cloudabi_clock.c optional compat_cloudabi64 +compat/cloudabi/cloudabi_errno.c optional compat_cloudabi64 compat/cloudabi/cloudabi_fd.c optional compat_cloudabi64 compat/cloudabi/cloudabi_file.c optional compat_cloudabi64 compat/cloudabi/cloudabi_futex.c optional compat_cloudabi64 Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Thu Jul 16 17:48:37 2015 (r285640) +++ head/sys/conf/files.amd64 Thu Jul 16 18:24:06 2015 (r285641) @@ -137,6 +137,7 @@ amd64/amd64/trap.c standard amd64/amd64/uio_machdep.c standard amd64/amd64/uma_machdep.c standard amd64/amd64/vm_machdep.c standard +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}" Modified: head/sys/contrib/cloudabi/syscalldefs_md.h ============================================================================== --- head/sys/contrib/cloudabi/syscalldefs_md.h Thu Jul 16 17:48:37 2015 (r285640) +++ head/sys/contrib/cloudabi/syscalldefs_md.h Thu Jul 16 18:24:06 2015 (r285641) @@ -43,6 +43,19 @@ typedef void IDENT(threadentry_t)(cloudabi_tid_t, PTR(void)); +// Auxiliary vector entry, used to provide paramters on startup. +typedef struct { + uint32_t a_type; + union { + MEMBER(IDENT(size_t)) a_val; + MEMBER(PTR(void)) a_ptr; + }; +} IDENT(auxv_t); +ASSERT_OFFSET(auxv_t, a_type, 0, 0); +ASSERT_OFFSET(auxv_t, a_val, 4, 8); +ASSERT_OFFSET(auxv_t, a_ptr, 4, 8); +ASSERT_SIZE(auxv_t, 8, 16); + typedef struct { MEMBER(PTR(const void)) iov_base; MEMBER(IDENT(size_t)) iov_len; @@ -162,29 +175,6 @@ ASSERT_OFFSET(send_out_t, so_datalen, 0, ASSERT_SIZE(send_out_t, 4, 8); typedef struct { - MEMBER(PTR(const void)) sd_arg; // Program argument data. - MEMBER(IDENT(size_t)) sd_arglen; // Program argument data size. - - MEMBER(PTR(void)) sd_elf_phdr; // ELF program header. - MEMBER(IDENT(size_t)) sd_elf_phdrlen; // ELF program header length. - - MEMBER(cloudabi_tid_t) sd_thread_id; // Thread ID. - MEMBER(uint64_t) sd_random_seed; // Random seed, used for SSP. - - MEMBER(uint32_t) sd_ncpus; // Number of CPUs. - MEMBER(uint32_t) sd_pagesize; // Page size. -} IDENT(startup_data_t); -ASSERT_OFFSET(startup_data_t, sd_arg, 0, 0); -ASSERT_OFFSET(startup_data_t, sd_arglen, 4, 8); -ASSERT_OFFSET(startup_data_t, sd_elf_phdr, 8, 16); -ASSERT_OFFSET(startup_data_t, sd_elf_phdrlen, 12, 24); -ASSERT_OFFSET(startup_data_t, sd_thread_id, 16, 32); -ASSERT_OFFSET(startup_data_t, sd_random_seed, 24, 40); -ASSERT_OFFSET(startup_data_t, sd_ncpus, 32, 48); -ASSERT_OFFSET(startup_data_t, sd_pagesize, 36, 52); -ASSERT_SIZE(startup_data_t, 40, 56); - -typedef struct { MEMBER(cloudabi_userdata_t) userdata; MEMBER(uint16_t) flags; MEMBER(cloudabi_eventtype_t) type; Modified: head/sys/contrib/cloudabi/syscalldefs_mi.h ============================================================================== --- head/sys/contrib/cloudabi/syscalldefs_mi.h Thu Jul 16 17:48:37 2015 (r285640) +++ head/sys/contrib/cloudabi/syscalldefs_mi.h Thu Jul 16 18:24:06 2015 (r285641) @@ -40,6 +40,19 @@ #define CLOUDABI_ADVICE_SEQUENTIAL 5 #define CLOUDABI_ADVICE_WILLNEED 6 +// Auxiliary vector entries. All entries that are also part of the +// x86-64 ABI use the same number. All extensions start at 256. +#define CLOUDABI_AT_ARGDATA 256 +#define CLOUDABI_AT_ARGDATALEN 257 +#define CLOUDABI_AT_CANARY 258 +#define CLOUDABI_AT_CANARYLEN 259 +#define CLOUDABI_AT_NCPUS 260 +#define CLOUDABI_AT_NULL 0 +#define CLOUDABI_AT_PAGESZ 6 +#define CLOUDABI_AT_PHDR 3 +#define CLOUDABI_AT_PHNUM 4 +#define CLOUDABI_AT_TID 261 + // Clocks. #define CLOUDABI_CLOCK_MONOTONIC 1 #define CLOUDABI_CLOCK_PROCESS_CPUTIME_ID 2 Modified: head/sys/sys/sysent.h ============================================================================== --- head/sys/sys/sysent.h Thu Jul 16 17:48:37 2015 (r285640) +++ head/sys/sys/sysent.h Thu Jul 16 18:24:06 2015 (r285641) @@ -153,6 +153,7 @@ struct sysentvec { /* same as ELFOSABI_XXX, to prevent header pollution */ #define SV_ABI_LINUX 3 #define SV_ABI_FREEBSD 9 +#define SV_ABI_CLOUDABI 17 #define SV_ABI_UNDEF 255 #ifdef _KERNEL From owner-svn-src-head@freebsd.org Thu Jul 16 18:29:29 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C37F9A3D87; Thu, 16 Jul 2015 18:29:29 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 22C6A1954; Thu, 16 Jul 2015 18:29:29 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZFnuP-000Drv-BB; Thu, 16 Jul 2015 19:29:25 +0100 Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: <1437055729.1334.359.camel@freebsd.org> Date: Thu, 16 Jul 2015 19:29:19 +0100 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 18:29:29 -0000 > On 16 Jul 2015, at 15:08, Ian Lepore wrote: >=20 > On Thu, 2015-07-16 at 06:39 +0100, Mark Murray wrote: >>> On 15 Jul 2015, at 23:43, Adrian Chadd = wrote: >>>=20 >>>> - Add harvesting of slab allocator events. This needs to be checked = for >>>> weighing down the allocator code. >>>=20 >>> Hi, >>>=20 >>> Is this really doing it upon every one of those events? eg, for each >>> mbuf alloc through UMA? >>=20 >> Only if you turn it on! >>=20 >> M >>=20 >=20 > In random_harvestq_init() I see >=20 > harvest_context.hc_source_mask =3D RANDOM_HARVEST_EVERYTHING_MASK; >=20 > and >=20 > #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << = (RANDOM_ENVIRONMENTAL_END > + 1)) - 1) >=20 > So doesn't that include the RANDOM_FAST flag that controls harvesting > during every UMA alloc and free call? And that harvesting appears to = be > anything but fast, at least at a glance... it looks like it passes the > entire struct uma_zone to the jenkins hash function... is there really > useful entropy in all the data in that struct? Well spotted, but fear not. All sources are on at startup, and this is to ensure that the generator has maximal access to entropy while booting. One of the default duties of etc/rc.d/random is to turn off the UMA and ATIME sources. These may be turned on if you want them, but by default on the fully booted system they are off. See =E2=80=98sysctl kern.random.harvest.mask_symbolic=E2=80=99 and note = that the disabled sources are in []. I have yet to do a full set of benchmarks, but I have discussed this with RWatson. A silly benchmark (make world) shows little effect, but I will be doing this properly in coming months. In answer to you final question - yes. The UMA entropy is a bit spread out, but it is good. M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Thu Jul 16 18:44:19 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A374A9A32F6; Thu, 16 Jul 2015 18:44:19 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 9347E1C5B; Thu, 16 Jul 2015 18:44:19 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GIiJkD026810; Thu, 16 Jul 2015 18:44:19 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GIiJVK026809; Thu, 16 Jul 2015 18:44:19 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201507161844.t6GIiJVK026809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Thu, 16 Jul 2015 18:44:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285642 - head/crypto/openssh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 18:44:19 -0000 Author: vangyzen Date: Thu Jul 16 18:44:18 2015 New Revision: 285642 URL: https://svnweb.freebsd.org/changeset/base/285642 Log: ssh: canonicize the host name before looking it up in the host file Re-apply r99054 by des in 2002. This was accidentally dropped by the update to OpenSSH 6.5p1 (r261320). This change is actually taken from r387082 of ports/security/openssh-portable/files/patch-ssh.c PR: 198043 Differential Revision: https://reviews.freebsd.org/D3103 Reviewed by: des Approved by: kib (mentor) MFC after: 3 days Relnotes: yes Sponsored by: Dell Inc. Modified: head/crypto/openssh/ssh.c Modified: head/crypto/openssh/ssh.c ============================================================================== --- head/crypto/openssh/ssh.c Thu Jul 16 18:24:06 2015 (r285641) +++ head/crypto/openssh/ssh.c Thu Jul 16 18:44:18 2015 (r285642) @@ -1001,6 +1001,23 @@ main(int ac, char **av) shorthost[strcspn(thishost, ".")] = '\0'; snprintf(portstr, sizeof(portstr), "%d", options.port); + /* Find canonic host name. */ + if (strchr(host, '.') == 0) { + struct addrinfo hints; + struct addrinfo *ai = NULL; + int errgai; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = options.address_family; + hints.ai_flags = AI_CANONNAME; + hints.ai_socktype = SOCK_STREAM; + errgai = getaddrinfo(host, NULL, &hints, &ai); + if (errgai == 0) { + if (ai->ai_canonname != NULL) + host = xstrdup(ai->ai_canonname); + freeaddrinfo(ai); + } + } + if (options.local_command != NULL) { debug3("expanding LocalCommand: %s", options.local_command); cp = options.local_command; From owner-svn-src-head@freebsd.org Thu Jul 16 19:40:21 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B37A9A43AC; Thu, 16 Jul 2015 19:40:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1044918DF; Thu, 16 Jul 2015 19:40:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GJeKUn049379; Thu, 16 Jul 2015 19:40:20 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GJeJ9F049372; Thu, 16 Jul 2015 19:40:19 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507161940.t6GJeJ9F049372@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 16 Jul 2015 19:40:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285643 - in head/sys: amd64/amd64 cddl/dev/dtrace/amd64 cddl/dev/dtrace/i386 i386/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 19:40:21 -0000 Author: kib Date: Thu Jul 16 19:40:18 2015 New Revision: 285643 URL: https://svnweb.freebsd.org/changeset/base/285643 Log: When checking for the valid value of the frame pointer, verify that it belongs to the kernel stack address range for the thread. Right now, code checks that new frame is not farther then KSTACK_PAGES pages from the current frame, which allows the address to point past the top of the stack. Reviewed by: andrew, emaste, markj Differential revision: https://reviews.freebsd.org/D3108 Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/amd64/amd64/stack_machdep.c head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c head/sys/cddl/dev/dtrace/i386/dtrace_isa.c head/sys/i386/i386/stack_machdep.c Modified: head/sys/amd64/amd64/stack_machdep.c ============================================================================== --- head/sys/amd64/amd64/stack_machdep.c Thu Jul 16 18:44:18 2015 (r285642) +++ head/sys/amd64/amd64/stack_machdep.c Thu Jul 16 19:40:18 2015 (r285643) @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #include static void -stack_capture(struct stack *st, register_t rbp) +stack_capture(struct thread *td, struct stack *st, register_t rbp) { struct amd64_frame *frame; vm_offset_t callpc; @@ -56,8 +56,8 @@ stack_capture(struct stack *st, register if (stack_put(st, callpc) == -1) break; if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)rbp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= td->td_kstack + + td->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } @@ -74,7 +74,7 @@ stack_save_td(struct stack *st, struct t panic("stack_save_td: running"); rbp = td->td_pcb->pcb_rbp; - stack_capture(st, rbp); + stack_capture(td, st, rbp); } void @@ -83,5 +83,5 @@ stack_save(struct stack *st) register_t rbp; __asm __volatile("movq %%rbp,%0" : "=r" (rbp)); - stack_capture(st, rbp); + stack_capture(curthread, st, rbp); } Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c ============================================================================== --- head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c Thu Jul 16 18:44:18 2015 (r285642) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c Thu Jul 16 19:40:18 2015 (r285643) @@ -89,8 +89,8 @@ dtrace_getpcstack(pc_t *pcstack, int pcs } if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)rbp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= curthread->td_kstack + + curthread->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } @@ -469,8 +469,8 @@ dtrace_getstackdepth(int aframes) break; depth++; if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)rbp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= curthread->td_kstack + + curthread->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } Modified: head/sys/cddl/dev/dtrace/i386/dtrace_isa.c ============================================================================== --- head/sys/cddl/dev/dtrace/i386/dtrace_isa.c Thu Jul 16 18:44:18 2015 (r285642) +++ head/sys/cddl/dev/dtrace/i386/dtrace_isa.c Thu Jul 16 19:40:18 2015 (r285643) @@ -92,8 +92,8 @@ dtrace_getpcstack(pc_t *pcstack, int pcs } if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)ebp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= curthread->td_kstack + + curthread->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } @@ -485,8 +485,8 @@ dtrace_getstackdepth(int aframes) break; depth++; if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)ebp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= curthread->td_kstack + + curthread->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } Modified: head/sys/i386/i386/stack_machdep.c ============================================================================== --- head/sys/i386/i386/stack_machdep.c Thu Jul 16 18:44:18 2015 (r285642) +++ head/sys/i386/i386/stack_machdep.c Thu Jul 16 19:40:18 2015 (r285643) @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #include static void -stack_capture(struct stack *st, register_t ebp) +stack_capture(struct thread *td, struct stack *st, register_t ebp) { struct i386_frame *frame; vm_offset_t callpc; @@ -56,8 +56,8 @@ stack_capture(struct stack *st, register if (stack_put(st, callpc) == -1) break; if (frame->f_frame <= frame || - (vm_offset_t)frame->f_frame >= - (vm_offset_t)ebp + KSTACK_PAGES * PAGE_SIZE) + (vm_offset_t)frame->f_frame >= td->td_kstack + + td->td_kstack_pages * PAGE_SIZE) break; frame = frame->f_frame; } @@ -74,7 +74,7 @@ stack_save_td(struct stack *st, struct t panic("stack_save_td: running"); ebp = td->td_pcb->pcb_ebp; - stack_capture(st, ebp); + stack_capture(td, st, ebp); } void @@ -83,5 +83,5 @@ stack_save(struct stack *st) register_t ebp; __asm __volatile("movl %%ebp,%0" : "=r" (ebp)); - stack_capture(st, ebp); + stack_capture(curthread, st, ebp); } From owner-svn-src-head@freebsd.org Thu Jul 16 19:46:54 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CABB19A45BE for ; Thu, 16 Jul 2015 19:46:54 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: from mail-ob0-f173.google.com (mail-ob0-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 960981D92 for ; Thu, 16 Jul 2015 19:46:54 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: by obbop1 with SMTP id op1so53489757obb.2 for ; Thu, 16 Jul 2015 12:46:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=tXyK255M+Ia7a9txntlSMQhpR86GVDtmpQQPvUG9eVw=; b=cXRozTVzK5ibcoUZ5/wi/9ggaRv5cR0Mc/2aHFS7kHNX/KXs3wyQ4XZ6/s27CWeQ3r WDcIRUwNXOi3KejpQgD0Wghyt3BNRtN1hsf8tnuCmmWhY+EcWm/IWRem7owC4Tgvwh7H SyVguEq1Q2J8E4w88TFzoDkIvpOho7Er8Z4bsug3IOjJK/gYlGHZRzro8KvCaIUWIleP bEAlp7BpyhtmlELFI0vj1mGpSjYcxM5bomywly8pULGW1/DAMbxAhTtVoFi0ZFWhdwqc h8F+zjjMizmcasxiqxFgB3AFGHG2X8Z8Bjdq6ClI/CjXg1xRqcc8aw4ZgSy1xFTiPjlm GbHQ== X-Gm-Message-State: ALoCoQlYBxR2stTCeNzduzR3vU60g2xcVFF0Al7MtQh8tnK0VVEU4fs1sEhiFx/IgjfL2jkf8Y+G MIME-Version: 1.0 X-Received: by 10.60.50.232 with SMTP id f8mr10003665oeo.55.1437076007760; Thu, 16 Jul 2015 12:46:47 -0700 (PDT) Received: by 10.76.0.46 with HTTP; Thu, 16 Jul 2015 12:46:47 -0700 (PDT) X-Originating-IP: [84.27.222.46] In-Reply-To: <201507141853.t6EIrPcY072885@repo.freebsd.org> References: <201507141853.t6EIrPcY072885@repo.freebsd.org> Date: Thu, 16 Jul 2015 21:46:47 +0200 Message-ID: Subject: Re: svn commit: r285550 - head/usr.bin/w From: Ed Schouten To: Mark Murray Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 19:46:54 -0000 Hi Mark, 2015-07-14 20:53 GMT+02:00 Mark Murray : > Log: > Widen the host field so that a full IPv6 address will be seen. > > Modified: > head/usr.bin/w/w.c > > Modified: head/usr.bin/w/w.c > ============================================================================== > --- head/usr.bin/w/w.c Tue Jul 14 18:45:15 2015 (r285549) > +++ head/usr.bin/w/w.c Tue Jul 14 18:53:24 2015 (r285550) > @@ -120,7 +120,7 @@ static struct entry { > > #define W_DISPUSERSIZE 10 > #define W_DISPLINESIZE 8 > -#define W_DISPHOSTSIZE 24 > +#define W_DISPHOSTSIZE 40 > > static void pr_header(time_t *, int); > static struct stat *ttystat(char *); Quick question: does this column width adjust itself automatically? The "WHAT" column of w(1) is already pretty narrow. -- Ed Schouten Nuxi, 's-Hertogenbosch, the Netherlands KvK/VAT number: 62051717 From owner-svn-src-head@freebsd.org Thu Jul 16 19:52:56 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7CEC9A474F; Thu, 16 Jul 2015 19:52:56 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 739C81134; Thu, 16 Jul 2015 19:52:56 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZFpDC-000Dva-4g; Thu, 16 Jul 2015 20:52:54 +0100 Subject: Re: svn commit: r285550 - head/usr.bin/w Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: Date: Thu, 16 Jul 2015 20:52:48 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201507141853.t6EIrPcY072885@repo.freebsd.org> To: Ed Schouten X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 19:52:56 -0000 > On 16 Jul 2015, at 20:46, Ed Schouten wrote: >=20 > Hi Mark, Hi! > 2015-07-14 20:53 GMT+02:00 Mark Murray : >> Log: >> Widen the host field so that a full IPv6 address will be seen. >>=20 >=20 > Quick question: does this column width adjust itself automatically? > The "WHAT" column of w(1) is already pretty narrow. No. This column is statically sized. The =E2=80=9Cwhat" column=E2=80=9D prints arbitrary length lines. I=E2=80=99= ve hardly ever seen anything long in practice though. M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Thu Jul 16 19:55:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2DB59A47C9; Thu, 16 Jul 2015 19:55:52 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 BD15D154F; Thu, 16 Jul 2015 19:55:52 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZFpG3-000Dw7-1a; Thu, 16 Jul 2015 20:55:51 +0100 Subject: Re: svn commit: r285550 - head/usr.bin/w Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: <55A7EB74.8090503@FreeBSD.org> Date: Thu, 16 Jul 2015 20:55:44 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, gjb@FreeBSD.org Content-Transfer-Encoding: quoted-printable Message-Id: <457552D3-FCC8-43D2-B9B6-E51CEAF3EB56@FreeBSD.org> References: <201507141853.t6EIrPcY072885@repo.freebsd.org> <55A7EB74.8090503@FreeBSD.org> To: Bryan Drewery X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 19:55:53 -0000 > On 16 Jul 2015, at 18:35, Bryan Drewery wrote: >=20 > On 7/14/15 11:53 AM, Mark Murray wrote: >> Author: markm >> Date: Tue Jul 14 18:53:24 2015 >> New Revision: 285550 >> URL: https://svnweb.freebsd.org/changeset/base/285550 >>=20 >> Log: >> Widen the host field so that a full IPv6 address will be seen. >=20 > Relnotes: yes! Damn you! ;-) I=E2=80=99ve just had to install the kitchen sink to do this! (The building is a bit out of date; the optional ports don=E2=80=99t exist, and installing textproc/fpo resulted in a tool that did not make a readable PDF). > MFC: Please Er, sure! M --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Thu Jul 16 19:57:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 150759A47F8; Thu, 16 Jul 2015 19:57:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 004D616B4; Thu, 16 Jul 2015 19:57:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id ECA6115BE; Thu, 16 Jul 2015 19:57:17 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id A47AEBD0B; Thu, 16 Jul 2015 19:57:17 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id Zz7p-3raupGw; Thu, 16 Jul 2015 19:57:15 +0000 (UTC) Message-ID: <55A80C98.8030702@FreeBSD.org> DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com DFA30BD03 Date: Thu, 16 Jul 2015 12:57:12 -0700 From: Bryan Drewery Organization: FreeBSD User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Mark R V Murray CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, gjb@FreeBSD.org Subject: Re: svn commit: r285550 - head/usr.bin/w References: <201507141853.t6EIrPcY072885@repo.freebsd.org> <55A7EB74.8090503@FreeBSD.org> <457552D3-FCC8-43D2-B9B6-E51CEAF3EB56@FreeBSD.org> In-Reply-To: <457552D3-FCC8-43D2-B9B6-E51CEAF3EB56@FreeBSD.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 19:57:18 -0000 On 7/16/15 12:55 PM, Mark R V Murray wrote: >=20 >> On 16 Jul 2015, at 18:35, Bryan Drewery wrote: >> >> On 7/14/15 11:53 AM, Mark Murray wrote: >>> Author: markm >>> Date: Tue Jul 14 18:53:24 2015 >>> New Revision: 285550 >>> URL: https://svnweb.freebsd.org/changeset/base/285550 >>> >>> Log: >>> Widen the host field so that a full IPv6 address will be seen. >> >> Relnotes: yes! >=20 > Damn you! ;-) >=20 > I=E2=80=99ve just had to install the kitchen sink to do this! >=20 > (The building is a bit out of date; the optional ports > don=E2=80=99t exist, and installing textproc/fpo resulted in a > tool that did not make a readable PDF). >=20 If you put the literal 'Relnotes: yes' in your commit then gjb/re@ will document it for you :) >> MFC: Please >=20 > Er, sure! >=20 > M >=20 --=20 Regards, Bryan Drewery From owner-svn-src-head@freebsd.org Thu Jul 16 22:07:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF9D19A4184; Thu, 16 Jul 2015 22:07:14 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 E003A19C9; Thu, 16 Jul 2015 22:07:14 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GM7Euj009956; Thu, 16 Jul 2015 22:07:14 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GM7ECT009955; Thu, 16 Jul 2015 22:07:14 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201507162207.t6GM7ECT009955@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 16 Jul 2015 22:07:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285644 - head/contrib/sqlite3 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:07:15 -0000 Author: pfg Date: Thu Jul 16 22:07:13 2015 New Revision: 285644 URL: https://svnweb.freebsd.org/changeset/base/285644 Log: sqlite: clean a couple of invocations of memcpy(3) Found almost accidentally by our native gcc when enhanced with FORTIFY_SOURCE. Submitted by: Oliver Pinter Sponosored by: Google Inc. GSoC 2015 Modified: head/contrib/sqlite3/sqlite3.c Modified: head/contrib/sqlite3/sqlite3.c ============================================================================== --- head/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 (r285643) +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 (r285644) @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ pWal->hdr.isInit = 1; pWal->hdr.iVersion = WALINDEX_MAX_VERSION; walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); walShmBarrier(pWal); - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); } /* From owner-svn-src-head@freebsd.org Thu Jul 16 22:16:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A579A431C; Thu, 16 Jul 2015 22:16:13 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wi0-x232.google.com (mail-wi0-x232.google.com [IPv6:2a00:1450:400c:c05::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD4CA1F2A; Thu, 16 Jul 2015 22:16:12 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by wibud3 with SMTP id ud3so26093235wib.1; Thu, 16 Jul 2015 15:16:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=aPSONctiyERezB5QawWR5VyEVCroH+dOI0468lXDEMU=; b=eIGfYOVel+JG6XYzSI9Rf+M5WPOkH/3EmC674k+X/jO8Kyqe4IUlsMzci6Gf5fqOFR FJwxOTmcZvxV2qTbDvrdUf/E7tcxbpW3rljNvYTYawHmkLOKvRG9ZYCTDVfKsiZ9VV/E ltKl1TAccqBaXTuiP2pSy/9sL9h9CS5bGW5zxAwDiPndb3OoBTo1VWUBhesadZ7k2c9p Y6tZ/A85ibmah3hSK8usOgrJ5cqku/CWUG/JTkJsKZ9LlIN49xceb0C6QhVMSqYyYXau 5HSIa7uTLGWlTy2fnsCnM3aFyVeq5Ty9YL5FAP/G8MB/xE/YTkwQhkA7vN5QW/ug730M jxpg== X-Received: by 10.180.182.40 with SMTP id eb8mr6141918wic.47.1437084970460; Thu, 16 Jul 2015 15:16:10 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id js3sm15249930wjc.5.2015.07.16.15.16.09 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jul 2015 15:16:09 -0700 (PDT) Sender: Baptiste Daroussin Date: Fri, 17 Jul 2015 00:16:07 +0200 From: Baptiste Daroussin To: "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 Message-ID: <20150716221607.GA82595@ivaldir.etoilebsd.net> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7AUc2qLy4jB3hD7Z" Content-Disposition: inline In-Reply-To: <201507162207.t6GM7ECT009955@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:16:13 -0000 --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Jul 16, 2015 at 10:07:14PM +0000, Pedro F. Giffuni wrote: > Author: pfg > Date: Thu Jul 16 22:07:13 2015 > New Revision: 285644 > URL: https://svnweb.freebsd.org/changeset/base/285644 >=20 > Log: > sqlite: clean a couple of invocations of memcpy(3) > =20 > Found almost accidentally by our native gcc when enhanced with > FORTIFY_SOURCE. > =20 > Submitted by: Oliver Pinter > Sponosored by: Google Inc. GSoC 2015 >=20 > Modified: > head/contrib/sqlite3/sqlite3.c >=20 > Modified: head/contrib/sqlite3/sqlite3.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/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 (r285643) > +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 (r285644) > @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ > pWal->hdr.isInit =3D 1; > pWal->hdr.iVersion =3D WALINDEX_MAX_VERSION; > walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); > - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); > + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)= ); > walShmBarrier(pWal); > - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); > + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)= ); > } > =20 > /* >=20 Have you upstreamed that? because given how sqlite3.c file is done it will = be a pain on next update to not drop this change! Best regards, Bapt --7AUc2qLy4jB3hD7Z Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlWoLScACgkQ8kTtMUmk6ExQ1gCfd03OVZVWN1rFOODjA45YvJjJ 9ngAoJWIsXSJp135eZ7p+hwE2v1Fy0qG =mXQH -----END PGP SIGNATURE----- --7AUc2qLy4jB3hD7Z-- From owner-svn-src-head@freebsd.org Thu Jul 16 22:22:49 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3CC19A4414 for ; Thu, 16 Jul 2015 22:22:49 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) by mx1.freebsd.org (Postfix) with SMTP id 7CD1212FE for ; Thu, 16 Jul 2015 22:22:49 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Thu, 16 Jul 2015 22:21:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6GMMkhR054834; Thu, 16 Jul 2015 16:22:46 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1437085366.1334.367.camel@freebsd.org> Subject: Re: svn commit: r285644 - head/contrib/sqlite3 From: Ian Lepore To: "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Thu, 16 Jul 2015 16:22:46 -0600 In-Reply-To: <201507162207.t6GM7ECT009955@repo.freebsd.org> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:22:49 -0000 On Thu, 2015-07-16 at 22:07 +0000, Pedro F. Giffuni wrote: > Author: pfg > Date: Thu Jul 16 22:07:13 2015 > New Revision: 285644 > URL: https://svnweb.freebsd.org/changeset/base/285644 > > Log: > sqlite: clean a couple of invocations of memcpy(3) > > Found almost accidentally by our native gcc when enhanced with > FORTIFY_SOURCE. > > Submitted by: Oliver Pinter > Sponosored by: Google Inc. GSoC 2015 > > Modified: > head/contrib/sqlite3/sqlite3.c > > Modified: head/contrib/sqlite3/sqlite3.c > ============================================================================== > --- head/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 (r285643) > +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 (r285644) > @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ > pWal->hdr.isInit = 1; > pWal->hdr.iVersion = WALINDEX_MAX_VERSION; > walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); > - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); > + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); > walShmBarrier(pWal); > - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); > + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); > } > > /* > Setting aside any "unnecessary divergence with upstream" questions for the moment, wouldn't the correct fix be to just remove the casting completely? -- Ian From owner-svn-src-head@freebsd.org Thu Jul 16 22:26:05 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF0AA9A4454 for ; Thu, 16 Jul 2015 22:26:05 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm48.bullet.mail.bf1.yahoo.com (nm48.bullet.mail.bf1.yahoo.com [216.109.114.64]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D48115F2 for ; Thu, 16 Jul 2015 22:26:05 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1437085198; bh=mpDSHk+txJYESxU1JBeVsz5comu+XZ6Tb80/pTjYpFs=; h=Date:From:To:CC:Subject:References:In-Reply-To:From:Subject; b=HW/S3ud75uZVwg4ux5WodOCDTCiXZLbXR1Hq//CS+lCMKuK0YIarYesLIohHSDZOOof8gT3MQxlP5FBEDaLajfE9QNEvoZCVtcBe3hzhUcRORNQNSSp8fTFUZAw9yKBWI+W02cp4ZB82AzoZLDkTo6sYQERpn7+wRka03dzotqRtkTixTuU6VLJM7v3UF0DFY6ZXAXfyjA1BrTPSxQQ89ueu/tP6CQrKooZ2btcnNQgmKmojR1iuPoHqbVFJ8zL4/oQd2hAJArk/shnKef3objGXSed8QZx9eUoxO7354pG8UMOoS9IwG11p7jTjzhgickuuloiEN5MVA6/Q2b2czw== Received: from [66.196.81.174] by nm48.bullet.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:19:58 -0000 Received: from [98.139.211.163] by tm20.bullet.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:19:58 -0000 Received: from [127.0.0.1] by smtp220.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:19:58 -0000 X-Yahoo-Newman-Id: 285881.7599.bm@smtp220.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: _bJ2v_sVM1nmgVbHuH0MVlnd66LN9jBO981aiMqjmydVNwe cPZjSs3Tywwh5FIC6RB3AOZSkQnO_Loi98GNtWLon2SGNkKxIRIqZvTC4zM. vmECH4xOrxDf124ZHzdnwqwUh1ZDeXWabkyKUgEunQYjXiouhSRpmKq7BTqc 93Hz7l5farcgUC1X_06OTWB7CCnlPtWk_E2nCe25XlXoWy3KGjz5JMHiZBs3 m4CBge44FS_kDPebHaw5hoMkvN1CUkNjxLosZTzB6xBe_daQyAWclv6mqAUh a.1j5OK3YuPv9sT85vuUSDT6wn73wFJbz91yLhDixTNR5xyLA_XEzgoy0F_h qxoQUmXsau64DeKzWFM8OIiAyZK0jsj8PzP8da1PKzhgFXO5Tt_H9CIjW00K pjKm7HvV.e8SZ9HavQOCwl6_VTX82uo5ZVMaUX4a_8VbTVo.crYzt.Sz23rc 4WCHtZzV1.o8JWtZK8wL_bajoPp5zLIk2jYvePkQarbnlMMmb6_XEtRvMMpg J8vvlTRNMY.UVuXljsFp.2jDOM2_akaWj X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55A82ECE.1040406@FreeBSD.org> Date: Thu, 16 Jul 2015 17:23:10 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Baptiste Daroussin CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <20150716221607.GA82595@ivaldir.etoilebsd.net> In-Reply-To: <20150716221607.GA82595@ivaldir.etoilebsd.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:26:05 -0000 On 07/16/15 17:16, Baptiste Daroussin wrote: > On Thu, Jul 16, 2015 at 10:07:14PM +0000, Pedro F. Giffuni wrote: >> Author: pfg >> Date: Thu Jul 16 22:07:13 2015 >> New Revision: 285644 >> URL: https://svnweb.freebsd.org/changeset/base/285644 >> >> Log: >> sqlite: clean a couple of invocations of memcpy(3) >> >> Found almost accidentally by our native gcc when enhanced with >> FORTIFY_SOURCE. >> >> Submitted by: Oliver Pinter >> Sponosored by: Google Inc. GSoC 2015 >> >> Modified: >> head/contrib/sqlite3/sqlite3.c >> >> Modified: head/contrib/sqlite3/sqlite3.c >> ============================================================================== >> --- head/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 (r285643) >> +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 (r285644) >> @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ >> pWal->hdr.isInit = 1; >> pWal->hdr.iVersion = WALINDEX_MAX_VERSION; >> walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); >> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); >> walShmBarrier(pWal); >> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); >> } >> >> /* >> > Have you upstreamed that? because given how sqlite3.c file is done it will be a > pain on next update to not drop this change! I asked Oliver to do it, but I will crosscheck. Pedro. From owner-svn-src-head@freebsd.org Thu Jul 16 22:28:37 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BEDA29A44DB; Thu, 16 Jul 2015 22:28:37 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-pd0-x229.google.com (mail-pd0-x229.google.com [IPv6:2607:f8b0:400e:c02::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8E233198F; Thu, 16 Jul 2015 22:28:37 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: by pdbbh15 with SMTP id bh15so5556436pdb.1; Thu, 16 Jul 2015 15:28:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=SbGqTW2/cl6V1nZiB48sY1P6NLQo+XMznhVQo41e8rk=; b=0vvffM5kQ6na6TsGrChQAnmxEZE9mLHUzxfXqLKGCiyvLcxxbGMZK1ea+xngtCihyo nEJ+HeCZrmiVs0NyklL8PeyrlGQtu9U6bqstfF2wYYxhXqIvKkVQ9BVnwrENM0Unk8vp l4WA1uTn+OMODl/+DnRunYZPtekhSSTS59jgRlbHHgBNHNHHA+g0STVLB7b5qoH0rv37 17qZ1wCK0LUsVuACeuFtE+eJIXQAyi+gLANCJvP6SJHLLWWaUlPLYKzsXSmHidbxAD8z JZFvKawYZnIYQ1MUAeFdIngvmv3GS8HSJ+pJ6q3ylpimx7jHEr0lMzmT0vqJhUEAa6aq TkkA== MIME-Version: 1.0 X-Received: by 10.69.17.130 with SMTP id ge2mr22625173pbd.75.1437085717022; Thu, 16 Jul 2015 15:28:37 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.66.236.36 with HTTP; Thu, 16 Jul 2015 15:28:36 -0700 (PDT) In-Reply-To: <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> Date: Thu, 16 Jul 2015 15:28:36 -0700 X-Google-Sender-Auth: ttcVEe7kzsgrlqtxnY2KzyKZ6J8 Message-ID: Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... From: "K. Macy" To: Mark R V Murray Cc: Ian Lepore , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:28:37 -0000 I discovered this when I MFC'd and my kernel wouldn't link because of unresolved symbols. I thought I had put the issue aside when I added RANDOM_DUMMY to my kernel config. However, I just hit this: while (!random_alg_context.ra_seeded()) { if (nonblock) { error =3D EWOULDBLOCK; break; } tsleep(&random_alg_context, 0, "randseed", hz/10); /* keep tapping away at the pre-read until we seed/unblock.= */ random_alg_context.ra_pre_read(); printf("random: %s unblock wait\n", __func__); } My system wouldn't boot because this was endlessly spamming the console. I don't know what the right default here is. But I can say that this is not it. I would also like to observe that a good back of the envelope per-packet budget is 1000 cycles (stock FreeBSD is much worse than this - nonetheless it is a reasonable figure to strive for). Many drivers will for a variety of reasons allocate mbufs and clusters separately. This means that if you're harvesting on alloc / free, your function is being called 4 times per-packet. Let's have a hypothetical that your function takes 50 cycles* - in this case your entropy collection would be consuming a full 20% of the per-packet budget. At high-packet rates your entropy is likely to be caused more by indeterminacy of cache misses and lock contention than any true randomness in the arrival rate. * It may be less, it may be much more. I'm not sure where the workflow fell short in this instance, but I'm inclined to believe that this could have been handled better. -K On Thu, Jul 16, 2015 at 11:29 AM, Mark R V Murray wrote= : > >> On 16 Jul 2015, at 15:08, Ian Lepore wrote: >> >> On Thu, 2015-07-16 at 06:39 +0100, Mark Murray wrote: >>>> On 15 Jul 2015, at 23:43, Adrian Chadd wrote: >>>> >>>>> - Add harvesting of slab allocator events. This needs to be checked f= or >>>>> weighing down the allocator code. >>>> >>>> Hi, >>>> >>>> Is this really doing it upon every one of those events? eg, for each >>>> mbuf alloc through UMA? >>> >>> Only if you turn it on! >>> >>> M >>> >> >> In random_harvestq_init() I see >> >> harvest_context.hc_source_mask =3D RANDOM_HARVEST_EVERYTHING_MASK; >> >> and >> >> #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << (RANDOM_ENVIRONMENTAL_END >> + 1)) - 1) >> >> So doesn't that include the RANDOM_FAST flag that controls harvesting >> during every UMA alloc and free call? And that harvesting appears to be >> anything but fast, at least at a glance... it looks like it passes the >> entire struct uma_zone to the jenkins hash function... is there really >> useful entropy in all the data in that struct? > > Well spotted, but fear not. All sources are on at startup, and this > is to ensure that the generator has maximal access to entropy while > booting. > > One of the default duties of etc/rc.d/random is to turn off the UMA > and ATIME sources. These may be turned on if you want them, but by > default on the fully booted system they are off. > > See =E2=80=98sysctl kern.random.harvest.mask_symbolic=E2=80=99 and note t= hat the > disabled sources are in []. > > I have yet to do a full set of benchmarks, but I have discussed > this with RWatson. A silly benchmark (make world) shows little > effect, but I will be doing this properly in coming months. > > In answer to you final question - yes. The UMA entropy is a bit > spread out, but it is good. > > M > -- > Mark R V Murray > > _______________________________________________ > svn-src-head@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" From owner-svn-src-head@freebsd.org Thu Jul 16 22:34:48 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 466F59A464D for ; Thu, 16 Jul 2015 22:34:48 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm49-vm10.bullet.mail.bf1.yahoo.com (nm49-vm10.bullet.mail.bf1.yahoo.com [216.109.114.251]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E960F1EB2 for ; Thu, 16 Jul 2015 22:34:47 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1437085731; bh=qrs40LVOVHvI0xOkZneDM88eXi93rYBen6+E384tYMA=; h=Date:From:To:CC:Subject:References:In-Reply-To:From:Subject; b=TfR+LcKS6/K74XhXO+tYGklkAGMo0tqFFS3mw29z1nHoq2R81iCrFaR1tqkeCm33Glb1JaOp8Jg8LiNgq6l18g98DfHcs/c2DhDw1Cy6AhkaKIgWxRyRrRc/knELattZqqW7i90Ymf6DXAnvpy0ed8LTvp5JVnL+7lCPE9fFHPi+1uLymLiglmzFcvDH5kXqwd6UJp8uci5cfkZxsdNNE6FomDd2Fc1qTAsryqM+dhAo57NB5ROptVgjN3vvWx/TJNciO3HGOyHq644cEtdd57dXEfPFBj75mmvT43bo+u1l10/A5bk+e2d/lOle9r6dJV6eQAZrA0ovpZVmA9PFFw== Received: from [66.196.81.170] by nm49.bullet.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:28:51 -0000 Received: from [98.139.213.13] by tm16.bullet.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:28:51 -0000 Received: from [127.0.0.1] by smtp113.mail.bf1.yahoo.com with NNFMP; 16 Jul 2015 22:28:51 -0000 X-Yahoo-Newman-Id: 321210.91040.bm@smtp113.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: Qj8noOQVM1mVuvbr.FBPu0lVHU.Hq09NVy4DhiWE8IEVhtO UdW8N2S54tXElj3i0Jv3BbPIY1hDdbnPYL8iK3jTOLTSmiaOnGdMy4FBnu1p dtkcXdLghIahilUsFI7Chr.e5tZ8F919U8_RK5XnX7lLVj341_L95M.w5qQN oTI76HDhkMmGB9_ou2cuckzlEICxr0H0G8TTQZHbtsiHszPkKQCYr70JGsha g1WltUhx_4YQi87lqbjDDgwMHonqJUtKr3AE_kCGOmZIpnKbC00sMKErieK6 ZAVB85FC4CMCn0owvy6QE2_pUiAQneJCn9YOG_grbC49CBFXXwG9vCd_wLoK mam0edQ70uqGGF9hJgZG39EzCI.ZrglwCW_0yJWcSM2gGvccLGc.UCqaIP3V PXVJQb5byZgB9.MhfnfsiB8IE7Qe_qCi4T7dRs7esdw8pkn2VAeGnKz.NLCI VA9pbXEf3Ld_tIFN4aGBoPtHtJwFl5Vf7J5iKEAvrNMc47UcDLMIWCuKRmAG R3.VuedFmrGIyLeqlN.mWv6oULpg_0dXm X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55A830E4.6090408@FreeBSD.org> Date: Thu, 16 Jul 2015 17:32:04 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Ian Lepore CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <1437085366.1334.367.camel@freebsd.org> In-Reply-To: <1437085366.1334.367.camel@freebsd.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 22:34:48 -0000 On 07/16/15 17:22, Ian Lepore wrote: > On Thu, 2015-07-16 at 22:07 +0000, Pedro F. Giffuni wrote: >> Author: pfg >> Date: Thu Jul 16 22:07:13 2015 >> New Revision: 285644 >> URL: https://svnweb.freebsd.org/changeset/base/285644 >> >> Log: >> sqlite: clean a couple of invocations of memcpy(3) >> >> Found almost accidentally by our native gcc when enhanced with >> FORTIFY_SOURCE. >> >> Submitted by: Oliver Pinter >> Sponosored by: Google Inc. GSoC 2015 >> >> Modified: >> head/contrib/sqlite3/sqlite3.c >> >> Modified: head/contrib/sqlite3/sqlite3.c >> ============================================================================== >> --- head/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 (r285643) >> +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 (r285644) >> @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ >> pWal->hdr.isInit = 1; >> pWal->hdr.iVersion = WALINDEX_MAX_VERSION; >> walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); >> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); >> walShmBarrier(pWal); >> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); >> } >> >> /* >> > Setting aside any "unnecessary divergence with upstream" questions for > the moment, wouldn't the correct fix be to just remove the casting > completely? The compiler should know, but it is not wrong to have the casts match the (standard) implementation. I couldn't say which is "more" correct. Pedro. From owner-svn-src-head@freebsd.org Thu Jul 16 23:14:54 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 752569A4BEC; Thu, 16 Jul 2015 23:14:54 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-pd0-x229.google.com (mail-pd0-x229.google.com [IPv6:2607:f8b0:400e:c02::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 442381EFF; Thu, 16 Jul 2015 23:14:54 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: by pdrg1 with SMTP id g1so51391939pdr.2; Thu, 16 Jul 2015 16:14:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=Gxqz8poxhdj8Ruz8dDOGSzW6Z2vLQ+JjEEk8WhYduLI=; b=zJI5+Q0MjZnzw3EA5vaO+xAqo3otA7lC0A/aST16zMIQfH7E/6F++POXJWwUZ1yY6V SCzbc0MWSrNJdLV5RFK/4+n7mWnpgCp1MH33W+6JTakqij9uNHO+EKNuBXW2AenNAm0w kfpoOSHySbvTplrrg7ojjrJDoBdrPsjcFc8scyEqw4tjN3QUtgvnjM64F9cM0kAMZiSO hy3uedctqS4FxVkM39fVXqK919dj1ot9vPXakdbwlZixfaURXqPlY9i5+LvrGb95Nsdk E/29c23tL8YiEDh68sq0rqlZay/qe+J+AZX3BvnfaW3u7EKupI+479Drh4IBXQv73nJ0 YRcw== MIME-Version: 1.0 X-Received: by 10.69.17.130 with SMTP id ge2mr22907445pbd.75.1437088493891; Thu, 16 Jul 2015 16:14:53 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.66.236.36 with HTTP; Thu, 16 Jul 2015 16:14:53 -0700 (PDT) In-Reply-To: References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> Date: Thu, 16 Jul 2015 16:14:53 -0700 X-Google-Sender-Auth: __5Dz8YFhPXoxDJkQRv8AoHGovQ Message-ID: Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... From: "K. Macy" To: Mark R V Murray Cc: Ian Lepore , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 23:14:54 -0000 On Thu, Jul 16, 2015 at 3:28 PM, K. Macy wrote: > I discovered this when I MFC'd and my kernel wouldn't link because of > unresolved symbols. I thought I had put the issue aside when I added > RANDOM_DUMMY to my kernel config. > > However, I just hit this: > > while (!random_alg_context.ra_seeded()) { > if (nonblock) { > error = EWOULDBLOCK; > break; > } > tsleep(&random_alg_context, 0, "randseed", hz/10); > /* keep tapping away at the pre-read until we seed/unblock. */ > random_alg_context.ra_pre_read(); > printf("random: %s unblock wait\n", __func__); > } > > My system wouldn't boot because this was endlessly spamming the > console. I don't know what the right default here is. But I can say > that this is not it. I've also realized that a process blocked here is uninterruptible. Hence any process reading an insufficiently seeded /dev/random is unkillable. For example my boot can't proceed past dd doing a read and I can't ^C it. Did you test RANDOM_DUMMY? -K From owner-svn-src-head@freebsd.org Thu Jul 16 23:38:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55F859A4F4D; Thu, 16 Jul 2015 23:38:13 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 464B51A39; Thu, 16 Jul 2015 23:38:13 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6GNcDDN047350; Thu, 16 Jul 2015 23:38:13 GMT (envelope-from obrien@FreeBSD.org) Received: (from obrien@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6GNcDC6047349; Thu, 16 Jul 2015 23:38:13 GMT (envelope-from obrien@FreeBSD.org) Message-Id: <201507162338.t6GNcDC6047349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: obrien set sender to obrien@FreeBSD.org using -f From: "David E. O'Brien" Date: Thu, 16 Jul 2015 23:38:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285645 - head/bin/dd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2015 23:38:13 -0000 Author: obrien Date: Thu Jul 16 23:38:12 2015 New Revision: 285645 URL: https://svnweb.freebsd.org/changeset/base/285645 Log: Mention the dd-like recoverdisk(1) to help folks find this great BSD command. Modified: head/bin/dd/dd.1 Modified: head/bin/dd/dd.1 ============================================================================== --- head/bin/dd/dd.1 Thu Jul 16 22:07:13 2015 (r285644) +++ head/bin/dd/dd.1 Thu Jul 16 23:38:12 2015 (r285645) @@ -416,6 +416,7 @@ if necessary, to a 1MiB boundary: .Sh SEE ALSO .Xr cp 1 , .Xr mt 1 , +.Xr recoverdisk 1 , .Xr tr 1 , .Xr geom 4 .Sh STANDARDS From owner-svn-src-head@freebsd.org Fri Jul 17 04:14:36 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39FA49A2936 for ; Fri, 17 Jul 2015 04:14:36 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B769B1605 for ; Fri, 17 Jul 2015 04:14:35 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: by igcqs7 with SMTP id qs7so29356181igc.0 for ; Thu, 16 Jul 2015 21:14:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=Ac2tflXsSPTZmAyfFAAXxyfbnbsdSAfo7mnoOA28k64=; b=TveKzqo8rUAZ0U820+rfrKsIhM+Yy0zzvptcsgPH832+crGS4FZ94Aq2YG2gvaIQVF ag8igyG3i5u4duT0SjvflqKx4azAD9L+aczBjs8T7+9ED7VEi55lfDc8PjPq2i99I5Si QN5A0zBEi9EPlgPnf2Lo/srczFLaBseaqFRfufasvPxrafSeyfVpe9z4dgqphXrghq2H fKUdK3UYEtH6dS0JKQJaDxlNK7uLOSobBr9lsHz8+qNp0EAhmknGDaflOWPC4QrikpBZ sJaAGlFMAJ95FlCiF/hT56liMzYcB5KF8bsJjIjE/m4vwJajOflEc4lyO4H3TzdXfIpX QIwA== X-Gm-Message-State: ALoCoQnjCTTyLQi+o2FQa+mpfPY5Dpt1ssJh4OPbFfyuQ7CXB8sJNSJmj5Qac6hxigAzUzk9kkDB X-Received: by 10.107.134.96 with SMTP id i93mr16025607iod.139.1437106469161; Thu, 16 Jul 2015 21:14:29 -0700 (PDT) Received: from [10.0.27.94] ([96.88.71.26]) by smtp.gmail.com with ESMTPSA id c12sm6492471ioj.39.2015.07.16.21.14.28 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 16 Jul 2015 21:14:28 -0700 (PDT) Sender: Warner Losh Subject: Re: svn commit: r285627 - in head/sys: arm/arm arm/at91 arm/cavium/cns11xx arm/samsung/s3c2xx0 arm/xscale/i80321 arm/xscale/i8134x arm/xscale/ixp425 arm/xscale/pxa arm64/arm64 ddb i386/i386 powerpc/boo... Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: multipart/signed; boundary="Apple-Mail=_810ECDD6-EFCB-4B8A-ABC8-B1C621C2A441"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5 From: Warner Losh In-Reply-To: Date: Thu, 16 Jul 2015 22:14:25 -0600 Cc: Zbigniew Bodek , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Message-Id: <1F072A78-AD5E-4597-B064-C51790AF2F12@bsdimp.com> References: <201507161046.t6GAkrEt028784@repo.freebsd.org> To: Benjamin Kaduk X-Mailer: Apple Mail (2.2102) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 04:14:36 -0000 --Apple-Mail=_810ECDD6-EFCB-4B8A-ABC8-B1C621C2A441 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Jul 16, 2015, at 12:02 PM, Benjamin Kaduk = wrote: >=20 > On Thu, Jul 16, 2015 at 6:46 AM, Zbigniew Bodek = wrote: > Author: zbb > Date: Thu Jul 16 10:46:52 2015 > New Revision: 285627 > URL: https://svnweb.freebsd.org/changeset/base/285627 >=20 > Log: > Fix KSTACK_PAGES issue when the default value was changed in = KERNCONF >=20 > If KSTACK_PAGES was changed to anything alse than the default, > the value from param.h was taken instead in some places and > the value from KENRCONF in some others. This resulted in > inconsistency which caused corruption in SMP envorinment. >=20 > Ensure all places where KSTACK_PAGES are used the opt_kstack_pages.h > is included. >=20 > This leads to the question: why is KSTACK_PAGES defined in param.h at = all, if the value will be incorrect for custom kernel configurations? It is a work around for the Cavium arm64 kernel. It may or may not be needed in the fullness of time, but for now it=E2=80=99s = needed to make progress on the port. Warner --Apple-Mail=_810ECDD6-EFCB-4B8A-ABC8-B1C621C2A441 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJVqIEiAAoJEGwc0Sh9sBEAo5cQALR9RiitwRkMCDMvdPiOl6jt aeVsRtzhe3vYX1gxaBItwbEMsqUuzd5yHMhRQGTP8IS4rTn7FjB/9h3KB47ZbC62 1k3lnCgOvWjFLvhUYrenrFtXnCg/IYIIR0X5Lv6XdSxiNM2uOp72FaN45/SZSJNe bIFHUyvr/kQzIhdh9G7Nqc47djIgZXQ1+cYRXhszKKRnE1L6yBLK3O7Lw7SV0qXF +9+e59T6513EVXfquOU0OR4l47SCxCBGTYb/VE85lHut4kJtlRgYuY5MoNJc/Fwl GMobmW3MoRtwrb1UEuSUsnoEb3Rk48f07ciR0hCde8qa4visfkvRHFJ6scyGJbYp Mb0rZi1fQvzuKnLjFqpJgKXzAbWzY/LRic9wOY7gzE98B7UKd9k6sep0n/rigS42 vF/SfcCJLQlmc/Kpd9KOCDq7UPV0vJzjrZIb0uOx5MaaWd/rxWb8vgRVcyCpeogl X1B50WReHQSMw9dWkVXCU9hC39QB3PR9wHcFE1Pi3LZeyLnJgmkGkzyVIuVjtE1r hlWmyyF0jolYR73vbnfljpcBu6Fsn1XvfkY+yp7o6Yxdufr7EIlUiBFP8OQ0SqMv v9/fL/52XzWz4rhzy3zsmDEsQFS08xgylPBh81+fELYg7P5zwEjF/aYYFLEJzq/4 92bc4Q6dLdNZpWvqlrq6 =hcHy -----END PGP SIGNATURE----- --Apple-Mail=_810ECDD6-EFCB-4B8A-ABC8-B1C621C2A441-- From owner-svn-src-head@freebsd.org Fri Jul 17 06:34:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61C7E9A4C1F; Fri, 17 Jul 2015 06:34:47 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 524791DA4; Fri, 17 Jul 2015 06:34:47 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6H6Yl2A027373; Fri, 17 Jul 2015 06:34:47 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6H6Ylb5027372; Fri, 17 Jul 2015 06:34:47 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201507170634.t6H6Ylb5027372@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Fri, 17 Jul 2015 06:34:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285647 - head/sbin/geom/class/multipath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 06:34:47 -0000 Author: araujo (ports committer) Date: Fri Jul 17 06:34:46 2015 New Revision: 285647 URL: https://svnweb.freebsd.org/changeset/base/285647 Log: Describe how to load gmultipath at boot time. Differential Revision: D3112 Reviewed by: allanjude, bapt Sponsored by: gandi.net Modified: head/sbin/geom/class/multipath/gmultipath.8 Modified: head/sbin/geom/class/multipath/gmultipath.8 ============================================================================== --- head/sbin/geom/class/multipath/gmultipath.8 Fri Jul 17 00:00:04 2015 (r285646) +++ head/sbin/geom/class/multipath/gmultipath.8 Fri Jul 17 06:34:46 2015 (r285647) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 11, 2015 +.Dd July 17, 2015 .Dt GMULTIPATH 8 .Os .Sh NAME @@ -350,6 +350,16 @@ GEOM_MULTIPATH: da0 added to FRED GEOM_MULTIPATH: da0 is now active path in FRED GEOM_MULTIPATH: da2 added to FRED .Ed +.Ed +.Pp +To load the +.Nm +Module at boot time, add the following entry to +.Pa /boot/loader.conf: +.Bd -literal -offset ident +geom_multipath_load="YES" +.Ed +.Ed .Sh SEE ALSO .Xr geom 4 , .Xr isp 4 , From owner-svn-src-head@freebsd.org Fri Jul 17 06:46:19 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB4DA9A4D51; Fri, 17 Jul 2015 06:46:19 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 A8E0712A9; Fri, 17 Jul 2015 06:46:19 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6H6kJ20031542; Fri, 17 Jul 2015 06:46:19 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6H6kJDs031539; Fri, 17 Jul 2015 06:46:19 GMT (envelope-from np@FreeBSD.org) Message-Id: <201507170646.t6H6kJDs031539@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 17 Jul 2015 06:46:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285648 - in head/sys/dev/cxgbe: . common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 06:46:20 -0000 Author: np Date: Fri Jul 17 06:46:18 2015 New Revision: 285648 URL: https://svnweb.freebsd.org/changeset/base/285648 Log: cxgbe(4): Ask the firmware for the start of the RSS slice for a port and save it for later. This enables direct manipulation of the indirection tables (although the stock driver doesn't do that right now). MFC after: 1 month Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/common/t4_hw.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Fri Jul 17 06:34:46 2015 (r285647) +++ head/sys/dev/cxgbe/adapter.h Fri Jul 17 06:46:18 2015 (r285648) @@ -233,6 +233,7 @@ struct port_info { uint16_t viid; int16_t xact_addr_filt;/* index of exact MAC address filter */ uint16_t rss_size; /* size of VI's RSS table slice */ + uint16_t rss_base; /* start of VI's RSS table slice */ uint8_t lport; /* associated offload logical port */ int8_t mdio_addr; uint8_t port_type; Modified: head/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.c Fri Jul 17 06:34:46 2015 (r285647) +++ head/sys/dev/cxgbe/common/t4_hw.c Fri Jul 17 06:46:18 2015 (r285648) @@ -5699,6 +5699,7 @@ int __devinit t4_port_init(struct port_i struct fw_port_cmd c; u16 rss_size; adapter_t *adap = p->adapter; + u32 param, val; memset(&c, 0, sizeof(c)); @@ -5737,6 +5738,17 @@ int __devinit t4_port_init(struct port_i init_link_config(&p->link_cfg, ntohs(c.u.info.pcap)); + param = V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_DEV) | + V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_DEV_RSSINFO) | + V_FW_PARAMS_PARAM_YZ(p->viid); + ret = t4_query_params(adap, mbox, pf, vf, 1, ¶m, &val); + if (ret) + p->rss_base = 0xffff; + else { + /* MPASS((val >> 16) == rss_size); */ + p->rss_base = val & 0xffff; + } + return 0; } From owner-svn-src-head@freebsd.org Fri Jul 17 06:47:49 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 85D469A4D7D; Fri, 17 Jul 2015 06:47:49 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ig0-x234.google.com (mail-ig0-x234.google.com [IPv6:2607:f8b0:4001:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C64D1534; Fri, 17 Jul 2015 06:47:49 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by igbij6 with SMTP id ij6so31134010igb.1; Thu, 16 Jul 2015 23:47:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=MN0/09MIrctKINCX1TWtR+OWFh2fhY6E5jxsgO32Kyc=; b=yCtDC+l2gVXZAMfy4Pi3D/h30Va2QoeM6KybVa/gTGR/RzsdcHyiGrc5ROtSnoep97 4futT9chJoB75efWOsz7hqdBC2Rp2j3oax8GCmelnj9qOz3QGl0dhkDh/WoVkL5/oS7q HXuqBc5iPVs6RAQqRsM+JCpHhONwawK4Zv/SNpW1GsjdCjDQLRWMxeE5wzsU89hJrT7L x/PSXhODucylz8yPWHhi7tjfHyjYRRWvoF/vv+vfkh1ouTs2hFOcol1nV3+Uhmw6rqvS lxdm/8odzyRO8ZSaLDTlhrhd4+l6Q6RRjl0HU2kTobdbDfz26Hw9nxMY+MM0uW/Ov4zH CraQ== MIME-Version: 1.0 X-Received: by 10.107.132.215 with SMTP id o84mr17982794ioi.36.1437115668642; Thu, 16 Jul 2015 23:47:48 -0700 (PDT) Received: by 10.36.31.207 with HTTP; Thu, 16 Jul 2015 23:47:48 -0700 (PDT) In-Reply-To: References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> Date: Thu, 16 Jul 2015 23:47:48 -0700 Message-ID: Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... From: Adrian Chadd To: "K. Macy" Cc: Mark R V Murray , Ian Lepore , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 06:47:49 -0000 hi, So I'll have to update the AP images that I build, as now I have to add that sysctl to things. It also means everyone has to update their /etc after updating or they'll end up with this particular mode not being disabled. i think we need to get this better documented so people aren't bitten when they merge code in from -HEAD or whenever you do MFC this back to stable/10. -adrian On 16 July 2015 at 16:14, K. Macy wrote: > On Thu, Jul 16, 2015 at 3:28 PM, K. Macy wrote: >> I discovered this when I MFC'd and my kernel wouldn't link because of >> unresolved symbols. I thought I had put the issue aside when I added >> RANDOM_DUMMY to my kernel config. >> >> However, I just hit this: >> >> while (!random_alg_context.ra_seeded()) { >> if (nonblock) { >> error = EWOULDBLOCK; >> break; >> } >> tsleep(&random_alg_context, 0, "randseed", hz/10); >> /* keep tapping away at the pre-read until we seed/unblock. */ >> random_alg_context.ra_pre_read(); >> printf("random: %s unblock wait\n", __func__); >> } >> >> My system wouldn't boot because this was endlessly spamming the >> console. I don't know what the right default here is. But I can say >> that this is not it. > > > I've also realized that a process blocked here is uninterruptible. > Hence any process reading an insufficiently seeded /dev/random is > unkillable. For example my boot can't proceed past dd doing a read and > I can't ^C it. Did you test RANDOM_DUMMY? > > > -K > From owner-svn-src-head@freebsd.org Fri Jul 17 06:52:34 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 155A69A4F03; Fri, 17 Jul 2015 06:52:34 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 CCB5C1A25; Fri, 17 Jul 2015 06:52:33 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZFzVX-000EWH-Tj; Fri, 17 Jul 2015 07:52:32 +0100 Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: Date: Fri, 17 Jul 2015 07:52:25 +0100 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> To: Adrian Chadd X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 06:52:34 -0000 > On 17 Jul 2015, at 07:47, Adrian Chadd wrote: >=20 > hi, >=20 > So I'll have to update the AP images that I build, as now I have to > add that sysctl to things. Well, measure the effect. It may not be as bad as it may seem! :-) > It also means everyone has to update their /etc after updating or > they'll end up with this particular mode not being disabled. That is usual, right? Do a mergemaster after a make world? > i think we need to get this better documented so people aren't bitten > when they merge code in from -HEAD or whenever you do MFC this back to > stable/10. I=E2=80=99m not yet planning an MFC to 10.x > -adrian=20 M =E2=80=94=20 Mark R V Murray From owner-svn-src-head@freebsd.org Fri Jul 17 07:33:23 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A55819A441D; Fri, 17 Jul 2015 07:33:23 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 6A1871E5E; Fri, 17 Jul 2015 07:33:23 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id BFDF1D666F3; Fri, 17 Jul 2015 17:08:28 +1000 (AEST) Date: Fri, 17 Jul 2015 17:08:27 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Pedro Giffuni cc: Ian Lepore , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 In-Reply-To: <55A830E4.6090408@FreeBSD.org> Message-ID: <20150717162031.C901@besplex.bde.org> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <1437085366.1334.367.camel@freebsd.org> <55A830E4.6090408@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=eZjABOwH c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=Y5DucpxF2Dja_-Y8FlkA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 07:33:23 -0000 On Thu, 16 Jul 2015, Pedro Giffuni wrote: > On 07/16/15 17:22, Ian Lepore wrote: >> On Thu, 2015-07-16 at 22:07 +0000, Pedro F. Giffuni wrote: >>> Author: pfg >>> Date: Thu Jul 16 22:07:13 2015 >>> New Revision: 285644 >>> URL: https://svnweb.freebsd.org/changeset/base/285644 >>> >>> Log: >>> sqlite: clean a couple of invocations of memcpy(3) >>> Found almost accidentally by our native gcc when enhanced with >>> FORTIFY_SOURCE. >>> Submitted by: Oliver Pinter >>> Sponosored by: Google Inc. GSoC 2015 >>> >>> Modified: >>> head/contrib/sqlite3/sqlite3.c >>> >>> Modified: head/contrib/sqlite3/sqlite3.c >>> ============================================================================== >>> --- head/contrib/sqlite3/sqlite3.c Thu Jul 16 19:40:18 2015 >>> (r285643) >>> +++ head/contrib/sqlite3/sqlite3.c Thu Jul 16 22:07:13 2015 >>> (r285644) >>> @@ -49487,9 +49487,9 @@ static void walIndexWriteHdr(Wal *pWal){ >>> pWal->hdr.isInit = 1; >>> pWal->hdr.iVersion = WALINDEX_MAX_VERSION; >>> walChecksumBytes(1, (u8*)&pWal->hdr, nCksum, 0, pWal->hdr.aCksum); >>> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, >>> sizeof(WalIndexHdr)); >>> walShmBarrier(pWal); >>> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, >>> sizeof(WalIndexHdr)); >>> } >>> /* >>> >> Setting aside any "unnecessary divergence with upstream" questions for >> the moment, wouldn't the correct fix be to just remove the casting >> completely? Indeed. (Remove all the bogus casts, not just the changed ones.) > The compiler should know, but it is not wrong to have the casts > match the (standard) implementation. I couldn't say which is > "more" correct. It is not even wrong. The casts to void * are only needed to support K&R compilers (ones that aren't actually K&R 1, so that they support void *), or if the program is so buggy as to not make a prototype for memcpy() visible. I think the program doesn't attempt to support K&R. I checked that it includes string.h. The hdr variable is not const, so casting it to void * is not even wrong. If it were const, then the cast to void * still wouldn't be wrong (it would still conform to C, and the prototype would undo it). However, it would remove the const type qualifier, and some compilers warn about this, so it would be an error at a higher level. If the code supported K&R, then your change would be correct for the following reasons: - K&R needs the void * part of the casts - K&R doesn't support const (except it is further from actually being K&R 1 so that it supports both const and void), so const void * looks like a syntax error. However, the support for K&R in kills this const so that the K&R case works. - the full cast should be used. Otherwise the cast looks more bogus since it is only half of not even wrong for the non-K&R case. Modern programs have many dependencies on prototypes actually working. E.g., sqlite.c has a measly 257 calls to memcpy(). It bogusly casts to void * in a whole 8 of these. Often the args are already void *, so they don't need need a bogus (null) cast to make them that, but the second arg does need a bogus (non-null) cast to const void * to make it that before the prototype does. Casts that have no effect shouldn't be used since they bloat the source code and obfuscate the casts that are actually needed. Exception: it is good to use explicit downcasts and not depend on the design error that prototypes downcast without warning. Bruce From owner-svn-src-head@freebsd.org Fri Jul 17 08:37:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3E6999610E; Fri, 17 Jul 2015 08:37:14 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 BEE3C18A7; Fri, 17 Jul 2015 08:37:14 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6H8bEHS076104; Fri, 17 Jul 2015 08:37:14 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6H8bErf076103; Fri, 17 Jul 2015 08:37:14 GMT (envelope-from des@FreeBSD.org) Message-Id: <201507170837.t6H8bErf076103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 17 Jul 2015 08:37:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285651 - head/usr.bin/sockstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 08:37:14 -0000 Author: des Date: Fri Jul 17 08:37:13 2015 New Revision: 285651 URL: https://svnweb.freebsd.org/changeset/base/285651 Log: Move assignments around to avoid a false-positive uninitialized variable warning which broke the sparc64 build. PR: 201585 MFC after: 3 weeks Modified: head/usr.bin/sockstat/sockstat.c Modified: head/usr.bin/sockstat/sockstat.c ============================================================================== --- head/usr.bin/sockstat/sockstat.c Fri Jul 17 08:06:40 2015 (r285650) +++ head/usr.bin/sockstat/sockstat.c Fri Jul 17 08:37:13 2015 (r285651) @@ -598,9 +598,10 @@ gather_inet(int proto) xig = (struct xinpgen *)(void *)((char *)xig + xig->xig_len); if (xig >= exig) break; + xip = (struct xinpcb *)xig; + xtp = (struct xtcpcb *)xig; switch (proto) { case IPPROTO_TCP: - xtp = (struct xtcpcb *)xig; if (xtp->xt_len != sizeof(*xtp)) { warnx("struct xtcpcb size mismatch"); goto out; @@ -612,7 +613,6 @@ gather_inet(int proto) break; case IPPROTO_UDP: case IPPROTO_DIVERT: - xip = (struct xinpcb *)xig; if (xip->xi_len != sizeof(*xip)) { warnx("struct xinpcb size mismatch"); goto out; From owner-svn-src-head@freebsd.org Fri Jul 17 09:00:40 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2739A9966D1; Fri, 17 Jul 2015 09:00:40 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 073A2125F; Fri, 17 Jul 2015 09:00:40 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6H90dG6085542; Fri, 17 Jul 2015 09:00:39 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6H90dJU085538; Fri, 17 Jul 2015 09:00:39 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507170900.t6H90dJU085538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Fri, 17 Jul 2015 09:00:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285652 - in head/sys: compat/cloudabi contrib/cloudabi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 09:00:40 -0000 Author: ed Date: Fri Jul 17 09:00:38 2015 New Revision: 285652 URL: https://svnweb.freebsd.org/changeset/base/285652 Log: Implement CloudABI memory management system calls. Add support for the functions by wrapping around our own implementations. There are no kern_*() variants of these system calls, but we also don't need them in this case. It is sufficient to just call into the sys_*() functions. Differential Revision: https://reviews.freebsd.org/D3033 Reviewed by: brooks Modified: head/sys/compat/cloudabi/cloudabi_mem.c head/sys/contrib/cloudabi/syscalldefs_mi.h Modified: head/sys/compat/cloudabi/cloudabi_mem.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_mem.c Fri Jul 17 08:37:13 2015 (r285651) +++ head/sys/compat/cloudabi/cloudabi_mem.c Fri Jul 17 09:00:38 2015 (r285652) @@ -26,64 +26,154 @@ #include __FBSDID("$FreeBSD$"); +#include +#include +#include + #include +#include + +/* Converts CloudABI's memory protection flags to FreeBSD's. */ +static int +convert_mprot(cloudabi_mprot_t in) +{ + int out; + + out = 0; + if (in & CLOUDABI_PROT_EXEC) + out |= PROT_EXEC; + if (in & CLOUDABI_PROT_WRITE) + out |= PROT_WRITE; + if (in & CLOUDABI_PROT_READ) + out |= PROT_READ; + return (out); +} int cloudabi_sys_mem_advise(struct thread *td, struct cloudabi_sys_mem_advise_args *uap) { + struct madvise_args madvise_args = { + .addr = uap->addr, + .len = uap->len + }; + + switch (uap->advice) { + case CLOUDABI_ADVICE_DONTNEED: + madvise_args.behav = MADV_DONTNEED; + break; + case CLOUDABI_ADVICE_NORMAL: + madvise_args.behav = MADV_NORMAL; + break; + case CLOUDABI_ADVICE_RANDOM: + madvise_args.behav = MADV_RANDOM; + break; + case CLOUDABI_ADVICE_SEQUENTIAL: + madvise_args.behav = MADV_SEQUENTIAL; + break; + case CLOUDABI_ADVICE_WILLNEED: + madvise_args.behav = MADV_WILLNEED; + break; + default: + return (EINVAL); + } - /* Not implemented. */ - return (ENOSYS); + return (sys_madvise(td, &madvise_args)); } int cloudabi_sys_mem_lock(struct thread *td, struct cloudabi_sys_mem_lock_args *uap) { + struct mlock_args mlock_args = { + .addr = uap->addr, + .len = uap->len + }; - /* Not implemented. */ - return (ENOSYS); + return (sys_mlock(td, &mlock_args)); } int cloudabi_sys_mem_map(struct thread *td, struct cloudabi_sys_mem_map_args *uap) { + struct mmap_args mmap_args = { + .addr = uap->addr, + .len = uap->len, + .prot = convert_mprot(uap->prot), + .fd = uap->fd, + .pos = uap->off + }; + + /* Translate flags. */ + if (uap->flags & CLOUDABI_MAP_ANON) + mmap_args.flags |= MAP_ANON; + if (uap->flags & CLOUDABI_MAP_FIXED) + mmap_args.flags |= MAP_FIXED; + if (uap->flags & CLOUDABI_MAP_PRIVATE) + mmap_args.flags |= MAP_PRIVATE; + if (uap->flags & CLOUDABI_MAP_SHARED) + mmap_args.flags |= MAP_SHARED; - /* Not implemented. */ - return (ENOSYS); + return (sys_mmap(td, &mmap_args)); } int cloudabi_sys_mem_protect(struct thread *td, struct cloudabi_sys_mem_protect_args *uap) { + struct mprotect_args mprotect_args = { + .addr = uap->addr, + .len = uap->len, + .prot = convert_mprot(uap->prot), + }; - /* Not implemented. */ - return (ENOSYS); + return (sys_mprotect(td, &mprotect_args)); } int cloudabi_sys_mem_sync(struct thread *td, struct cloudabi_sys_mem_sync_args *uap) { + struct msync_args msync_args = { + .addr = uap->addr, + .len = uap->len, + }; + + /* Convert flags. */ + switch (uap->flags & (CLOUDABI_MS_ASYNC | CLOUDABI_MS_SYNC)) { + case CLOUDABI_MS_ASYNC: + msync_args.flags |= MS_ASYNC; + break; + case CLOUDABI_MS_SYNC: + msync_args.flags |= MS_SYNC; + break; + default: + return (EINVAL); + } + if ((uap->flags & CLOUDABI_MS_INVALIDATE) != 0) + msync_args.flags |= MS_INVALIDATE; - /* Not implemented. */ - return (ENOSYS); + return (sys_msync(td, &msync_args)); } int cloudabi_sys_mem_unlock(struct thread *td, struct cloudabi_sys_mem_unlock_args *uap) { + struct munlock_args munlock_args = { + .addr = uap->addr, + .len = uap->len + }; - /* Not implemented. */ - return (ENOSYS); + return (sys_munlock(td, &munlock_args)); } int cloudabi_sys_mem_unmap(struct thread *td, struct cloudabi_sys_mem_unmap_args *uap) { + struct munmap_args munmap_args = { + .addr = uap->addr, + .len = uap->len + }; - /* Not implemented. */ - return (ENOSYS); + return (sys_munmap(td, &munmap_args)); } Modified: head/sys/contrib/cloudabi/syscalldefs_mi.h ============================================================================== --- head/sys/contrib/cloudabi/syscalldefs_mi.h Fri Jul 17 08:37:13 2015 (r285651) +++ head/sys/contrib/cloudabi/syscalldefs_mi.h Fri Jul 17 09:00:38 2015 (r285652) @@ -216,6 +216,9 @@ #define CLOUDABI_MAP_PRIVATE 0x4 #define CLOUDABI_MAP_SHARED 0x8 +// File descriptor that must be passed in when using CLOUDABI_MAP_ANON. +#define CLOUDABI_MAP_ANON_FD 0xffffffff + // msync() flags. #define CLOUDABI_MS_ASYNC 0x1 #define CLOUDABI_MS_INVALIDATE 0x2 From owner-svn-src-head@freebsd.org Fri Jul 17 11:41:57 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 478539A3619; Fri, 17 Jul 2015 11:41:57 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay04.stack.nl [IPv6:2001:610:1108:5010::107]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailhost.stack.nl", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 0E9A41206; Fri, 17 Jul 2015 11:41:57 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id 06157B8056; Fri, 17 Jul 2015 13:41:54 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id E346528494; Fri, 17 Jul 2015 13:41:53 +0200 (CEST) Date: Fri, 17 Jul 2015 13:41:53 +0200 From: Jilles Tjoelker To: Ed Schouten Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285539 - head/sys/compat/cloudabi64 Message-ID: <20150717114153.GA93168@stack.nl> References: <201507141433.t6EEXLkn035058@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201507141433.t6EEXLkn035058@repo.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 11:41:57 -0000 On Tue, Jul 14, 2015 at 02:33:21PM +0000, Ed Schouten wrote: > Author: ed > Date: Tue Jul 14 14:33:21 2015 > New Revision: 285539 > URL: https://svnweb.freebsd.org/changeset/base/285539 > Log: > Implement {,p}{read,write}{,v}(). > Add a routine similar to copyinuio() and freebsd32_copyinuio() that > copies in CloudABI's struct iovecs. These are then translated into > FreeBSD format and placed in a 'struct uio', so we can call into the > kern_*() functions. > [snip] > + if (iovcnt > UIO_MAXIOV) > + return (EINVAL); The maximum number of iovecs is part of the ABI and should therefore probably have a CLOUDABI_* constant. It turns out that both FreeBSD and Linux report 1024 for getconf IOV_MAX, so there is little practical effect. -- Jilles Tjoelker From owner-svn-src-head@freebsd.org Fri Jul 17 13:58:02 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F32F9A472D; Fri, 17 Jul 2015 13:58:02 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0FEC31FB0; Fri, 17 Jul 2015 13:58:02 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HDw1Fl008710; Fri, 17 Jul 2015 13:58:01 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HDw1Bc008709; Fri, 17 Jul 2015 13:58:01 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507171358.t6HDw1Bc008709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Fri, 17 Jul 2015 13:58:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285653 - head/sys/arm64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 13:58:02 -0000 Author: zbb Date: Fri Jul 17 13:58:00 2015 New Revision: 285653 URL: https://svnweb.freebsd.org/changeset/base/285653 Log: Increase DMAP (Direct Map) size on ARM64 Previous DMAP size was too small for systems with more than 64GB of RAM. Increase it to 128GB to support ThunderX CRB. Reviewed by: andrew Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3113 Modified: head/sys/arm64/include/vmparam.h Modified: head/sys/arm64/include/vmparam.h ============================================================================== --- head/sys/arm64/include/vmparam.h Fri Jul 17 09:00:38 2015 (r285652) +++ head/sys/arm64/include/vmparam.h Fri Jul 17 13:58:00 2015 (r285653) @@ -156,9 +156,9 @@ #define VM_MIN_KERNEL_ADDRESS (0xffffff8000000000UL) #define VM_MAX_KERNEL_ADDRESS (0xffffff8800000000UL) -/* Direct Map for 64 GiB of PA: 0x0 - 0xfffffffff */ +/* Direct Map for 128 GiB of PA: 0x0 - 0x1fffffffff */ #define DMAP_MIN_ADDRESS (0xffffffc000000000UL) -#define DMAP_MAX_ADDRESS (0xffffffcfffffffffUL) +#define DMAP_MAX_ADDRESS (0xffffffdfffffffffUL) #define DMAP_MIN_PHYSADDR (0x0000000000000000UL) #define DMAP_MAX_PHYSADDR (DMAP_MAX_ADDRESS - DMAP_MIN_ADDRESS) From owner-svn-src-head@freebsd.org Fri Jul 17 14:08:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2DAA09A4904; Fri, 17 Jul 2015 14:08:09 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1E32B1596; Fri, 17 Jul 2015 14:08:09 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HE88aJ012846; Fri, 17 Jul 2015 14:08:08 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HE88QD012845; Fri, 17 Jul 2015 14:08:08 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507171408.t6HE88QD012845@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Fri, 17 Jul 2015 14:08:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285654 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 14:08:09 -0000 Author: zbb Date: Fri Jul 17 14:08:08 2015 New Revision: 285654 URL: https://svnweb.freebsd.org/changeset/base/285654 Log: Fix secondary stacks calculation on ARM64 Secondary stack calculation is modified to provide stack_top = secondary_stacks + (cpu_id) * PAGE_SIZE * KSTACK_PAGES because on ARM64 the stack grows to lower memory addresses. Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3107 Modified: head/sys/arm64/arm64/locore.S Modified: head/sys/arm64/arm64/locore.S ============================================================================== --- head/sys/arm64/arm64/locore.S Fri Jul 17 13:58:00 2015 (r285653) +++ head/sys/arm64/arm64/locore.S Fri Jul 17 14:08:08 2015 (r285654) @@ -179,8 +179,7 @@ ENTRY(mpentry) mp_virtdone: ldr x4, =secondary_stacks mov x5, #(PAGE_SIZE * KSTACK_PAGES) - sub x1, x0, #1 - mul x5, x1, x5 + mul x5, x0, x5 add sp, x4, x5 b init_secondary From owner-svn-src-head@freebsd.org Fri Jul 17 14:33:49 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3763D9A4D76; Fri, 17 Jul 2015 14:33:49 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 0B6A515A8; Fri, 17 Jul 2015 14:33:48 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HEXmtd024695; Fri, 17 Jul 2015 14:33:48 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HEXmlk024694; Fri, 17 Jul 2015 14:33:48 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201507171433.t6HEXmlk024694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Fri, 17 Jul 2015 14:33:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285655 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 14:33:49 -0000 Author: zbb Date: Fri Jul 17 14:33:47 2015 New Revision: 285655 URL: https://svnweb.freebsd.org/changeset/base/285655 Log: Fix possible coherency issues between PEs related to I-cache Basing on B.2.3.4: Synchronization and coherency issues between data and instruction accesses. To ensure that modified instructions are visible to all PEs (Processing Elements) in a shareability domain one need to perform following sequence: 1. Clean D-cache 2. Ensure the visibility of data cleaned from cache 3. Invalidate I-cache 4. Ensure completion 5. In SMP system PE must issue isb to ensure execution of the modified instructions Reviewed by: andrew Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3106 Modified: head/sys/arm64/arm64/cpufunc_asm.S Modified: head/sys/arm64/arm64/cpufunc_asm.S ============================================================================== --- head/sys/arm64/arm64/cpufunc_asm.S Fri Jul 17 14:08:08 2015 (r285654) +++ head/sys/arm64/arm64/cpufunc_asm.S Fri Jul 17 14:33:47 2015 (r285655) @@ -61,17 +61,18 @@ __FBSDID("$FreeBSD$"); add x1, x1, x2 /* Add these to the size */ bic x0, x0, x4 /* Clear the low bit of the address */ 1: + dc \dcop, x0 + dsb ish .if \ic != 0 ic \icop, x0 + dsb ish .endif - dc \dcop, x0 add x0, x0, x3 /* Move to the next line */ subs x1, x1, x3 /* Reduce the size */ b.hi 1b /* Check if we are done */ .if \ic != 0 isb .endif - dsb ish ret .endm From owner-svn-src-head@freebsd.org Fri Jul 17 16:34:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DEB89A42CB; Fri, 17 Jul 2015 16:34:03 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 F19031D8E; Fri, 17 Jul 2015 16:34:02 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HGY2EO073549; Fri, 17 Jul 2015 16:34:02 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HGY2Zl073547; Fri, 17 Jul 2015 16:34:02 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507171634.t6HGY2Zl073547@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Fri, 17 Jul 2015 16:34:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285656 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 16:34:03 -0000 Author: ed Date: Fri Jul 17 16:34:01 2015 New Revision: 285656 URL: https://svnweb.freebsd.org/changeset/base/285656 Log: Add an API for easily creating userspace threads in kernelspace. This change refactors the existing create_thread() function to be more generic. It replaces almost all of its arguments by a callback that can be used to extract the thread ID and copy it out to the right place, but also to perform additional initialization steps, such as setting the trapframe. This also makes the difference between thr_new() and thr_create() more clear in my opinion. This function is going to be used by the CloudABI compatibility layer. Reviewed by: kib MFC after: 1 month Modified: head/sys/kern/kern_thr.c head/sys/sys/proc.h Modified: head/sys/kern/kern_thr.c ============================================================================== --- head/sys/kern/kern_thr.c Fri Jul 17 14:33:47 2015 (r285655) +++ head/sys/kern/kern_thr.c Fri Jul 17 16:34:01 2015 (r285656) @@ -89,29 +89,39 @@ suword_lwpid(void *addr, lwpid_t lwpid) #define suword_lwpid suword #endif -static int create_thread(struct thread *td, mcontext_t *ctx, - void (*start_func)(void *), void *arg, - char *stack_base, size_t stack_size, - char *tls_base, - long *child_tid, long *parent_tid, - int flags, struct rtprio *rtp); - /* * System call interface. */ + +struct thr_create_initthr_args { + ucontext_t ctx; + long *tid; +}; + +static int +thr_create_initthr(struct thread *td, void *thunk) +{ + struct thr_create_initthr_args *args; + + /* Copy out the child tid. */ + args = thunk; + if (args->tid != NULL && suword_lwpid(args->tid, td->td_tid)) + return (EFAULT); + + return (set_mcontext(td, &args->ctx.uc_mcontext)); +} + int sys_thr_create(struct thread *td, struct thr_create_args *uap) /* ucontext_t *ctx, long *id, int flags */ { - ucontext_t ctx; + struct thr_create_initthr_args args; int error; - if ((error = copyin(uap->ctx, &ctx, sizeof(ctx)))) + if ((error = copyin(uap->ctx, &args.ctx, sizeof(args.ctx)))) return (error); - - error = create_thread(td, &ctx.uc_mcontext, NULL, NULL, - NULL, 0, NULL, uap->id, NULL, uap->flags, NULL); - return (error); + args.tid = uap->id; + return (thread_create(td, NULL, thr_create_initthr, &args)); } int @@ -129,6 +139,35 @@ sys_thr_new(struct thread *td, struct th return (kern_thr_new(td, ¶m)); } +static int +thr_new_initthr(struct thread *td, void *thunk) +{ + stack_t stack; + struct thr_param *param; + + /* + * Here we copy out tid to two places, one for child and one + * for parent, because pthread can create a detached thread, + * if parent wants to safely access child tid, it has to provide + * its storage, because child thread may exit quickly and + * memory is freed before parent thread can access it. + */ + param = thunk; + if ((param->child_tid != NULL && + suword_lwpid(param->child_tid, td->td_tid)) || + (param->parent_tid != NULL && + suword_lwpid(param->parent_tid, td->td_tid))) + return (EFAULT); + + /* Set up our machine context. */ + stack.ss_sp = param->stack_base; + stack.ss_size = param->stack_size; + /* Set upcall address to user thread entry function. */ + cpu_set_upcall_kse(td, param->start_func, param->arg, &stack); + /* Setup user TLS address and TLS pointer register. */ + return (cpu_set_user_tls(td, param->tls_base)); +} + int kern_thr_new(struct thread *td, struct thr_param *param) { @@ -142,22 +181,13 @@ kern_thr_new(struct thread *td, struct t return (error); rtpp = &rtp; } - error = create_thread(td, NULL, param->start_func, param->arg, - param->stack_base, param->stack_size, param->tls_base, - param->child_tid, param->parent_tid, param->flags, - rtpp); - return (error); + return (thread_create(td, rtpp, thr_new_initthr, param)); } -static int -create_thread(struct thread *td, mcontext_t *ctx, - void (*start_func)(void *), void *arg, - char *stack_base, size_t stack_size, - char *tls_base, - long *child_tid, long *parent_tid, - int flags, struct rtprio *rtp) +int +thread_create(struct thread *td, struct rtprio *rtp, + int (*initialize_thread)(struct thread *, void *), void *thunk) { - stack_t stack; struct thread *newtd; struct proc *p; int error; @@ -199,24 +229,6 @@ create_thread(struct thread *td, mcontex cpu_set_upcall(newtd, td); - /* - * Try the copyout as soon as we allocate the td so we don't - * have to tear things down in a failure case below. - * Here we copy out tid to two places, one for child and one - * for parent, because pthread can create a detached thread, - * if parent wants to safely access child tid, it has to provide - * its storage, because child thread may exit quickly and - * memory is freed before parent thread can access it. - */ - if ((child_tid != NULL && - suword_lwpid(child_tid, newtd->td_tid)) || - (parent_tid != NULL && - suword_lwpid(parent_tid, newtd->td_tid))) { - thread_free(newtd); - error = EFAULT; - goto fail; - } - bzero(&newtd->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); bcopy(&td->td_startcopy, &newtd->td_startcopy, @@ -224,26 +236,11 @@ create_thread(struct thread *td, mcontex newtd->td_proc = td->td_proc; thread_cow_get(newtd, td); - if (ctx != NULL) { /* old way to set user context */ - error = set_mcontext(newtd, ctx); - if (error != 0) { - thread_cow_free(newtd); - thread_free(newtd); - goto fail; - } - } else { - /* Set up our machine context. */ - stack.ss_sp = stack_base; - stack.ss_size = stack_size; - /* Set upcall address to user thread entry function. */ - cpu_set_upcall_kse(newtd, start_func, arg, &stack); - /* Setup user TLS address and TLS pointer register. */ - error = cpu_set_user_tls(newtd, tls_base); - if (error != 0) { - thread_cow_free(newtd); - thread_free(newtd); - goto fail; - } + error = initialize_thread(newtd, thunk); + if (error != 0) { + thread_cow_free(newtd); + thread_free(newtd); + goto fail; } PROC_LOCK(p); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Fri Jul 17 14:33:47 2015 (r285655) +++ head/sys/sys/proc.h Fri Jul 17 16:34:01 2015 (r285656) @@ -992,6 +992,8 @@ void thread_cow_get_proc(struct thread * void thread_cow_get(struct thread *newtd, struct thread *td); void thread_cow_free(struct thread *td); void thread_cow_update(struct thread *td); +int thread_create(struct thread *td, struct rtprio *rtp, + int (*initialize_thread)(struct thread *, void *), void *thunk); void thread_exit(void) __dead2; void thread_free(struct thread *td); void thread_link(struct thread *td, struct proc *p); From owner-svn-src-head@freebsd.org Fri Jul 17 17:36:34 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FA5F9A4D8B; Fri, 17 Jul 2015 17:36:34 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 382DC11C6; Fri, 17 Jul 2015 17:36:34 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HHaYS9098297; Fri, 17 Jul 2015 17:36:34 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HHaYWo098296; Fri, 17 Jul 2015 17:36:34 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201507171736.t6HHaYWo098296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Fri, 17 Jul 2015 17:36:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285657 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 17:36:34 -0000 Author: pkelsey Date: Fri Jul 17 17:36:33 2015 New Revision: 285657 URL: https://svnweb.freebsd.org/changeset/base/285657 Log: Check TCP timestamp option flag so that the automatic receive buffer scaling code does not use an uninitialized timestamp echo reply value from the stack when timestamps are not enabled. Differential Revision: https://reviews.freebsd.org/D3060 Reviewed by: hiren Approved by: jmallett (mentor) MFC after: 3 days Sponsored by: Norse Corp, Inc. Modified: head/sys/netinet/tcp_input.c Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Fri Jul 17 16:34:01 2015 (r285656) +++ head/sys/netinet/tcp_input.c Fri Jul 17 17:36:33 2015 (r285657) @@ -1856,6 +1856,7 @@ tcp_do_segment(struct mbuf *m, struct tc * the buffer to better manage the socket buffer resources. */ if (V_tcp_do_autorcvbuf && + (to.to_flags & TOF_TS) && to.to_tsecr && (so->so_rcv.sb_flags & SB_AUTOSIZE)) { if (TSTMP_GT(to.to_tsecr, tp->rfbuf_ts) && From owner-svn-src-head@freebsd.org Fri Jul 17 19:10:44 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60E3E9A4E17; Fri, 17 Jul 2015 19:10:44 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 467FB1485; Fri, 17 Jul 2015 19:10:44 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HJAiTo037829; Fri, 17 Jul 2015 19:10:44 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HJAi0V037828; Fri, 17 Jul 2015 19:10:44 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201507171910.t6HJAi0V037828@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 17 Jul 2015 19:10:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285658 - head/usr.sbin/ctladm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 19:10:44 -0000 Author: bapt Date: Fri Jul 17 19:10:43 2015 New Revision: 285658 URL: https://svnweb.freebsd.org/changeset/base/285658 Log: make ctdladm(8) return 0 is everything was ok. retval is used to test the return of XML_Parse function which is ok if 1 is returned and retval it directly returned to the main function and used as an exit value. if all the parsing part is done reset retval to 0 so that the command return 0 if everything ok Differential Revision: https://reviews.freebsd.org/D3102 Reviewed by: trasz MFC after: 3 days Sponsored by: gandi.net Modified: head/usr.sbin/ctladm/ctladm.c Modified: head/usr.sbin/ctladm/ctladm.c ============================================================================== --- head/usr.sbin/ctladm/ctladm.c Fri Jul 17 17:36:33 2015 (r285657) +++ head/usr.sbin/ctladm/ctladm.c Fri Jul 17 19:10:43 2015 (r285658) @@ -3661,6 +3661,7 @@ retry: retval = 1; goto bailout; } + retval = 0; XML_ParserFree(parser); if (verbose != 0) { @@ -4080,6 +4081,7 @@ retry: retval = 1; goto bailout; } + retval = 0; XML_ParserFree(parser); printf("LUN Backend %18s %4s %-16s %-16s\n", "Size (Blocks)", "BS", @@ -4376,6 +4378,7 @@ retry: retval = 1; goto bailout; } + retval = 0; XML_ParserFree(parser); if (quiet == 0) From owner-svn-src-head@freebsd.org Fri Jul 17 22:26:46 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A03BC9A3D0F; Fri, 17 Jul 2015 22:26:46 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 905D11679; Fri, 17 Jul 2015 22:26:46 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HMQkVi015189; Fri, 17 Jul 2015 22:26:46 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HMQk51015186; Fri, 17 Jul 2015 22:26:46 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201507172226.t6HMQk51015186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Fri, 17 Jul 2015 22:26:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285661 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 22:26:46 -0000 Author: ed Date: Fri Jul 17 22:26:45 2015 New Revision: 285661 URL: https://svnweb.freebsd.org/changeset/base/285661 Log: Undo r285656. It turns out that the CDDL sources already introduce a function called thread_create(). I'll investigate what we can do to make these functions coexist. Reported by: Ivan Klymenko Modified: head/sys/kern/kern_thr.c head/sys/sys/proc.h Modified: head/sys/kern/kern_thr.c ============================================================================== --- head/sys/kern/kern_thr.c Fri Jul 17 20:30:30 2015 (r285660) +++ head/sys/kern/kern_thr.c Fri Jul 17 22:26:45 2015 (r285661) @@ -89,39 +89,29 @@ suword_lwpid(void *addr, lwpid_t lwpid) #define suword_lwpid suword #endif +static int create_thread(struct thread *td, mcontext_t *ctx, + void (*start_func)(void *), void *arg, + char *stack_base, size_t stack_size, + char *tls_base, + long *child_tid, long *parent_tid, + int flags, struct rtprio *rtp); + /* * System call interface. */ - -struct thr_create_initthr_args { - ucontext_t ctx; - long *tid; -}; - -static int -thr_create_initthr(struct thread *td, void *thunk) -{ - struct thr_create_initthr_args *args; - - /* Copy out the child tid. */ - args = thunk; - if (args->tid != NULL && suword_lwpid(args->tid, td->td_tid)) - return (EFAULT); - - return (set_mcontext(td, &args->ctx.uc_mcontext)); -} - int sys_thr_create(struct thread *td, struct thr_create_args *uap) /* ucontext_t *ctx, long *id, int flags */ { - struct thr_create_initthr_args args; + ucontext_t ctx; int error; - if ((error = copyin(uap->ctx, &args.ctx, sizeof(args.ctx)))) + if ((error = copyin(uap->ctx, &ctx, sizeof(ctx)))) return (error); - args.tid = uap->id; - return (thread_create(td, NULL, thr_create_initthr, &args)); + + error = create_thread(td, &ctx.uc_mcontext, NULL, NULL, + NULL, 0, NULL, uap->id, NULL, uap->flags, NULL); + return (error); } int @@ -139,35 +129,6 @@ sys_thr_new(struct thread *td, struct th return (kern_thr_new(td, ¶m)); } -static int -thr_new_initthr(struct thread *td, void *thunk) -{ - stack_t stack; - struct thr_param *param; - - /* - * Here we copy out tid to two places, one for child and one - * for parent, because pthread can create a detached thread, - * if parent wants to safely access child tid, it has to provide - * its storage, because child thread may exit quickly and - * memory is freed before parent thread can access it. - */ - param = thunk; - if ((param->child_tid != NULL && - suword_lwpid(param->child_tid, td->td_tid)) || - (param->parent_tid != NULL && - suword_lwpid(param->parent_tid, td->td_tid))) - return (EFAULT); - - /* Set up our machine context. */ - stack.ss_sp = param->stack_base; - stack.ss_size = param->stack_size; - /* Set upcall address to user thread entry function. */ - cpu_set_upcall_kse(td, param->start_func, param->arg, &stack); - /* Setup user TLS address and TLS pointer register. */ - return (cpu_set_user_tls(td, param->tls_base)); -} - int kern_thr_new(struct thread *td, struct thr_param *param) { @@ -181,13 +142,22 @@ kern_thr_new(struct thread *td, struct t return (error); rtpp = &rtp; } - return (thread_create(td, rtpp, thr_new_initthr, param)); + error = create_thread(td, NULL, param->start_func, param->arg, + param->stack_base, param->stack_size, param->tls_base, + param->child_tid, param->parent_tid, param->flags, + rtpp); + return (error); } -int -thread_create(struct thread *td, struct rtprio *rtp, - int (*initialize_thread)(struct thread *, void *), void *thunk) +static int +create_thread(struct thread *td, mcontext_t *ctx, + void (*start_func)(void *), void *arg, + char *stack_base, size_t stack_size, + char *tls_base, + long *child_tid, long *parent_tid, + int flags, struct rtprio *rtp) { + stack_t stack; struct thread *newtd; struct proc *p; int error; @@ -229,6 +199,24 @@ thread_create(struct thread *td, struct cpu_set_upcall(newtd, td); + /* + * Try the copyout as soon as we allocate the td so we don't + * have to tear things down in a failure case below. + * Here we copy out tid to two places, one for child and one + * for parent, because pthread can create a detached thread, + * if parent wants to safely access child tid, it has to provide + * its storage, because child thread may exit quickly and + * memory is freed before parent thread can access it. + */ + if ((child_tid != NULL && + suword_lwpid(child_tid, newtd->td_tid)) || + (parent_tid != NULL && + suword_lwpid(parent_tid, newtd->td_tid))) { + thread_free(newtd); + error = EFAULT; + goto fail; + } + bzero(&newtd->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); bcopy(&td->td_startcopy, &newtd->td_startcopy, @@ -236,11 +224,26 @@ thread_create(struct thread *td, struct newtd->td_proc = td->td_proc; thread_cow_get(newtd, td); - error = initialize_thread(newtd, thunk); - if (error != 0) { - thread_cow_free(newtd); - thread_free(newtd); - goto fail; + if (ctx != NULL) { /* old way to set user context */ + error = set_mcontext(newtd, ctx); + if (error != 0) { + thread_cow_free(newtd); + thread_free(newtd); + goto fail; + } + } else { + /* Set up our machine context. */ + stack.ss_sp = stack_base; + stack.ss_size = stack_size; + /* Set upcall address to user thread entry function. */ + cpu_set_upcall_kse(newtd, start_func, arg, &stack); + /* Setup user TLS address and TLS pointer register. */ + error = cpu_set_user_tls(newtd, tls_base); + if (error != 0) { + thread_cow_free(newtd); + thread_free(newtd); + goto fail; + } } PROC_LOCK(p); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Fri Jul 17 20:30:30 2015 (r285660) +++ head/sys/sys/proc.h Fri Jul 17 22:26:45 2015 (r285661) @@ -992,8 +992,6 @@ void thread_cow_get_proc(struct thread * void thread_cow_get(struct thread *newtd, struct thread *td); void thread_cow_free(struct thread *td); void thread_cow_update(struct thread *td); -int thread_create(struct thread *td, struct rtprio *rtp, - int (*initialize_thread)(struct thread *, void *), void *thunk); void thread_exit(void) __dead2; void thread_free(struct thread *td); void thread_link(struct thread *td, struct proc *p); From owner-svn-src-head@freebsd.org Fri Jul 17 22:26:56 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4DA69A3D38; Fri, 17 Jul 2015 22:26:56 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vps.rulingia.com (vps.rulingia.com [103.243.244.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps.rulingia.com", Issuer "CAcert Class 3 Root" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E7B21912; Fri, 17 Jul 2015 22:26:55 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from server.rulingia.com (c220-239-242-83.belrs5.nsw.optusnet.com.au [220.239.242.83]) by vps.rulingia.com (8.15.2/8.14.9) with ESMTPS id t6HMQcZs038759 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 18 Jul 2015 08:26:44 +1000 (AEST) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.14.9/8.14.9) with ESMTP id t6HMQW6U085754 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 18 Jul 2015 08:26:32 +1000 (AEST) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.14.9/8.14.9/Submit) id t6HMQVVP085753; Sat, 18 Jul 2015 08:26:31 +1000 (AEST) (envelope-from peter) Date: Sat, 18 Jul 2015 08:26:31 +1000 From: Peter Jeremy To: "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 Message-ID: <20150717222631.GD36150@server.rulingia.com> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="wq9mPyueHGvFACwf" Content-Disposition: inline In-Reply-To: <201507162207.t6GM7ECT009955@repo.freebsd.org> X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 22:26:56 -0000 --wq9mPyueHGvFACwf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2015-Jul-16 22:07:14 +0000, "Pedro F. Giffuni" wrote: >Log: =2E.. > sqlite: clean a couple of invocations of memcpy(3) > =20 > Found almost accidentally by our native gcc when enhanced with > FORTIFY_SOURCE. =2E.. >- memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >+ memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); > walShmBarrier(pWal); >- memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >+ memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); If the compiler complained about that, the compiler is broken. 'const' is a promise to the caller that the given parameter will not be modified by the callee. There's no requirement that the passed argument be const. As bde commented, the casts are all spurious. --=20 Peter Jeremy --wq9mPyueHGvFACwf Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJVqYEXXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRFRUIyOTg2QzMwNjcxRTc0RTY1QzIyN0Ux NkE1OTdBMEU0QTIwQjM0AAoJEBall6Dkogs0nqAP/12Q9SIhp5lQEe5cdqK5jhOA f/sgMX7KfWlovU+DTYxzbrIUrq6GHFpFNIm0OJFCyvbd6YG84CC66Eg+Vn1k8YFg 1zCqKyRP9Di1J//23yffP5LQeMGJXB0SfGWLSx9UYvQhcB8tDmAly4/aGTK2l+0m 36xTsGQnpfQi8XJGDfFpYmSYSXtJ/cirbRoCRE8QbfC+Bwzr+GXwFeTBkT6ZKRNk uLx9dbH3HJiChM16gnk7vE6fcbmUUNbdHms07+E2f6Suv4aU0WPHWnEBxGnPkfX5 q5OtH1fPqkcJWtq4zIa3TXH1zb+jV/+uGElYIRsIXqbnVEh65U9y5LlztTqD+no+ 4U1kVr0KCqITYg7oIVSbE++drAqPQgz31aZ1BSm4GabUQbS83F5pduZ1BnUDotHi 2psnqgMuh/Nhab3wM545Q0ENtxeDojlachc8DpTtabMX1xOLdiuV/TeYvj9Bp3yw 7j7DakUgbCJIvkdLmkjehViVmaX0TVQwPYlWBpXlKZnTcW2ahFXbzzGZlp4oS1hz smZjDawt52oKN3hNSQj05IibbGC7JuY1mH+SIJhtsSZD47ZjtPmMZwiArzvlzcuT /p+wqEl2RRAr3EGSNU9huwXRvgvxdA6Nad8ovvhZGsBGyI29tgAF2XNZMJXSqR2J /Or/T2gdUlpgyy1mWXK2 =aPzA -----END PGP SIGNATURE----- --wq9mPyueHGvFACwf-- From owner-svn-src-head@freebsd.org Fri Jul 17 22:53:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75D159A419A for ; Fri, 17 Jul 2015 22:53:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm48.bullet.mail.bf1.yahoo.com (nm48.bullet.mail.bf1.yahoo.com [216.109.114.64]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2792115A0 for ; Fri, 17 Jul 2015 22:53:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1437173581; bh=I+BCKTFfZMq0Kp1wRFZqAiMbQxnsSQvj7TSmpavKupw=; h=Date:From:To:CC:Subject:References:In-Reply-To:From:Subject; b=FhpqPGsB4mFIx0tNYHM4qFqllOG+1s+ak6Y9fQakQLUFObfLgf+kP6n+uv2ZswN4DyQmBW8p2bQuUnYVt9JTITVskX7ZqArjs4JXNVOiYeSPysmprsAdHMfNL6UqcsxKHvq6HwiL3Cs3e0qEmd1MOC7vuvuRkpk/wmfwtaRTYkQtmxDh59sPhjczuKa8Dkh0Q1pM8VA0UM9qZQupFYjgZdyo8umxSNkxOq+hp1o4/shOR985r3qT8xm0XJcBbXWbY3nOeRiTsWV+EfsIWDeVBx6KA+D0QXnao5ggASMelRAbxy2QhNy66aHm+EX1wmMGKlKUQTNZqJ2LP+SVnoBckw== Received: from [98.139.170.179] by nm48.bullet.mail.bf1.yahoo.com with NNFMP; 17 Jul 2015 22:53:01 -0000 Received: from [98.139.211.197] by tm22.bullet.mail.bf1.yahoo.com with NNFMP; 17 Jul 2015 22:53:01 -0000 Received: from [127.0.0.1] by smtp206.mail.bf1.yahoo.com with NNFMP; 17 Jul 2015 22:53:01 -0000 X-Yahoo-Newman-Id: 440407.96290.bm@smtp206.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: j9t0y6sVM1mZa4bAmxdbIMzRXlTIeeoCbJThvEBXTQfWMJP HV1AzPhqd9j5ThsyOvgU4y3SINcPE1XXXrt2q72R.y3fn_EVatSMtGC5NoFb lJHphmyca6yNb9lZJMKQrhIHORNhLo_tL794fvnCzUd6Uh5u54H_HBdfmB6K 6i2Wun4_yjvydyJsknpXrn.ApsHouW3QFanWoKrAtWBovYN63kK.6HvAiCKo 6IIApjcJb2oWH3eAOV7.lLZbe.N35jjE0rgGSI2ppc9mJU89rqcZ6NCP32UY 41lErgJT4b5O.OK0pd4uQkC9l7cXmNjdBpPjkUvINeYTcamdnvKPXCXvOyef PUZhXjs1hAAA6OGsRqyOMR015dHstTuPsVrwjAX.UiN3pkBDwl3HKkQAJHH2 BfVPzxpRyEeGyK8utYDAb_uPaQ11xuWeDgtO78hSgCZjBfG5mxqtC5ioe7ZA VipWvBUyUH1jxKwHfARavoyLSruMNf3Skc84SuanxIqEoAcT3CJW3d2n.jyy 5zo5OLe_Y.d2Pnp5jbJhbdhIRoLpdt2.H X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55A98763.1030705@FreeBSD.org> Date: Fri, 17 Jul 2015 17:53:23 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Peter Jeremy CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <20150717222631.GD36150@server.rulingia.com> In-Reply-To: <20150717222631.GD36150@server.rulingia.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 22:53:09 -0000 On 07/17/15 17:26, Peter Jeremy wrote: > On 2015-Jul-16 22:07:14 +0000, "Pedro F. Giffuni" wrote: >> Log: > ... >> sqlite: clean a couple of invocations of memcpy(3) >> >> Found almost accidentally by our native gcc when enhanced with >> FORTIFY_SOURCE. > ... >> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); >> walShmBarrier(pWal); >> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, sizeof(WalIndexHdr)); > If the compiler complained about that, the compiler is broken. The change was rather collateral (read cosmetical) to the real warning which remains unfixed. The compiler warning is this: ... ===> lib/libsqlite3 (obj,depend,all,install) cc1: warnings being treated as errors /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c: In function 'walIndexWriteHdr': /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49490: warning: passing argument 1 of 'memcpy' discards qualifiers from pointer target type /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49492: warning: passing argument 1 of 'memcpy' discards qualifiers from pointer target type --- sqlite3.So --- *** [sqlite3.So] Error code 1 ... make[6]: stopped in /scratch/tmp/pfg/head/lib/libsqlite3 It only happens when using the experimental FORTIFY_SOURCE support [1], and it only happens with gcc (the base one is the only tested). Yes, I am suspecting a compiler bug but gcc has been really useful to find bugs in fortify_source. > 'const' > is a promise to the caller that the given parameter will not be modified > by the callee. There's no requirement that the passed argument be const. > As bde commented, the casts are all spurious. And since this is contrib'ed code I am not going through the code churn but upstream has been notified. Pedro. [1] https://reviews.freebsd.org/D3043 From owner-svn-src-head@freebsd.org Fri Jul 17 23:30:46 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DAB649A458F; Fri, 17 Jul 2015 23:30:46 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B43761564; Fri, 17 Jul 2015 23:30:46 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6HNUkaH040582; Fri, 17 Jul 2015 23:30:46 GMT (envelope-from benno@FreeBSD.org) Received: (from benno@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6HNUiAD040574; Fri, 17 Jul 2015 23:30:44 GMT (envelope-from benno@FreeBSD.org) Message-Id: <201507172330.t6HNUiAD040574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: benno set sender to benno@FreeBSD.org using -f From: Benno Rice Date: Fri, 17 Jul 2015 23:30:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285662 - in head/sys: amd64/conf conf dev/pms i386/conf modules modules/pms X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jul 2015 23:30:47 -0000 Author: benno Date: Fri Jul 17 23:30:43 2015 New Revision: 285662 URL: https://svnweb.freebsd.org/changeset/base/285662 Log: Merge driver for PMC Sierra's range of SAS/SATA HBAs. Submitted by: Achim Leubner Reviewed by: scottl Added: head/sys/dev/pms/ - copied from r285661, projects/pms/sys/dev/pms/ head/sys/modules/pms/ - copied from r285661, projects/pms/sys/modules/pms/ Modified: head/sys/amd64/conf/GENERIC head/sys/amd64/conf/NOTES head/sys/conf/files head/sys/i386/conf/GENERIC head/sys/i386/conf/NOTES head/sys/modules/Makefile Directory Properties: head/ (props changed) Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/amd64/conf/GENERIC Fri Jul 17 23:30:43 2015 (r285662) @@ -170,6 +170,7 @@ device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device mrsas # LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s +device pmspcv # PMC-Sierra SAS/SATA Controller driver #XXX pointer/int warnings #device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Modified: head/sys/amd64/conf/NOTES ============================================================================== --- head/sys/amd64/conf/NOTES Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/amd64/conf/NOTES Fri Jul 17 23:30:43 2015 (r285662) @@ -486,6 +486,10 @@ device nvme # base NVMe drive device nvd # expose NVMe namespaces as disks, depends on nvme # +# PMC-Sierra SAS/SATA controller +device pmspcv + +# # SafeNet crypto driver: can be moved to the MI NOTES as soon as # it's tested on a big-endian machine # Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/conf/files Fri Jul 17 23:30:43 2015 (r285662) @@ -2069,6 +2069,102 @@ dev/pdq/if_fea.c optional fea eisa dev/pdq/if_fpa.c optional fpa pci dev/pdq/pdq.c optional nowerror fea eisa | fpa pci dev/pdq/pdq_ifsubr.c optional nowerror fea eisa | fpa pci +dev/pms/freebsd/driver/ini/src/agtiapi.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sadisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/mpi.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/saframe.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sahw.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sainit.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/saint.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sampicmd.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sampirsp.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/saphy.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/saport.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sasata.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sasmp.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sassp.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/satimer.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/sautil.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/saioctlcmd.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sallsdk/spc/mpidebug.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dminit.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dmsmp.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dmdisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dmport.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dmtimer.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/discovery/dm/dmmisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/sminit.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/smmisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/smsat.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/smsatcb.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/smsathw.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/sat/src/smtimer.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdinit.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdmisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdesgl.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdport.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdint.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdioctl.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdhw.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/ossacmnapi.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tddmcmnapi.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdsmcmnapi.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/common/tdtimers.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sas/ini/itdcb.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sas/ini/itdinit.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sas/ini/itddisc.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sata/host/sat.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sata/host/ossasat.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" +dev/pms/RefTisa/tisa/sassata/sata/host/sathw.c optional pmspcv \ + compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/ppbus/if_plip.c optional plip dev/ppbus/immio.c optional vpo dev/ppbus/lpbb.c optional lpbb Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/i386/conf/GENERIC Fri Jul 17 23:30:43 2015 (r285662) @@ -175,6 +175,7 @@ device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device mrsas # LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s +device pmspcv # PMC-Sierra SAS/SATA Controller driver device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Modified: head/sys/i386/conf/NOTES ============================================================================== --- head/sys/i386/conf/NOTES Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/i386/conf/NOTES Fri Jul 17 23:30:43 2015 (r285662) @@ -791,6 +791,9 @@ device nvme # base NVMe drive device nvd # expose NVMe namespaces as disks, depends on nvme # +# PMC-Sierra SAS/SATA controller +device pmspcv +# # SafeNet crypto driver: can be moved to the MI NOTES as soon as # it's tested on a big-endian machine # Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Fri Jul 17 22:26:45 2015 (r285661) +++ head/sys/modules/Makefile Fri Jul 17 23:30:43 2015 (r285662) @@ -276,6 +276,7 @@ SUBDIR= \ ${_pfsync} \ plip \ ${_pmc} \ + ${_pms} \ ppbus \ ppc \ ppi \ @@ -620,6 +621,7 @@ _ixlv= ixlv _linux64= linux64 _linux_common= linux_common _ntb= ntb +_pms= pms _qlxge= qlxge _qlxgb= qlxgb _qlxgbe= qlxgbe From owner-svn-src-head@freebsd.org Sat Jul 18 00:22:02 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6BCD9A4F3A; Sat, 18 Jul 2015 00:22:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 89A6A1DDB; Sat, 18 Jul 2015 00:22:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I0M20U063833; Sat, 18 Jul 2015 00:22:02 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I0M1nj063830; Sat, 18 Jul 2015 00:22:01 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201507180022.t6I0M1nj063830@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 18 Jul 2015 00:22:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285663 - in head/sys: cddl/dev/lockstat kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 00:22:02 -0000 Author: markj Date: Sat Jul 18 00:22:00 2015 New Revision: 285663 URL: https://svnweb.freebsd.org/changeset/base/285663 Log: Modify lockstat_nsecs() to just return unless lockstat probes are actually enabled. The cost of a timecounter read can be quite significant, and the problem became more apparent after r284297, since that change resulted in a call to lockstat_nsecs() for each acquisition of an rwlock read lock. PR: 201642 Reviewed by: avg Tested by: Jason Unovitch MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D3073 Modified: head/sys/cddl/dev/lockstat/lockstat.c head/sys/kern/kern_lockstat.c head/sys/sys/lockstat.h Modified: head/sys/cddl/dev/lockstat/lockstat.c ============================================================================== --- head/sys/cddl/dev/lockstat/lockstat.c Fri Jul 17 23:30:43 2015 (r285662) +++ head/sys/cddl/dev/lockstat/lockstat.c Sat Jul 18 00:22:00 2015 (r285663) @@ -159,6 +159,8 @@ lockstat_enable(void *arg, dtrace_id_t i ASSERT(!lockstat_probemap[probe->lsp_probe]); + lockstat_enabled++; + lockstat_probemap[probe->lsp_probe] = id; #ifdef DOODAD membar_producer(); @@ -182,6 +184,8 @@ lockstat_disable(void *arg, dtrace_id_t ASSERT(lockstat_probemap[probe->lsp_probe]); + lockstat_enabled--; + lockstat_probemap[probe->lsp_probe] = 0; #ifdef DOODAD lockstat_hot_patch(); Modified: head/sys/kern/kern_lockstat.c ============================================================================== --- head/sys/kern/kern_lockstat.c Fri Jul 17 23:30:43 2015 (r285662) +++ head/sys/kern/kern_lockstat.c Sat Jul 18 00:22:00 2015 (r285663) @@ -45,7 +45,7 @@ uint32_t lockstat_probemap[LS_NPROBES]; void (*lockstat_probe_func)(uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); - +int lockstat_enabled = 0; uint64_t lockstat_nsecs(void) @@ -53,6 +53,9 @@ lockstat_nsecs(void) struct bintime bt; uint64_t ns; + if (!lockstat_enabled) + return (0); + binuptime(&bt); ns = bt.sec * (uint64_t)1000000000; ns += ((uint64_t)1000000000 * (uint32_t)(bt.frac >> 32)) >> 32; Modified: head/sys/sys/lockstat.h ============================================================================== --- head/sys/sys/lockstat.h Fri Jul 17 23:30:43 2015 (r285662) +++ head/sys/sys/lockstat.h Sat Jul 18 00:22:00 2015 (r285663) @@ -154,6 +154,7 @@ typedef void (*lockstat_probe_func_t)(ui uintptr_t arg2, uintptr_t arg3, uintptr_t arg4); extern lockstat_probe_func_t lockstat_probe_func; extern uint64_t lockstat_nsecs(void); +extern int lockstat_enabled; #ifdef KDTRACE_HOOKS /* From owner-svn-src-head@freebsd.org Sat Jul 18 00:57:33 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBB8E9A430D; Sat, 18 Jul 2015 00:57:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 CAD7C1DF1; Sat, 18 Jul 2015 00:57:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I0vW9L076524; Sat, 18 Jul 2015 00:57:32 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I0vVhS076519; Sat, 18 Jul 2015 00:57:31 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201507180057.t6I0vVhS076519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 18 Jul 2015 00:57:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285664 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 00:57:33 -0000 Author: markj Date: Sat Jul 18 00:57:30 2015 New Revision: 285664 URL: https://svnweb.freebsd.org/changeset/base/285664 Log: Pass the lock object to lockstat_nsecs() and return immediately if LO_NOPROFILE is set. Some timecounter handlers acquire a spin mutex, and we don't want to recurse if lockstat probes are enabled. PR: 201642 Reviewed by: avg MFC after: 3 days Modified: head/sys/kern/kern_lockstat.c head/sys/kern/kern_mutex.c head/sys/kern/kern_rwlock.c head/sys/kern/kern_sx.c head/sys/sys/lockstat.h Modified: head/sys/kern/kern_lockstat.c ============================================================================== --- head/sys/kern/kern_lockstat.c Sat Jul 18 00:22:00 2015 (r285663) +++ head/sys/kern/kern_lockstat.c Sat Jul 18 00:57:30 2015 (r285664) @@ -34,9 +34,10 @@ #ifdef KDTRACE_HOOKS -#include #include +#include #include +#include /* * The following must match the type definition of dtrace_probe. It is @@ -48,13 +49,15 @@ void (*lockstat_probe_func)(uint32_t, ui int lockstat_enabled = 0; uint64_t -lockstat_nsecs(void) +lockstat_nsecs(struct lock_object *lo) { struct bintime bt; uint64_t ns; if (!lockstat_enabled) return (0); + if ((lo->lo_flags & LO_NOPROFILE) != 0) + return (0); binuptime(&bt); ns = bt.sec * (uint64_t)1000000000; Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sat Jul 18 00:22:00 2015 (r285663) +++ head/sys/kern/kern_mutex.c Sat Jul 18 00:57:30 2015 (r285664) @@ -416,7 +416,7 @@ __mtx_lock_sleep(volatile uintptr_t *c, "_mtx_lock_sleep: %s contested (lock=%p) at %s:%d", m->lock_object.lo_name, (void *)m->mtx_lock, file, line); #ifdef KDTRACE_HOOKS - all_time -= lockstat_nsecs(); + all_time -= lockstat_nsecs(&m->lock_object); #endif while (!_mtx_obtain_lock(m, tid)) { @@ -513,16 +513,16 @@ __mtx_lock_sleep(volatile uintptr_t *c, * Block on the turnstile. */ #ifdef KDTRACE_HOOKS - sleep_time -= lockstat_nsecs(); + sleep_time -= lockstat_nsecs(&m->lock_object); #endif turnstile_wait(ts, mtx_owner(m), TS_EXCLUSIVE_QUEUE); #ifdef KDTRACE_HOOKS - sleep_time += lockstat_nsecs(); + sleep_time += lockstat_nsecs(&m->lock_object); sleep_cnt++; #endif } #ifdef KDTRACE_HOOKS - all_time += lockstat_nsecs(); + all_time += lockstat_nsecs(&m->lock_object); #endif #ifdef KTR if (cont_logged) { @@ -600,7 +600,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t #endif lock_profile_obtain_lock_failed(&m->lock_object, &contested, &waittime); #ifdef KDTRACE_HOOKS - spin_time -= lockstat_nsecs(); + spin_time -= lockstat_nsecs(&m->lock_object); #endif while (!_mtx_obtain_lock(m, tid)) { @@ -620,7 +620,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t spinlock_enter(); } #ifdef KDTRACE_HOOKS - spin_time += lockstat_nsecs(); + spin_time += lockstat_nsecs(&m->lock_object); #endif if (LOCK_LOG_TEST(&m->lock_object, opts)) @@ -630,7 +630,8 @@ _mtx_lock_spin_cookie(volatile uintptr_t LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, m, contested, waittime, (file), (line)); - LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); + if (spin_time != 0) + LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); } #endif /* SMP */ @@ -655,7 +656,7 @@ thread_lock_flags_(struct thread *td, in return; #ifdef KDTRACE_HOOKS - spin_time -= lockstat_nsecs(); + spin_time -= lockstat_nsecs(&td->td_lock->lock_object); #endif for (;;) { retry: @@ -703,7 +704,7 @@ retry: __mtx_unlock_spin(m); /* does spinlock_exit() */ } #ifdef KDTRACE_HOOKS - spin_time += lockstat_nsecs(); + spin_time += lockstat_nsecs(&m->lock_object); #endif if (m->mtx_recurse == 0) LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, Modified: head/sys/kern/kern_rwlock.c ============================================================================== --- head/sys/kern/kern_rwlock.c Sat Jul 18 00:22:00 2015 (r285663) +++ head/sys/kern/kern_rwlock.c Sat Jul 18 00:57:30 2015 (r285664) @@ -378,7 +378,7 @@ __rw_rlock(volatile uintptr_t *c, const WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL); #ifdef KDTRACE_HOOKS - all_time -= lockstat_nsecs(); + all_time -= lockstat_nsecs(&rw->lock_object); state = rw->rw_lock; #endif for (;;) { @@ -532,11 +532,11 @@ __rw_rlock(volatile uintptr_t *c, const CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, rw); #ifdef KDTRACE_HOOKS - sleep_time -= lockstat_nsecs(); + sleep_time -= lockstat_nsecs(&rw->lock_object); #endif turnstile_wait(ts, rw_owner(rw), TS_SHARED_QUEUE); #ifdef KDTRACE_HOOKS - sleep_time += lockstat_nsecs(); + sleep_time += lockstat_nsecs(&rw->lock_object); sleep_cnt++; #endif if (LOCK_LOG_TEST(&rw->lock_object, 0)) @@ -544,7 +544,7 @@ __rw_rlock(volatile uintptr_t *c, const __func__, rw); } #ifdef KDTRACE_HOOKS - all_time += lockstat_nsecs(); + all_time += lockstat_nsecs(&rw->lock_object); if (sleep_time) LOCKSTAT_RECORD4(LS_RW_RLOCK_BLOCK, rw, sleep_time, LOCKSTAT_READER, (state & RW_LOCK_READ) == 0, @@ -767,7 +767,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u rw->lock_object.lo_name, (void *)rw->rw_lock, file, line); #ifdef KDTRACE_HOOKS - all_time -= lockstat_nsecs(); + all_time -= lockstat_nsecs(&rw->lock_object); state = rw->rw_lock; #endif while (!_rw_write_lock(rw, tid)) { @@ -893,11 +893,11 @@ __rw_wlock_hard(volatile uintptr_t *c, u CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, rw); #ifdef KDTRACE_HOOKS - sleep_time -= lockstat_nsecs(); + sleep_time -= lockstat_nsecs(&rw->lock_object); #endif turnstile_wait(ts, rw_owner(rw), TS_EXCLUSIVE_QUEUE); #ifdef KDTRACE_HOOKS - sleep_time += lockstat_nsecs(); + sleep_time += lockstat_nsecs(&rw->lock_object); sleep_cnt++; #endif if (LOCK_LOG_TEST(&rw->lock_object, 0)) @@ -908,7 +908,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u #endif } #ifdef KDTRACE_HOOKS - all_time += lockstat_nsecs(); + all_time += lockstat_nsecs(&rw->lock_object); if (sleep_time) LOCKSTAT_RECORD4(LS_RW_WLOCK_BLOCK, rw, sleep_time, LOCKSTAT_WRITER, (state & RW_LOCK_READ) == 0, Modified: head/sys/kern/kern_sx.c ============================================================================== --- head/sys/kern/kern_sx.c Sat Jul 18 00:22:00 2015 (r285663) +++ head/sys/kern/kern_sx.c Sat Jul 18 00:57:30 2015 (r285664) @@ -541,7 +541,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t sx->lock_object.lo_name, (void *)sx->sx_lock, file, line); #ifdef KDTRACE_HOOKS - all_time -= lockstat_nsecs(); + all_time -= lockstat_nsecs(&sx->lock_object); state = sx->sx_lock; #endif while (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) { @@ -691,7 +691,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t __func__, sx); #ifdef KDTRACE_HOOKS - sleep_time -= lockstat_nsecs(); + sleep_time -= lockstat_nsecs(&sx->lock_object); #endif GIANT_SAVE(); sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, @@ -702,7 +702,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t else error = sleepq_wait_sig(&sx->lock_object, 0); #ifdef KDTRACE_HOOKS - sleep_time += lockstat_nsecs(); + sleep_time += lockstat_nsecs(&sx->lock_object); sleep_cnt++; #endif if (error) { @@ -717,7 +717,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t __func__, sx); } #ifdef KDTRACE_HOOKS - all_time += lockstat_nsecs(); + all_time += lockstat_nsecs(&sx->lock_object); if (sleep_time) LOCKSTAT_RECORD4(LS_SX_XLOCK_BLOCK, sx, sleep_time, LOCKSTAT_WRITER, (state & SX_LOCK_SHARED) == 0, @@ -828,7 +828,7 @@ _sx_slock_hard(struct sx *sx, int opts, #ifdef KDTRACE_HOOKS state = sx->sx_lock; - all_time -= lockstat_nsecs(); + all_time -= lockstat_nsecs(&sx->lock_object); #endif /* @@ -955,7 +955,7 @@ _sx_slock_hard(struct sx *sx, int opts, __func__, sx); #ifdef KDTRACE_HOOKS - sleep_time -= lockstat_nsecs(); + sleep_time -= lockstat_nsecs(&sx->lock_object); #endif GIANT_SAVE(); sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, @@ -966,7 +966,7 @@ _sx_slock_hard(struct sx *sx, int opts, else error = sleepq_wait_sig(&sx->lock_object, 0); #ifdef KDTRACE_HOOKS - sleep_time += lockstat_nsecs(); + sleep_time += lockstat_nsecs(&sx->lock_object); sleep_cnt++; #endif if (error) { @@ -981,7 +981,7 @@ _sx_slock_hard(struct sx *sx, int opts, __func__, sx); } #ifdef KDTRACE_HOOKS - all_time += lockstat_nsecs(); + all_time += lockstat_nsecs(&sx->lock_object); if (sleep_time) LOCKSTAT_RECORD4(LS_SX_SLOCK_BLOCK, sx, sleep_time, LOCKSTAT_READER, (state & SX_LOCK_SHARED) == 0, Modified: head/sys/sys/lockstat.h ============================================================================== --- head/sys/sys/lockstat.h Sat Jul 18 00:22:00 2015 (r285663) +++ head/sys/sys/lockstat.h Sat Jul 18 00:57:30 2015 (r285664) @@ -149,11 +149,12 @@ * The following must match the type definition of dtrace_probe. It is * defined this way to avoid having to rely on CDDL code. */ +struct lock_object; extern uint32_t lockstat_probemap[LS_NPROBES]; typedef void (*lockstat_probe_func_t)(uint32_t, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4); extern lockstat_probe_func_t lockstat_probe_func; -extern uint64_t lockstat_nsecs(void); +extern uint64_t lockstat_nsecs(struct lock_object *); extern int lockstat_enabled; #ifdef KDTRACE_HOOKS From owner-svn-src-head@freebsd.org Sat Jul 18 01:35:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C0859A4CAE; Sat, 18 Jul 2015 01:35:18 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wg0-x235.google.com (mail-wg0-x235.google.com [IPv6:2a00:1450:400c:c00::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0CC6B1CAA; Sat, 18 Jul 2015 01:35:18 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by wgav7 with SMTP id v7so27915230wga.2; Fri, 17 Jul 2015 18:35:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=lnz+TMzIAN5XZvkhuBJDkK8y/mWcVJ5xp007QdrsGl8=; b=S3dbn1N/QMAKpnTDrkOXQ0d0IrlWkd0ZlrQa8fN53/2cGjVAPjLrjJ+qTquWcpCoth fYQe7ev1oDEraVQ8IG5aAoucrM/VgWmaxlrEkMJerYgPQxXcP8Yzre1gipNrkpatFWoc WVAjIA0pt0wS6NI32WfJ0yH02xgz+r3tZQGRq04yGFqhKVgQc8QHl9c85VhbGtGMR4Lz 4nY9XrG8JLpb0yw/vhaWq1BIvEccvHL2JNepS08I4p8sv2KE/xf0Be98vDHuok6/YGeC sXrZg20YjUql5qh4/uf1y5b/L1oxqy2GTIvDLxeXwRdq4J+jYyoTigifNAd6CdUidHwu eGeg== X-Received: by 10.194.238.168 with SMTP id vl8mr35436415wjc.128.1437183316398; Fri, 17 Jul 2015 18:35:16 -0700 (PDT) Received: from dft-labs.eu (n1x0n-1-pt.tunnel.tserv5.lon1.ipv6.he.net. [2001:470:1f08:1f7::2]) by smtp.gmail.com with ESMTPSA id dl10sm20543807wjb.42.2015.07.17.18.35.13 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 17 Jul 2015 18:35:14 -0700 (PDT) Date: Sat, 18 Jul 2015 03:35:11 +0200 From: Mateusz Guzik To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285664 - in head/sys: kern sys Message-ID: <20150718013511.GA5792@dft-labs.eu> References: <201507180057.t6I0vVhS076519@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <201507180057.t6I0vVhS076519@repo.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 01:35:18 -0000 On Sat, Jul 18, 2015 at 12:57:31AM +0000, Mark Johnston wrote: > Author: markj > Date: Sat Jul 18 00:57:30 2015 > New Revision: 285664 > URL: https://svnweb.freebsd.org/changeset/base/285664 > > Log: > Pass the lock object to lockstat_nsecs() and return immediately if > LO_NOPROFILE is set. Some timecounter handlers acquire a spin mutex, and > we don't want to recurse if lockstat probes are enabled. > Why do we even make the call? Have you tried replacing this with an inline with __predict_false on both conditions? > PR: 201642 > Reviewed by: avg > MFC after: 3 days > > Modified: > head/sys/kern/kern_lockstat.c > head/sys/kern/kern_mutex.c > head/sys/kern/kern_rwlock.c > head/sys/kern/kern_sx.c > head/sys/sys/lockstat.h > > Modified: head/sys/kern/kern_lockstat.c > ============================================================================== > --- head/sys/kern/kern_lockstat.c Sat Jul 18 00:22:00 2015 (r285663) > +++ head/sys/kern/kern_lockstat.c Sat Jul 18 00:57:30 2015 (r285664) > @@ -34,9 +34,10 @@ > > #ifdef KDTRACE_HOOKS > > -#include > #include > +#include > #include > +#include > > /* > * The following must match the type definition of dtrace_probe. It is > @@ -48,13 +49,15 @@ void (*lockstat_probe_func)(uint32_t, ui > int lockstat_enabled = 0; > > uint64_t > -lockstat_nsecs(void) > +lockstat_nsecs(struct lock_object *lo) > { > struct bintime bt; > uint64_t ns; > > if (!lockstat_enabled) > return (0); > + if ((lo->lo_flags & LO_NOPROFILE) != 0) > + return (0); > > binuptime(&bt); > ns = bt.sec * (uint64_t)1000000000; > > Modified: head/sys/kern/kern_mutex.c > ============================================================================== > --- head/sys/kern/kern_mutex.c Sat Jul 18 00:22:00 2015 (r285663) > +++ head/sys/kern/kern_mutex.c Sat Jul 18 00:57:30 2015 (r285664) > @@ -416,7 +416,7 @@ __mtx_lock_sleep(volatile uintptr_t *c, > "_mtx_lock_sleep: %s contested (lock=%p) at %s:%d", > m->lock_object.lo_name, (void *)m->mtx_lock, file, line); > #ifdef KDTRACE_HOOKS > - all_time -= lockstat_nsecs(); > + all_time -= lockstat_nsecs(&m->lock_object); > #endif > > while (!_mtx_obtain_lock(m, tid)) { > @@ -513,16 +513,16 @@ __mtx_lock_sleep(volatile uintptr_t *c, > * Block on the turnstile. > */ > #ifdef KDTRACE_HOOKS > - sleep_time -= lockstat_nsecs(); > + sleep_time -= lockstat_nsecs(&m->lock_object); > #endif > turnstile_wait(ts, mtx_owner(m), TS_EXCLUSIVE_QUEUE); > #ifdef KDTRACE_HOOKS > - sleep_time += lockstat_nsecs(); > + sleep_time += lockstat_nsecs(&m->lock_object); > sleep_cnt++; > #endif > } > #ifdef KDTRACE_HOOKS > - all_time += lockstat_nsecs(); > + all_time += lockstat_nsecs(&m->lock_object); > #endif > #ifdef KTR > if (cont_logged) { > @@ -600,7 +600,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t > #endif > lock_profile_obtain_lock_failed(&m->lock_object, &contested, &waittime); > #ifdef KDTRACE_HOOKS > - spin_time -= lockstat_nsecs(); > + spin_time -= lockstat_nsecs(&m->lock_object); > #endif > while (!_mtx_obtain_lock(m, tid)) { > > @@ -620,7 +620,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t > spinlock_enter(); > } > #ifdef KDTRACE_HOOKS > - spin_time += lockstat_nsecs(); > + spin_time += lockstat_nsecs(&m->lock_object); > #endif > > if (LOCK_LOG_TEST(&m->lock_object, opts)) > @@ -630,7 +630,8 @@ _mtx_lock_spin_cookie(volatile uintptr_t > > LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, m, > contested, waittime, (file), (line)); > - LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); > + if (spin_time != 0) > + LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); > } > #endif /* SMP */ > > @@ -655,7 +656,7 @@ thread_lock_flags_(struct thread *td, in > return; > > #ifdef KDTRACE_HOOKS > - spin_time -= lockstat_nsecs(); > + spin_time -= lockstat_nsecs(&td->td_lock->lock_object); > #endif > for (;;) { > retry: > @@ -703,7 +704,7 @@ retry: > __mtx_unlock_spin(m); /* does spinlock_exit() */ > } > #ifdef KDTRACE_HOOKS > - spin_time += lockstat_nsecs(); > + spin_time += lockstat_nsecs(&m->lock_object); > #endif > if (m->mtx_recurse == 0) > LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, > > Modified: head/sys/kern/kern_rwlock.c > ============================================================================== > --- head/sys/kern/kern_rwlock.c Sat Jul 18 00:22:00 2015 (r285663) > +++ head/sys/kern/kern_rwlock.c Sat Jul 18 00:57:30 2015 (r285664) > @@ -378,7 +378,7 @@ __rw_rlock(volatile uintptr_t *c, const > WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL); > > #ifdef KDTRACE_HOOKS > - all_time -= lockstat_nsecs(); > + all_time -= lockstat_nsecs(&rw->lock_object); > state = rw->rw_lock; > #endif > for (;;) { > @@ -532,11 +532,11 @@ __rw_rlock(volatile uintptr_t *c, const > CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, > rw); > #ifdef KDTRACE_HOOKS > - sleep_time -= lockstat_nsecs(); > + sleep_time -= lockstat_nsecs(&rw->lock_object); > #endif > turnstile_wait(ts, rw_owner(rw), TS_SHARED_QUEUE); > #ifdef KDTRACE_HOOKS > - sleep_time += lockstat_nsecs(); > + sleep_time += lockstat_nsecs(&rw->lock_object); > sleep_cnt++; > #endif > if (LOCK_LOG_TEST(&rw->lock_object, 0)) > @@ -544,7 +544,7 @@ __rw_rlock(volatile uintptr_t *c, const > __func__, rw); > } > #ifdef KDTRACE_HOOKS > - all_time += lockstat_nsecs(); > + all_time += lockstat_nsecs(&rw->lock_object); > if (sleep_time) > LOCKSTAT_RECORD4(LS_RW_RLOCK_BLOCK, rw, sleep_time, > LOCKSTAT_READER, (state & RW_LOCK_READ) == 0, > @@ -767,7 +767,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u > rw->lock_object.lo_name, (void *)rw->rw_lock, file, line); > > #ifdef KDTRACE_HOOKS > - all_time -= lockstat_nsecs(); > + all_time -= lockstat_nsecs(&rw->lock_object); > state = rw->rw_lock; > #endif > while (!_rw_write_lock(rw, tid)) { > @@ -893,11 +893,11 @@ __rw_wlock_hard(volatile uintptr_t *c, u > CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, > rw); > #ifdef KDTRACE_HOOKS > - sleep_time -= lockstat_nsecs(); > + sleep_time -= lockstat_nsecs(&rw->lock_object); > #endif > turnstile_wait(ts, rw_owner(rw), TS_EXCLUSIVE_QUEUE); > #ifdef KDTRACE_HOOKS > - sleep_time += lockstat_nsecs(); > + sleep_time += lockstat_nsecs(&rw->lock_object); > sleep_cnt++; > #endif > if (LOCK_LOG_TEST(&rw->lock_object, 0)) > @@ -908,7 +908,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u > #endif > } > #ifdef KDTRACE_HOOKS > - all_time += lockstat_nsecs(); > + all_time += lockstat_nsecs(&rw->lock_object); > if (sleep_time) > LOCKSTAT_RECORD4(LS_RW_WLOCK_BLOCK, rw, sleep_time, > LOCKSTAT_WRITER, (state & RW_LOCK_READ) == 0, > > Modified: head/sys/kern/kern_sx.c > ============================================================================== > --- head/sys/kern/kern_sx.c Sat Jul 18 00:22:00 2015 (r285663) > +++ head/sys/kern/kern_sx.c Sat Jul 18 00:57:30 2015 (r285664) > @@ -541,7 +541,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > sx->lock_object.lo_name, (void *)sx->sx_lock, file, line); > > #ifdef KDTRACE_HOOKS > - all_time -= lockstat_nsecs(); > + all_time -= lockstat_nsecs(&sx->lock_object); > state = sx->sx_lock; > #endif > while (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) { > @@ -691,7 +691,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > __func__, sx); > > #ifdef KDTRACE_HOOKS > - sleep_time -= lockstat_nsecs(); > + sleep_time -= lockstat_nsecs(&sx->lock_object); > #endif > GIANT_SAVE(); > sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, > @@ -702,7 +702,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > else > error = sleepq_wait_sig(&sx->lock_object, 0); > #ifdef KDTRACE_HOOKS > - sleep_time += lockstat_nsecs(); > + sleep_time += lockstat_nsecs(&sx->lock_object); > sleep_cnt++; > #endif > if (error) { > @@ -717,7 +717,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > __func__, sx); > } > #ifdef KDTRACE_HOOKS > - all_time += lockstat_nsecs(); > + all_time += lockstat_nsecs(&sx->lock_object); > if (sleep_time) > LOCKSTAT_RECORD4(LS_SX_XLOCK_BLOCK, sx, sleep_time, > LOCKSTAT_WRITER, (state & SX_LOCK_SHARED) == 0, > @@ -828,7 +828,7 @@ _sx_slock_hard(struct sx *sx, int opts, > > #ifdef KDTRACE_HOOKS > state = sx->sx_lock; > - all_time -= lockstat_nsecs(); > + all_time -= lockstat_nsecs(&sx->lock_object); > #endif > > /* > @@ -955,7 +955,7 @@ _sx_slock_hard(struct sx *sx, int opts, > __func__, sx); > > #ifdef KDTRACE_HOOKS > - sleep_time -= lockstat_nsecs(); > + sleep_time -= lockstat_nsecs(&sx->lock_object); > #endif > GIANT_SAVE(); > sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, > @@ -966,7 +966,7 @@ _sx_slock_hard(struct sx *sx, int opts, > else > error = sleepq_wait_sig(&sx->lock_object, 0); > #ifdef KDTRACE_HOOKS > - sleep_time += lockstat_nsecs(); > + sleep_time += lockstat_nsecs(&sx->lock_object); > sleep_cnt++; > #endif > if (error) { > @@ -981,7 +981,7 @@ _sx_slock_hard(struct sx *sx, int opts, > __func__, sx); > } > #ifdef KDTRACE_HOOKS > - all_time += lockstat_nsecs(); > + all_time += lockstat_nsecs(&sx->lock_object); > if (sleep_time) > LOCKSTAT_RECORD4(LS_SX_SLOCK_BLOCK, sx, sleep_time, > LOCKSTAT_READER, (state & SX_LOCK_SHARED) == 0, > > Modified: head/sys/sys/lockstat.h > ============================================================================== > --- head/sys/sys/lockstat.h Sat Jul 18 00:22:00 2015 (r285663) > +++ head/sys/sys/lockstat.h Sat Jul 18 00:57:30 2015 (r285664) > @@ -149,11 +149,12 @@ > * The following must match the type definition of dtrace_probe. It is > * defined this way to avoid having to rely on CDDL code. > */ > +struct lock_object; > extern uint32_t lockstat_probemap[LS_NPROBES]; > typedef void (*lockstat_probe_func_t)(uint32_t, uintptr_t arg0, uintptr_t arg1, > uintptr_t arg2, uintptr_t arg3, uintptr_t arg4); > extern lockstat_probe_func_t lockstat_probe_func; > -extern uint64_t lockstat_nsecs(void); > +extern uint64_t lockstat_nsecs(struct lock_object *); > extern int lockstat_enabled; > > #ifdef KDTRACE_HOOKS > -- Mateusz Guzik From owner-svn-src-head@freebsd.org Sat Jul 18 02:43:50 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 792819A3B13; Sat, 18 Jul 2015 02:43:50 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-pa0-x231.google.com (mail-pa0-x231.google.com [IPv6:2607:f8b0:400e:c03::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 417551DA3; Sat, 18 Jul 2015 02:43:50 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by padck2 with SMTP id ck2so69443412pad.0; Fri, 17 Jul 2015 19:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=JNnk2dyrtXwswEnnLrIksxW5IMAwNpL8VW3qU3p1PLw=; b=FdNaI/2I2t4cJNbXGYt/F1GApNIkj/QS0QBjlrHCEBBl2xumi5o0jiHpkZjQL03rMm cb3f68ep3fJORbvqe4mRdwInMTl9mfwGpfSmDUVg1QUtTKG0t1ueW3iLAiIlDqldHf+w 5Bh1PoJiZvYWMc+V3IkqqWJXbHnRGnp6FAbTyz08gfpcT0D/BKIZFzEHBn9+RnDVQc/A AzOYE3Un/BivGiagqBqpM/xC/OQO6PaTH3wPxJuEJ6y0BDFxEztrrDSNlXpK3tBUo5NV plEOgoOvNglvevyZbN11DCFx36Hr9Cv7zq4/aThtxpqLYG09rwgHxodC+G4FMO4RQm43 cp5g== X-Received: by 10.70.123.226 with SMTP id md2mr35197596pdb.29.1437187429826; Fri, 17 Jul 2015 19:43:49 -0700 (PDT) Received: from raichu ([104.232.114.184]) by smtp.gmail.com with ESMTPSA id zf1sm12694636pbc.43.2015.07.17.19.43.48 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Jul 2015 19:43:48 -0700 (PDT) Sender: Mark Johnston Date: Fri, 17 Jul 2015 19:43:43 -0700 From: Mark Johnston To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285664 - in head/sys: kern sys Message-ID: <20150718024343.GA2808@raichu> References: <201507180057.t6I0vVhS076519@repo.freebsd.org> <20150718013511.GA5792@dft-labs.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150718013511.GA5792@dft-labs.eu> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 02:43:50 -0000 On Sat, Jul 18, 2015 at 03:35:11AM +0200, Mateusz Guzik wrote: > On Sat, Jul 18, 2015 at 12:57:31AM +0000, Mark Johnston wrote: > > Author: markj > > Date: Sat Jul 18 00:57:30 2015 > > New Revision: 285664 > > URL: https://svnweb.freebsd.org/changeset/base/285664 > > > > Log: > > Pass the lock object to lockstat_nsecs() and return immediately if > > LO_NOPROFILE is set. Some timecounter handlers acquire a spin mutex, and > > we don't want to recurse if lockstat probes are enabled. > > > > Why do we even make the call? Note that lockstat_nsecs() is not called in uncontended lock acquisitions (with the exception of rwlock read locks). So I don't think there's a lot to gain by inlining the new checks, since we're already attempting to perform an operation that's much more expensive than a single function call. I had also assumed that keeping the checks in one location would be friendlier to the branch predictor. The case of rwlock read locks is special. I considered trying to modify the implementation to attempt to acquire the lock and fall back to __rw_rlock() only if the attempt fails, but that's risky for a change that I want to include in 10.2. What I'd like to do long-term is generalize some parts of DTrace FBT so that the calls could be entirely removed until needed, with hot-patching. > Have you tried replacing this with an > inline with __predict_false on both conditions? I assume you mean a __predict_true on the first condition? I haven't. The testing I did that led me to look at this was simple timing of an uncontended lock acquire -> lock release loop, but I don't see how a branch prediction hint would make a difference there. (And it doesn't.) Could you suggest a microbenchmark that might expose a difference? I'm not sure it makes sense it makes sense to add a branch hint to the LO_NOPROFILE check, as we only hit that when probes are enabled, at which point performance is less of a concern. -Mark > > > PR: 201642 > > Reviewed by: avg > > MFC after: 3 days > > > > Modified: > > head/sys/kern/kern_lockstat.c > > head/sys/kern/kern_mutex.c > > head/sys/kern/kern_rwlock.c > > head/sys/kern/kern_sx.c > > head/sys/sys/lockstat.h > > > > Modified: head/sys/kern/kern_lockstat.c > > ============================================================================== > > --- head/sys/kern/kern_lockstat.c Sat Jul 18 00:22:00 2015 (r285663) > > +++ head/sys/kern/kern_lockstat.c Sat Jul 18 00:57:30 2015 (r285664) > > @@ -34,9 +34,10 @@ > > > > #ifdef KDTRACE_HOOKS > > > > -#include > > #include > > +#include > > #include > > +#include > > > > /* > > * The following must match the type definition of dtrace_probe. It is > > @@ -48,13 +49,15 @@ void (*lockstat_probe_func)(uint32_t, ui > > int lockstat_enabled = 0; > > > > uint64_t > > -lockstat_nsecs(void) > > +lockstat_nsecs(struct lock_object *lo) > > { > > struct bintime bt; > > uint64_t ns; > > > > if (!lockstat_enabled) > > return (0); > > + if ((lo->lo_flags & LO_NOPROFILE) != 0) > > + return (0); > > > > binuptime(&bt); > > ns = bt.sec * (uint64_t)1000000000; > > > > Modified: head/sys/kern/kern_mutex.c > > ============================================================================== > > --- head/sys/kern/kern_mutex.c Sat Jul 18 00:22:00 2015 (r285663) > > +++ head/sys/kern/kern_mutex.c Sat Jul 18 00:57:30 2015 (r285664) > > @@ -416,7 +416,7 @@ __mtx_lock_sleep(volatile uintptr_t *c, > > "_mtx_lock_sleep: %s contested (lock=%p) at %s:%d", > > m->lock_object.lo_name, (void *)m->mtx_lock, file, line); > > #ifdef KDTRACE_HOOKS > > - all_time -= lockstat_nsecs(); > > + all_time -= lockstat_nsecs(&m->lock_object); > > #endif > > > > while (!_mtx_obtain_lock(m, tid)) { > > @@ -513,16 +513,16 @@ __mtx_lock_sleep(volatile uintptr_t *c, > > * Block on the turnstile. > > */ > > #ifdef KDTRACE_HOOKS > > - sleep_time -= lockstat_nsecs(); > > + sleep_time -= lockstat_nsecs(&m->lock_object); > > #endif > > turnstile_wait(ts, mtx_owner(m), TS_EXCLUSIVE_QUEUE); > > #ifdef KDTRACE_HOOKS > > - sleep_time += lockstat_nsecs(); > > + sleep_time += lockstat_nsecs(&m->lock_object); > > sleep_cnt++; > > #endif > > } > > #ifdef KDTRACE_HOOKS > > - all_time += lockstat_nsecs(); > > + all_time += lockstat_nsecs(&m->lock_object); > > #endif > > #ifdef KTR > > if (cont_logged) { > > @@ -600,7 +600,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t > > #endif > > lock_profile_obtain_lock_failed(&m->lock_object, &contested, &waittime); > > #ifdef KDTRACE_HOOKS > > - spin_time -= lockstat_nsecs(); > > + spin_time -= lockstat_nsecs(&m->lock_object); > > #endif > > while (!_mtx_obtain_lock(m, tid)) { > > > > @@ -620,7 +620,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t > > spinlock_enter(); > > } > > #ifdef KDTRACE_HOOKS > > - spin_time += lockstat_nsecs(); > > + spin_time += lockstat_nsecs(&m->lock_object); > > #endif > > > > if (LOCK_LOG_TEST(&m->lock_object, opts)) > > @@ -630,7 +630,8 @@ _mtx_lock_spin_cookie(volatile uintptr_t > > > > LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, m, > > contested, waittime, (file), (line)); > > - LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); > > + if (spin_time != 0) > > + LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); > > } > > #endif /* SMP */ > > > > @@ -655,7 +656,7 @@ thread_lock_flags_(struct thread *td, in > > return; > > > > #ifdef KDTRACE_HOOKS > > - spin_time -= lockstat_nsecs(); > > + spin_time -= lockstat_nsecs(&td->td_lock->lock_object); > > #endif > > for (;;) { > > retry: > > @@ -703,7 +704,7 @@ retry: > > __mtx_unlock_spin(m); /* does spinlock_exit() */ > > } > > #ifdef KDTRACE_HOOKS > > - spin_time += lockstat_nsecs(); > > + spin_time += lockstat_nsecs(&m->lock_object); > > #endif > > if (m->mtx_recurse == 0) > > LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, > > > > Modified: head/sys/kern/kern_rwlock.c > > ============================================================================== > > --- head/sys/kern/kern_rwlock.c Sat Jul 18 00:22:00 2015 (r285663) > > +++ head/sys/kern/kern_rwlock.c Sat Jul 18 00:57:30 2015 (r285664) > > @@ -378,7 +378,7 @@ __rw_rlock(volatile uintptr_t *c, const > > WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL); > > > > #ifdef KDTRACE_HOOKS > > - all_time -= lockstat_nsecs(); > > + all_time -= lockstat_nsecs(&rw->lock_object); > > state = rw->rw_lock; > > #endif > > for (;;) { > > @@ -532,11 +532,11 @@ __rw_rlock(volatile uintptr_t *c, const > > CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, > > rw); > > #ifdef KDTRACE_HOOKS > > - sleep_time -= lockstat_nsecs(); > > + sleep_time -= lockstat_nsecs(&rw->lock_object); > > #endif > > turnstile_wait(ts, rw_owner(rw), TS_SHARED_QUEUE); > > #ifdef KDTRACE_HOOKS > > - sleep_time += lockstat_nsecs(); > > + sleep_time += lockstat_nsecs(&rw->lock_object); > > sleep_cnt++; > > #endif > > if (LOCK_LOG_TEST(&rw->lock_object, 0)) > > @@ -544,7 +544,7 @@ __rw_rlock(volatile uintptr_t *c, const > > __func__, rw); > > } > > #ifdef KDTRACE_HOOKS > > - all_time += lockstat_nsecs(); > > + all_time += lockstat_nsecs(&rw->lock_object); > > if (sleep_time) > > LOCKSTAT_RECORD4(LS_RW_RLOCK_BLOCK, rw, sleep_time, > > LOCKSTAT_READER, (state & RW_LOCK_READ) == 0, > > @@ -767,7 +767,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u > > rw->lock_object.lo_name, (void *)rw->rw_lock, file, line); > > > > #ifdef KDTRACE_HOOKS > > - all_time -= lockstat_nsecs(); > > + all_time -= lockstat_nsecs(&rw->lock_object); > > state = rw->rw_lock; > > #endif > > while (!_rw_write_lock(rw, tid)) { > > @@ -893,11 +893,11 @@ __rw_wlock_hard(volatile uintptr_t *c, u > > CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__, > > rw); > > #ifdef KDTRACE_HOOKS > > - sleep_time -= lockstat_nsecs(); > > + sleep_time -= lockstat_nsecs(&rw->lock_object); > > #endif > > turnstile_wait(ts, rw_owner(rw), TS_EXCLUSIVE_QUEUE); > > #ifdef KDTRACE_HOOKS > > - sleep_time += lockstat_nsecs(); > > + sleep_time += lockstat_nsecs(&rw->lock_object); > > sleep_cnt++; > > #endif > > if (LOCK_LOG_TEST(&rw->lock_object, 0)) > > @@ -908,7 +908,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u > > #endif > > } > > #ifdef KDTRACE_HOOKS > > - all_time += lockstat_nsecs(); > > + all_time += lockstat_nsecs(&rw->lock_object); > > if (sleep_time) > > LOCKSTAT_RECORD4(LS_RW_WLOCK_BLOCK, rw, sleep_time, > > LOCKSTAT_WRITER, (state & RW_LOCK_READ) == 0, > > > > Modified: head/sys/kern/kern_sx.c > > ============================================================================== > > --- head/sys/kern/kern_sx.c Sat Jul 18 00:22:00 2015 (r285663) > > +++ head/sys/kern/kern_sx.c Sat Jul 18 00:57:30 2015 (r285664) > > @@ -541,7 +541,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > > sx->lock_object.lo_name, (void *)sx->sx_lock, file, line); > > > > #ifdef KDTRACE_HOOKS > > - all_time -= lockstat_nsecs(); > > + all_time -= lockstat_nsecs(&sx->lock_object); > > state = sx->sx_lock; > > #endif > > while (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) { > > @@ -691,7 +691,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > > __func__, sx); > > > > #ifdef KDTRACE_HOOKS > > - sleep_time -= lockstat_nsecs(); > > + sleep_time -= lockstat_nsecs(&sx->lock_object); > > #endif > > GIANT_SAVE(); > > sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, > > @@ -702,7 +702,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > > else > > error = sleepq_wait_sig(&sx->lock_object, 0); > > #ifdef KDTRACE_HOOKS > > - sleep_time += lockstat_nsecs(); > > + sleep_time += lockstat_nsecs(&sx->lock_object); > > sleep_cnt++; > > #endif > > if (error) { > > @@ -717,7 +717,7 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > > __func__, sx); > > } > > #ifdef KDTRACE_HOOKS > > - all_time += lockstat_nsecs(); > > + all_time += lockstat_nsecs(&sx->lock_object); > > if (sleep_time) > > LOCKSTAT_RECORD4(LS_SX_XLOCK_BLOCK, sx, sleep_time, > > LOCKSTAT_WRITER, (state & SX_LOCK_SHARED) == 0, > > @@ -828,7 +828,7 @@ _sx_slock_hard(struct sx *sx, int opts, > > > > #ifdef KDTRACE_HOOKS > > state = sx->sx_lock; > > - all_time -= lockstat_nsecs(); > > + all_time -= lockstat_nsecs(&sx->lock_object); > > #endif > > > > /* > > @@ -955,7 +955,7 @@ _sx_slock_hard(struct sx *sx, int opts, > > __func__, sx); > > > > #ifdef KDTRACE_HOOKS > > - sleep_time -= lockstat_nsecs(); > > + sleep_time -= lockstat_nsecs(&sx->lock_object); > > #endif > > GIANT_SAVE(); > > sleepq_add(&sx->lock_object, NULL, sx->lock_object.lo_name, > > @@ -966,7 +966,7 @@ _sx_slock_hard(struct sx *sx, int opts, > > else > > error = sleepq_wait_sig(&sx->lock_object, 0); > > #ifdef KDTRACE_HOOKS > > - sleep_time += lockstat_nsecs(); > > + sleep_time += lockstat_nsecs(&sx->lock_object); > > sleep_cnt++; > > #endif > > if (error) { > > @@ -981,7 +981,7 @@ _sx_slock_hard(struct sx *sx, int opts, > > __func__, sx); > > } > > #ifdef KDTRACE_HOOKS > > - all_time += lockstat_nsecs(); > > + all_time += lockstat_nsecs(&sx->lock_object); > > if (sleep_time) > > LOCKSTAT_RECORD4(LS_SX_SLOCK_BLOCK, sx, sleep_time, > > LOCKSTAT_READER, (state & SX_LOCK_SHARED) == 0, > > > > Modified: head/sys/sys/lockstat.h > > ============================================================================== > > --- head/sys/sys/lockstat.h Sat Jul 18 00:22:00 2015 (r285663) > > +++ head/sys/sys/lockstat.h Sat Jul 18 00:57:30 2015 (r285664) > > @@ -149,11 +149,12 @@ > > * The following must match the type definition of dtrace_probe. It is > > * defined this way to avoid having to rely on CDDL code. > > */ > > +struct lock_object; > > extern uint32_t lockstat_probemap[LS_NPROBES]; > > typedef void (*lockstat_probe_func_t)(uint32_t, uintptr_t arg0, uintptr_t arg1, > > uintptr_t arg2, uintptr_t arg3, uintptr_t arg4); > > extern lockstat_probe_func_t lockstat_probe_func; > > -extern uint64_t lockstat_nsecs(void); > > +extern uint64_t lockstat_nsecs(struct lock_object *); > > extern int lockstat_enabled; > > > > #ifdef KDTRACE_HOOKS > > > > -- > Mateusz Guzik From owner-svn-src-head@freebsd.org Sat Jul 18 03:14:50 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DA679A40B5; Sat, 18 Jul 2015 03:14:50 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 1597F1EBB; Sat, 18 Jul 2015 03:14:50 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I3Enmu035731; Sat, 18 Jul 2015 03:14:49 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I3Envk035730; Sat, 18 Jul 2015 03:14:49 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201507180314.t6I3Envk035730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Sat, 18 Jul 2015 03:14:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285666 - head/sbin/geom/class/multipath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 03:14:50 -0000 Author: araujo (ports committer) Date: Sat Jul 18 03:14:49 2015 New Revision: 285666 URL: https://svnweb.freebsd.org/changeset/base/285666 Log: Fix contraction spotted by igor(1) and remove 2 .Ed spotted by mandoc(1). Also, don't capitalize "module" and remove a redundant phrase introduced in my previous commit. Differential Revision: D3112 Reviewed by: wblock Sponsored by: gandi.net Modified: head/sbin/geom/class/multipath/gmultipath.8 Modified: head/sbin/geom/class/multipath/gmultipath.8 ============================================================================== --- head/sbin/geom/class/multipath/gmultipath.8 Sat Jul 18 01:29:27 2015 (r285665) +++ head/sbin/geom/class/multipath/gmultipath.8 Sat Jul 18 03:14:49 2015 (r285666) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 17, 2015 +.Dd July 18, 2015 .Dt GMULTIPATH 8 .Os .Sh NAME @@ -107,10 +107,10 @@ When using the .Dq manual method, no metadata are stored on the devices, so the multipath device has to be configured by hand every time it is needed. -Additional device paths also won't be detected automatically. +Additional device paths also will not be detected automatically. The .Dq automatic -method uses on-disk metadata to detect device and all it's paths. +method uses on-disk metadata to detect device and all its paths. Metadata use the last sector of the underlying disk device and include device name and UUID. The UUID guarantees uniqueness in a shared storage environment @@ -350,16 +350,14 @@ GEOM_MULTIPATH: da0 added to FRED GEOM_MULTIPATH: da0 is now active path in FRED GEOM_MULTIPATH: da2 added to FRED .Ed -.Ed .Pp To load the .Nm -Module at boot time, add the following entry to -.Pa /boot/loader.conf: +module at boot time, add this entry to +.Pa /boot/loader.conf : .Bd -literal -offset ident geom_multipath_load="YES" .Ed -.Ed .Sh SEE ALSO .Xr geom 4 , .Xr isp 4 , From owner-svn-src-head@freebsd.org Sat Jul 18 04:38:12 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D78629A4D93; Sat, 18 Jul 2015 04:38:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 C35D91151; Sat, 18 Jul 2015 04:38:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I4cCX7072404; Sat, 18 Jul 2015 04:38:12 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I4cCuH072403; Sat, 18 Jul 2015 04:38:12 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201507180438.t6I4cCuH072403@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 18 Jul 2015 04:38:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285667 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 04:38:12 -0000 Author: markj Date: Sat Jul 18 04:38:11 2015 New Revision: 285667 URL: https://svnweb.freebsd.org/changeset/base/285667 Log: Fix the !KDTRACE_HOOKS build. X-MFC-With: r285664 Modified: head/sys/kern/kern_mutex.c Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sat Jul 18 03:14:49 2015 (r285666) +++ head/sys/kern/kern_mutex.c Sat Jul 18 04:38:11 2015 (r285667) @@ -630,8 +630,10 @@ _mtx_lock_spin_cookie(volatile uintptr_t LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(LS_MTX_SPIN_LOCK_ACQUIRE, m, contested, waittime, (file), (line)); +#ifdef KDTRACE_HOOKS if (spin_time != 0) LOCKSTAT_RECORD1(LS_MTX_SPIN_LOCK_SPIN, m, spin_time); +#endif } #endif /* SMP */ From owner-svn-src-head@freebsd.org Sat Jul 18 06:26:22 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 77E929A4CB1; Sat, 18 Jul 2015 06:26:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 3D2831BE6; Sat, 18 Jul 2015 06:26:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id E52F610457BD; Sat, 18 Jul 2015 16:26:18 +1000 (AEST) Date: Sat, 18 Jul 2015 16:26:17 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Pedro Giffuni cc: Peter Jeremy , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 In-Reply-To: <55A98763.1030705@FreeBSD.org> Message-ID: <20150718155507.J876@besplex.bde.org> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <20150717222631.GD36150@server.rulingia.com> <55A98763.1030705@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=eZjABOwH c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=5sSLQ3LKH8a_lCe5FSsA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 06:26:22 -0000 On Fri, 17 Jul 2015, Pedro Giffuni wrote: > On 07/17/15 17:26, Peter Jeremy wrote: >> On 2015-Jul-16 22:07:14 +0000, "Pedro F. Giffuni" wrote: >>> Log: >> ... >>> sqlite: clean a couple of invocations of memcpy(3) >>> Found almost accidentally by our native gcc when enhanced with >>> FORTIFY_SOURCE. >> ... >>> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, >>> sizeof(WalIndexHdr)); >>> walShmBarrier(pWal); >>> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, >>> sizeof(WalIndexHdr)); >> If the compiler complained about that, the compiler is broken. > > The change was rather collateral (read cosmetical) to the real warning > which remains unfixed. > > The compiler warning is this: > ... > ===> lib/libsqlite3 (obj,depend,all,install) > cc1: warnings being treated as errors > /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c: In > function 'walIndexWriteHdr': > /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49490: > warning: passing argument 1 of 'memcpy' discards qualifiers from pointer > target type > /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49492: > warning: passing argument 1 of 'memcpy' discards qualifiers from pointer > target type > --- sqlite3.So --- > *** [sqlite3.So] Error code 1 > ... > > make[6]: stopped in /scratch/tmp/pfg/head/lib/libsqlite3 > > It only happens when using the experimental FORTIFY_SOURCE support [1], > and it only happens with gcc (the base one is the only tested). > > Yes, I am suspecting a compiler bug but gcc has been really useful to find > bugs in fortify_source. gcc is correct. This has nothing to do with 'const'. aHdr has a volatile qualifier. >> 'const' >> is a promise to the caller that the given parameter will not be modified >> by the callee. There's no requirement that the passed argument be const. >> As bde commented, the casts are all spurious. There is a requirement that the parameter doesn't point to volatile storage even if it has a volatile qualifier. memcpy() doesn't support volatile storage. This allows it to be more efficient by possibly doing the stores out of order or more than once. Someone broke the warnings about the prototype discarding the volatile qualifier by adding casts to discard the qualifier explicitly. This is the correct way to turn volatile storage into nonvolatile storage iff the storage is actually nonvolatile for the lifetime of the cast. It is unclear how the storage becomes transiently non-volatile here. But casting away qualifiers is usually an error, so we ask the compiler to warn about it using -Wcast-qual. -Wcast-qual is broken in clang, so bugs found by it show up more after switching to gcc. clang has ways to enable this warning, but the standard way doesn't work. Casting away volatile is more likely to be just a bug than casting away const, so it is quite reasonable for the compiler to warn about it unconditionally or at least under -Wall. Almost all of the casts of memcpy()'s args in sqlite3.c are for or near the casts of the volatile foo *aHdr. The old ones are all to void *. This kills all qualifiers, but there are only volatile qualifiers in sight. Someone also sprinkled them on the nearby second arg of &hdr. This seems to be not even wrong (there are no qualifiers in sight for hdr). Sometimes aHdr is the second arg of memcpy(). This cannot be volatile either, so volatile is cast away using void *. The complete set of conversions for this is: aHdr is volatile foo * for some reason the cast changes it to void * the prototype changes it to const void *. The best way to express the magic removal of volatile probably to cast to foo *, not to void *. Let the prototype do all of the non-magic conversions. Casting to void * does 1 magic conversion but only half of the non-magic conversions that would be done by the prototype (the other one is adding a const qualifier). Bruce From owner-svn-src-head@freebsd.org Sat Jul 18 06:48:31 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59DDF9A4F3E; Sat, 18 Jul 2015 06:48:31 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 3063011E7; Sat, 18 Jul 2015 06:48:31 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I6mVbk024388; Sat, 18 Jul 2015 06:48:31 GMT (envelope-from kevlo@FreeBSD.org) Received: (from kevlo@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I6mVY9024387; Sat, 18 Jul 2015 06:48:31 GMT (envelope-from kevlo@FreeBSD.org) Message-Id: <201507180648.t6I6mVY9024387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevlo set sender to kevlo@FreeBSD.org using -f From: Kevin Lo Date: Sat, 18 Jul 2015 06:48:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285669 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 06:48:31 -0000 Author: kevlo Date: Sat Jul 18 06:48:30 2015 New Revision: 285669 URL: https://svnweb.freebsd.org/changeset/base/285669 Log: Since the IETF has redefined the meaning of the tos field to accommodate a set of differentiated services, set IPTOS_PREC_* macros using IPTOS_DSCP_* macro definitions. While here, add IPTOS_DSCP_VA macro according to RFC 5865. Differential Revision: https://reviews.freebsd.org/D3119 Reviewed by: gnn Modified: head/sys/netinet/ip.h Modified: head/sys/netinet/ip.h ============================================================================== --- head/sys/netinet/ip.h Sat Jul 18 04:49:36 2015 (r285668) +++ head/sys/netinet/ip.h Sat Jul 18 06:48:30 2015 (r285669) @@ -80,19 +80,19 @@ struct ip { #define IPTOS_MINCOST 0x02 /* - * Definitions for IP precedence (also in ip_tos) (hopefully unused). + * Definitions for IP precedence (also in ip_tos) (deprecated). */ -#define IPTOS_PREC_NETCONTROL 0xe0 -#define IPTOS_PREC_INTERNETCONTROL 0xc0 -#define IPTOS_PREC_CRITIC_ECP 0xa0 -#define IPTOS_PREC_FLASHOVERRIDE 0x80 -#define IPTOS_PREC_FLASH 0x60 -#define IPTOS_PREC_IMMEDIATE 0x40 -#define IPTOS_PREC_PRIORITY 0x20 -#define IPTOS_PREC_ROUTINE 0x00 +#define IPTOS_PREC_NETCONTROL IPTOS_DSCP_CS7 +#define IPTOS_PREC_INTERNETCONTROL IPTOS_DSCP_CS6 +#define IPTOS_PREC_CRITIC_ECP IPTOS_DSCP_CS5 +#define IPTOS_PREC_FLASHOVERRIDE IPTOS_DSCP_CS4 +#define IPTOS_PREC_FLASH IPTOS_DSCP_CS3 +#define IPTOS_PREC_IMMEDIATE IPTOS_DSCP_CS2 +#define IPTOS_PREC_PRIORITY IPTOS_DSCP_CS1 +#define IPTOS_PREC_ROUTINE IPTOS_DSCP_CS0 /* - * Definitions for DiffServ Codepoints as per RFC2474 + * Definitions for DiffServ Codepoints as per RFC2474 and RFC5865. */ #define IPTOS_DSCP_CS0 0x00 #define IPTOS_DSCP_CS1 0x20 @@ -112,6 +112,7 @@ struct ip { #define IPTOS_DSCP_AF42 0x90 #define IPTOS_DSCP_AF43 0x98 #define IPTOS_DSCP_CS5 0xa0 +#define IPTOS_DSCP_VA 0xb0 #define IPTOS_DSCP_EF 0xb8 #define IPTOS_DSCP_CS6 0xc0 #define IPTOS_DSCP_CS7 0xe0 From owner-svn-src-head@freebsd.org Sat Jul 18 09:02:58 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 494E19A5667; Sat, 18 Jul 2015 09:02:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 2D1A61FD5; Sat, 18 Jul 2015 09:02:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6I92wl5079733; Sat, 18 Jul 2015 09:02:58 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6I92pg2079712; Sat, 18 Jul 2015 09:02:51 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507180902.t6I92pg2079712@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 18 Jul 2015 09:02:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285670 - in head: lib/libc/sys lib/libkvm sys/compat/cloudabi sys/compat/linux sys/compat/svr4 sys/fs/procfs sys/kern sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 09:02:58 -0000 Author: kib Date: Sat Jul 18 09:02:50 2015 New Revision: 285670 URL: https://svnweb.freebsd.org/changeset/base/285670 Log: The si_status field of the siginfo_t, provided by the waitid(2) and SIGCHLD signal, should keep full 32 bits of the status passed to the _exit(2). Split the combined p_xstat of the struct proc into the separate exit status p_xexit for normal process exit, and signalled termination information p_xsig. Kernel-visible macro KW_EXITCODE() reconstructs old p_xstat from p_xexit and p_xsig. p_xexit contains complete status and copied out into si_status. Requested by: Joerg Schilling Reviewed by: jilles (previous version), pho Tested by: pho Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/sys/wait.2 head/lib/libkvm/kvm_proc.c head/sys/compat/cloudabi/cloudabi_proc.c head/sys/compat/linux/linux_fork.c head/sys/compat/linux/linux_misc.c head/sys/compat/svr4/svr4_misc.c head/sys/fs/procfs/procfs_ctl.c head/sys/fs/procfs/procfs_ioctl.c head/sys/kern/kern_event.c head/sys/kern/kern_exec.c head/sys/kern/kern_exit.c head/sys/kern/kern_kthread.c head/sys/kern/kern_proc.c head/sys/kern/kern_sig.c head/sys/kern/sys_procdesc.c head/sys/kern/sys_process.c head/sys/sys/proc.h head/sys/sys/wait.h Modified: head/lib/libc/sys/wait.2 ============================================================================== --- head/lib/libc/sys/wait.2 Sat Jul 18 06:48:30 2015 (r285669) +++ head/lib/libc/sys/wait.2 Sat Jul 18 09:02:50 2015 (r285670) @@ -362,6 +362,15 @@ field set to and the .Fa si_pid field set to the process ID of the process reporting status. +For the exited process, the +.Fa si_status +field of the +.Dv siginfo_t +structure contains the full 32 bit exit status passed to +.Xr _exit 2 ; +the +.Fa status +argument of other calls only returns 8 lowest bits of the exit status. .Pp When the .Dv WNOHANG @@ -656,13 +665,6 @@ is an extension; .Tn POSIX only permits this flag with .Fn waitid . -.Pp -.Tn POSIX -requires -.Fn waitid -to return the full 32 bits passed to -.Xr _exit 2 ; -this implementation only returns 8 bits like the other calls. .Sh HISTORY The .Fn wait Modified: head/lib/libkvm/kvm_proc.c ============================================================================== --- head/lib/libkvm/kvm_proc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/lib/libkvm/kvm_proc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -66,6 +66,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define _WANT_KW_EXITCODE +#include #include #include #include @@ -389,7 +391,7 @@ nopgrp: kp->ki_siglist = proc.p_siglist; SIGSETOR(kp->ki_siglist, mtd.td_siglist); kp->ki_sigmask = mtd.td_sigmask; - kp->ki_xstat = proc.p_xstat; + kp->ki_xstat = KW_EXITCODE(proc.p_xexit, proc.p_xsig); kp->ki_acflag = proc.p_acflag; kp->ki_lock = proc.p_lock; if (proc.p_state != PRS_ZOMBIE) { Modified: head/sys/compat/cloudabi/cloudabi_proc.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_proc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/compat/cloudabi/cloudabi_proc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -57,7 +57,7 @@ cloudabi_sys_proc_exit(struct thread *td struct cloudabi_sys_proc_exit_args *uap) { - exit1(td, W_EXITCODE(uap->rval, 0)); + exit1(td, uap->rval, 0); /* NOTREACHED */ } Modified: head/sys/compat/linux/linux_fork.c ============================================================================== --- head/sys/compat/linux/linux_fork.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/compat/linux/linux_fork.c Sat Jul 18 09:02:50 2015 (r285670) @@ -398,7 +398,7 @@ linux_exit(struct thread *td, struct lin * exit via pthread_exit() try thr_exit() first. */ kern_thr_exit(td); - exit1(td, W_EXITCODE(args->rval, 0)); + exit1(td, args->rval, 0); /* NOTREACHED */ } Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/compat/linux/linux_misc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -1839,7 +1839,7 @@ linux_exit_group(struct thread *td, stru * SIGNAL_EXIT_GROUP is set. We ignore that (temporarily?) * as it doesnt occur often. */ - exit1(td, W_EXITCODE(args->error_code, 0)); + exit1(td, args->error_code, 0); /* NOTREACHED */ } Modified: head/sys/compat/svr4/svr4_misc.c ============================================================================== --- head/sys/compat/svr4/svr4_misc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/compat/svr4/svr4_misc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -1277,7 +1277,7 @@ loop: /* Found a zombie, so cache info in local variables. */ pid = p->p_pid; - status = p->p_xstat; + status = KW_EXITCODE(p->p_xexit, p->p_xsig); ru = p->p_ru; PROC_STATLOCK(p); calcru(p, &ru.ru_utime, &ru.ru_stime); @@ -1304,7 +1304,7 @@ loop: p->p_flag |= P_WAITED; sx_sunlock(&proctree_lock); pid = p->p_pid; - status = W_STOPCODE(p->p_xstat); + status = W_STOPCODE(p->p_xsig); ru = p->p_ru; PROC_STATLOCK(p); calcru(p, &ru.ru_utime, &ru.ru_stime); Modified: head/sys/fs/procfs/procfs_ctl.c ============================================================================== --- head/sys/fs/procfs/procfs_ctl.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/fs/procfs/procfs_ctl.c Sat Jul 18 09:02:50 2015 (r285670) @@ -142,7 +142,7 @@ procfs_control(struct thread *td, struct */ p->p_flag |= P_TRACED; faultin(p); - p->p_xstat = 0; /* XXX ? */ + p->p_xsig = 0; /* XXX ? */ p->p_oppid = p->p_pptr->p_pid; if (p->p_pptr != td->td_proc) { proc_reparent(p, td->td_proc); @@ -198,7 +198,7 @@ out: * To continue with a signal, just send * the signal name to the ctl file */ - p->p_xstat = 0; + p->p_xsig = 0; switch (op) { /* @@ -340,7 +340,7 @@ procfs_doprocctl(PFS_FILL_ARGS) PROC_LOCK(p); if (TRACE_WAIT_P(td->td_proc, p)) { - p->p_xstat = nm->nm_val; + p->p_xsig = nm->nm_val; #ifdef FIX_SSTEP FIX_SSTEP(FIRST_THREAD_IN_PROC(p)); #endif Modified: head/sys/fs/procfs/procfs_ioctl.c ============================================================================== --- head/sys/fs/procfs/procfs_ioctl.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/fs/procfs/procfs_ioctl.c Sat Jul 18 09:02:50 2015 (r285670) @@ -140,7 +140,7 @@ procfs_ioctl(PFS_IOCTL_ARGS) ps->flags = 0; /* nope */ ps->events = p->p_stops; ps->why = p->p_step ? p->p_stype : 0; - ps->val = p->p_step ? p->p_xstat : 0; + ps->val = p->p_step ? p->p_xsig : 0; break; #ifdef COMPAT_FREEBSD32 case PIOCWAIT32: @@ -160,7 +160,7 @@ procfs_ioctl(PFS_IOCTL_ARGS) ps32->flags = 0; /* nope */ ps32->events = p->p_stops; ps32->why = p->p_step ? p->p_stype : 0; - ps32->val = p->p_step ? p->p_xstat : 0; + ps32->val = p->p_step ? p->p_xsig : 0; break; #endif #if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43) @@ -182,7 +182,7 @@ procfs_ioctl(PFS_IOCTL_ARGS) #if 0 p->p_step = 0; if (P_SHOULDSTOP(p)) { - p->p_xstat = sig; + p->p_xsig = sig; p->p_flag &= ~(P_STOPPED_TRACE|P_STOPPED_SIG); PROC_SLOCK(p); thread_unsuspend(p); Modified: head/sys/kern/kern_event.c ============================================================================== --- head/sys/kern/kern_event.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_event.c Sat Jul 18 09:02:50 2015 (r285670) @@ -436,7 +436,7 @@ filt_proc(struct knote *kn, long hint) kn->kn_flags |= EV_EOF | EV_ONESHOT; kn->kn_ptr.p_proc = NULL; if (kn->kn_fflags & NOTE_EXIT) - kn->kn_data = p->p_xstat; + kn->kn_data = KW_EXITCODE(p->p_xexit, p->p_xsig); if (kn->kn_fflags == 0) kn->kn_flags |= EV_DROP; return (1); Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_exec.c Sat Jul 18 09:02:50 2015 (r285670) @@ -920,7 +920,7 @@ done2: if (error && imgp->vmspace_destroyed) { /* sorry, no more process anymore. exit gracefully */ - exit1(td, W_EXITCODE(0, SIGABRT)); + exit1(td, 0, SIGABRT); /* NOT REACHED */ } Modified: head/sys/kern/kern_exit.c ============================================================================== --- head/sys/kern/kern_exit.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_exit.c Sat Jul 18 09:02:50 2015 (r285670) @@ -175,7 +175,7 @@ void sys_sys_exit(struct thread *td, struct sys_exit_args *uap) { - exit1(td, W_EXITCODE(uap->rval, 0)); + exit1(td, uap->rval, 0); /* NOTREACHED */ } @@ -185,13 +185,14 @@ sys_sys_exit(struct thread *td, struct s * and rusage for wait(). Check for child processes and orphan them. */ void -exit1(struct thread *td, int rv) +exit1(struct thread *td, int rval, int signo) { struct proc *p, *nq, *q, *t; struct thread *tdt; struct vnode *ttyvp = NULL; mtx_assert(&Giant, MA_NOTOWNED); + KASSERT(rval == 0 || signo == 0, ("exit1 rv %d sig %d", rval, signo)); p = td->td_proc; /* @@ -200,8 +201,7 @@ exit1(struct thread *td, int rv) * shutdown on sparc64 when the gmirror worker process exists. */ if (p == initproc && rebooting == 0) { - printf("init died (signal %d, exit %d)\n", - WTERMSIG(rv), WEXITSTATUS(rv)); + printf("init died (signal %d, exit %d)\n", signo, rval); panic("Going nowhere without my init!"); } @@ -257,6 +257,11 @@ exit1(struct thread *td, int rv) KASSERT(p->p_numthreads == 1, ("exit1: proc %p exiting with %d threads", p, p->p_numthreads)); racct_sub(p, RACCT_NTHR, 1); + + /* Let event handler change exit status */ + p->p_xexit = rval; + p->p_xsig = signo; + /* * Wakeup anyone in procfs' PIOCWAIT. They should have a hold * on our vmspace, so we should block below until they have @@ -264,7 +269,7 @@ exit1(struct thread *td, int rv) * requested S_EXIT stops we will block here until they ack * via PIOCCONT. */ - _STOPEVENT(p, S_EXIT, rv); + _STOPEVENT(p, S_EXIT, 0); /* * Ignore any pending request to stop due to a stop signal. @@ -289,7 +294,6 @@ exit1(struct thread *td, int rv) while (p->p_lock > 0) msleep(&p->p_lock, &p->p_mtx, PWAIT, "exithold", 0); - p->p_xstat = rv; /* Let event handler change exit status */ PROC_UNLOCK(p); /* Drain the limit callout while we don't have the proc locked */ callout_drain(&p->p_limco); @@ -301,7 +305,7 @@ exit1(struct thread *td, int rv) * it was. The exit status is WEXITSTATUS(rv), but it's not clear * what the return value is. */ - AUDIT_ARG_EXIT(WEXITSTATUS(rv), 0); + AUDIT_ARG_EXIT(rval, 0); AUDIT_SYSCALL_EXIT(0, td); #endif @@ -322,7 +326,8 @@ exit1(struct thread *td, int rv) /* * Check if any loadable modules need anything done at process exit. - * E.g. SYSV IPC stuff + * E.g. SYSV IPC stuff. + * Event handler could change exit status. * XXX what if one of these generates an error? */ EVENTHANDLER_INVOKE(process_exit, p); @@ -332,7 +337,6 @@ exit1(struct thread *td, int rv) * P_PPWAIT is set; we will wakeup the parent below. */ PROC_LOCK(p); - rv = p->p_xstat; /* Event handler could change exit status */ stopprofclock(p); p->p_flag &= ~(P_TRACED | P_PPWAIT | P_PPTRACE); @@ -561,9 +565,9 @@ exit1(struct thread *td, int rv) #ifdef KDTRACE_HOOKS int reason = CLD_EXITED; - if (WCOREDUMP(rv)) + if (WCOREDUMP(signo)) reason = CLD_DUMPED; - else if (WIFSIGNALED(rv)) + else if (WIFSIGNALED(signo)) reason = CLD_KILLED; SDT_PROBE(proc, kernel, , exit, reason, 0, 0, 0, 0); #endif @@ -742,7 +746,7 @@ out: sbuf_finish(sb); log(LOG_INFO, "%s", sbuf_data(sb)); sbuf_delete(sb); - exit1(td, W_EXITCODE(0, sig)); + exit1(td, 0, sig); return (0); } @@ -841,7 +845,7 @@ proc_reap(struct thread *td, struct proc PROC_SUNLOCK(p); if (status) - *status = p->p_xstat; /* convert to int */ + *status = KW_EXITCODE(p->p_xexit, p->p_xsig); if (options & WNOWAIT) { /* * Only poll, returning the status. Caller does not wish to @@ -905,7 +909,7 @@ proc_reap(struct thread *td, struct proc * nothing can reach this process anymore. As such further locking * is unnecessary. */ - p->p_xstat = 0; /* XXX: why? */ + p->p_xexit = p->p_xsig = 0; /* XXX: why? */ PROC_LOCK(q); ruadd(&q->p_stats->p_cru, &q->p_crux, &p->p_ru, &p->p_rux); @@ -1064,15 +1068,15 @@ proc_to_reap(struct thread *td, struct p * This is still a rough estimate. We will fix the * cases TRAPPED, STOPPED, and CONTINUED later. */ - if (WCOREDUMP(p->p_xstat)) { + if (WCOREDUMP(p->p_xsig)) { siginfo->si_code = CLD_DUMPED; - siginfo->si_status = WTERMSIG(p->p_xstat); - } else if (WIFSIGNALED(p->p_xstat)) { + siginfo->si_status = WTERMSIG(p->p_xsig); + } else if (WIFSIGNALED(p->p_xsig)) { siginfo->si_code = CLD_KILLED; - siginfo->si_status = WTERMSIG(p->p_xstat); + siginfo->si_status = WTERMSIG(p->p_xsig); } else { siginfo->si_code = CLD_EXITED; - siginfo->si_status = WEXITSTATUS(p->p_xstat); + siginfo->si_status = p->p_xexit; } siginfo->si_pid = p->p_pid; @@ -1223,9 +1227,9 @@ loop: sx_xunlock(&proctree_lock); if (status != NULL) - *status = W_STOPCODE(p->p_xstat); + *status = W_STOPCODE(p->p_xsig); if (siginfo != NULL) { - siginfo->si_status = p->p_xstat; + siginfo->si_status = p->p_xsig; siginfo->si_code = CLD_TRAPPED; } if ((options & WNOWAIT) == 0) { @@ -1236,7 +1240,7 @@ loop: CTR4(KTR_PTRACE, "wait: returning trapped pid %d status %#x (xstat %d) xthread %d", - p->p_pid, W_STOPCODE(p->p_xstat), p->p_xstat, + p->p_pid, W_STOPCODE(p->p_xsig), p->p_xsig, p->p_xthread != NULL ? p->p_xthread->td_tid : -1); PROC_UNLOCK(p); td->td_retval[0] = pid; @@ -1252,9 +1256,9 @@ loop: sx_xunlock(&proctree_lock); if (status != NULL) - *status = W_STOPCODE(p->p_xstat); + *status = W_STOPCODE(p->p_xsig); if (siginfo != NULL) { - siginfo->si_status = p->p_xstat; + siginfo->si_status = p->p_xsig; siginfo->si_code = CLD_STOPPED; } if ((options & WNOWAIT) == 0) { Modified: head/sys/kern/kern_kthread.c ============================================================================== --- head/sys/kern/kern_kthread.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_kthread.c Sat Jul 18 09:02:50 2015 (r285670) @@ -162,7 +162,7 @@ kproc_exit(int ecode) wakeup(p); /* Buh-bye! */ - exit1(td, W_EXITCODE(ecode, 0)); + exit1(td, ecode, 0); } /* Modified: head/sys/kern/kern_proc.c ============================================================================== --- head/sys/kern/kern_proc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_proc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -41,7 +41,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include @@ -68,9 +70,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include +#include #ifdef DDB #include @@ -920,7 +921,7 @@ fill_kinfo_proc_only(struct proc *p, str p->p_sysent->sv_name[0] != '\0') strlcpy(kp->ki_emul, p->p_sysent->sv_name, sizeof(kp->ki_emul)); kp->ki_siglist = p->p_siglist; - kp->ki_xstat = p->p_xstat; + kp->ki_xstat = KW_EXITCODE(p->p_xexit, p->p_xsig); kp->ki_acflag = p->p_acflag; kp->ki_lock = p->p_lock; if (p->p_pptr) { Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/kern_sig.c Sat Jul 18 09:02:50 2015 (r285670) @@ -2227,7 +2227,7 @@ tdsendsignal(struct proc *p, struct thre if (p->p_numthreads == p->p_suspcount) { PROC_SUNLOCK(p); p->p_flag |= P_CONTINUED; - p->p_xstat = SIGCONT; + p->p_xsig = SIGCONT; PROC_LOCK(p->p_pptr); childproc_continued(p); PROC_UNLOCK(p->p_pptr); @@ -2306,7 +2306,7 @@ tdsendsignal(struct proc *p, struct thre if (p->p_flag & (P_PPWAIT|P_WEXIT)) goto out; p->p_flag |= P_STOPPED_SIG; - p->p_xstat = sig; + p->p_xsig = sig; PROC_SLOCK(p); sig_suspend_threads(td, p, 1); if (p->p_numthreads == p->p_suspcount) { @@ -2319,7 +2319,7 @@ tdsendsignal(struct proc *p, struct thre */ thread_stopped(p); PROC_SUNLOCK(p); - sigqueue_delete_proc(p, p->p_xstat); + sigqueue_delete_proc(p, p->p_xsig); } else PROC_SUNLOCK(p); goto out; @@ -2491,7 +2491,7 @@ ptracestop(struct thread *td, int sig) * Just make wait() to work, the last stopped thread * will win. */ - p->p_xstat = sig; + p->p_xsig = sig; p->p_xthread = td; p->p_flag |= (P_STOPPED_SIG|P_STOPPED_TRACE); sig_suspend_threads(td, p, 0); @@ -2684,7 +2684,7 @@ issignal(struct thread *td) /* * If parent wants us to take the signal, - * then it will leave it in p->p_xstat; + * then it will leave it in p->p_xsig; * otherwise we just look for signals again. */ if (newsig == 0) @@ -2761,7 +2761,7 @@ issignal(struct thread *td) WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, &p->p_mtx.lock_object, "Catching SIGSTOP"); p->p_flag |= P_STOPPED_SIG; - p->p_xstat = sig; + p->p_xsig = sig; PROC_SLOCK(p); sig_suspend_threads(td, p, 0); thread_suspend_switch(td, p); @@ -2965,7 +2965,7 @@ sigexit(td, sig) sig & WCOREFLAG ? " (core dumped)" : ""); } else PROC_UNLOCK(p); - exit1(td, W_EXITCODE(0, sig)); + exit1(td, 0, sig); /* NOTREACHED */ } @@ -3020,8 +3020,8 @@ childproc_jobstate(struct proc *p, int r void childproc_stopped(struct proc *p, int reason) { - /* p_xstat is a plain signal number, not a full wait() status here. */ - childproc_jobstate(p, reason, p->p_xstat); + + childproc_jobstate(p, reason, p->p_xsig); } void @@ -3033,16 +3033,18 @@ childproc_continued(struct proc *p) void childproc_exited(struct proc *p) { - int reason; - int xstat = p->p_xstat; /* convert to int */ - int status; - - if (WCOREDUMP(xstat)) - reason = CLD_DUMPED, status = WTERMSIG(xstat); - else if (WIFSIGNALED(xstat)) - reason = CLD_KILLED, status = WTERMSIG(xstat); - else - reason = CLD_EXITED, status = WEXITSTATUS(xstat); + int reason, status; + + if (WCOREDUMP(p->p_xsig)) { + reason = CLD_DUMPED; + status = WTERMSIG(p->p_xsig); + } else if (WIFSIGNALED(p->p_xsig)) { + reason = CLD_KILLED; + status = WTERMSIG(p->p_xsig); + } else { + reason = CLD_EXITED; + status = p->p_xexit; + } /* * XXX avoid calling wakeup(p->p_pptr), the work is * done in exit1(). Modified: head/sys/kern/sys_procdesc.c ============================================================================== --- head/sys/kern/sys_procdesc.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/sys_procdesc.c Sat Jul 18 09:02:50 2015 (r285670) @@ -295,7 +295,7 @@ procdesc_exit(struct proc *p) ("procdesc_exit: closed && parent not init")); pd->pd_flags |= PDF_EXITED; - pd->pd_xstat = p->p_xstat; + pd->pd_xstat = KW_EXITCODE(p->p_xexit, p->p_xsig); /* * If the process descriptor has been closed, then we have nothing Modified: head/sys/kern/sys_process.c ============================================================================== --- head/sys/kern/sys_process.c Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/kern/sys_process.c Sat Jul 18 09:02:50 2015 (r285670) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -975,7 +976,7 @@ kern_ptrace(struct thread *td, int req, sx_xunlock(&proctree_lock); proctree_locked = 0; } - p->p_xstat = data; + p->p_xsig = data; p->p_xthread = NULL; if ((p->p_flag & (P_STOPPED_SIG | P_STOPPED_TRACE)) != 0) { /* deliver or queue signal */ @@ -1300,7 +1301,8 @@ stopevent(struct proc *p, unsigned int e CTR3(KTR_PTRACE, "stopevent: pid %d event %u val %u", p->p_pid, event, val); do { - p->p_xstat = val; + if (event != S_EXIT) + p->p_xsig = val; p->p_xthread = NULL; p->p_stype = event; /* Which event caused the stop? */ wakeup(&p->p_stype); /* Wake up any PIOCWAIT'ing procs */ Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/sys/proc.h Sat Jul 18 09:02:50 2015 (r285670) @@ -585,10 +585,10 @@ struct proc { pid_t p_reapsubtree; /* (e) Pid of the direct child of the reaper which spawned our subtree. */ + u_int p_xexit; /* (c) Exit code. */ + u_int p_xsig; /* (c) Stop/kill sig. */ /* End area that is copied on creation. */ -#define p_endcopy p_xstat - - u_short p_xstat; /* (c) Exit status; also stop sig. */ +#define p_endcopy p_xsig struct knlist p_klist; /* (c) Knotes attached to this proc. */ int p_numthreads; /* (c) Number of threads. */ struct mdproc p_md; /* Any machine-dependent fields. */ @@ -970,7 +970,7 @@ void unsleep(struct thread *); void userret(struct thread *, struct trapframe *); void cpu_exit(struct thread *); -void exit1(struct thread *, int) __dead2; +void exit1(struct thread *, int, int) __dead2; struct syscall_args; int cpu_fetch_syscall_args(struct thread *td, struct syscall_args *sa); void cpu_fork(struct thread *, struct proc *, struct thread *, int); Modified: head/sys/sys/wait.h ============================================================================== --- head/sys/sys/wait.h Sat Jul 18 06:48:30 2015 (r285669) +++ head/sys/sys/wait.h Sat Jul 18 09:02:50 2015 (r285670) @@ -138,7 +138,19 @@ typedef enum #define WAIT_MYPGRP 0 /* any process in my process group */ #endif /* __BSD_VISIBLE */ +#if defined(_KERNEL) || defined(_WANT_KW_EXITCODE) + +/* + * Clamp the return code to the low 8 bits from full 32 bit value. + * Should be used in kernel to construct the wait(2)-compatible process + * status to usermode. + */ +#define KW_EXITCODE(ret, sig) W_EXITCODE((ret) & 0xff, (sig)) + +#endif /* _KERNEL || _WANT_KW_EXITCODE */ + #ifndef _KERNEL + #include __BEGIN_DECLS From owner-svn-src-head@freebsd.org Sat Jul 18 09:36:51 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06DA49A5B89; Sat, 18 Jul 2015 09:36:51 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 BA4D31BFA; Sat, 18 Jul 2015 09:36:50 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZGOY2-000G0l-TU; Sat, 18 Jul 2015 10:36:47 +0100 Subject: Re: svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy... Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: text/plain; charset=utf-8 From: Mark R V Murray In-Reply-To: Date: Sat, 18 Jul 2015 10:36:40 +0100 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <7EA4E94C-50AA-4251-A43F-4135239A0798@FreeBSD.org> References: <201506301700.t5UH0jPq001498@svn.freebsd.org> <6FF99E82-AE79-4112-8EB9-DC35B75F498D@FreeBSD.org> <1437055729.1334.359.camel@freebsd.org> <87D9CCA8-B77F-4CBD-85EC-08C4A9D8413E@FreeBSD.org> <1AC4E809-0189-4B16-8BB0-691FF0BD053A@FreeBSD.org> <69373179-2592-401F-A650-F643760E5F47@FreeBSD.org> <379DCA98-5525-4F37-A999-AFFDDA14766D@FreeBSD.org> <2C587E4C-E7A3-4AD6-BC3D-492BDDA72A96@FreeBSD.org> To: "K. Macy" X-Mailer: Apple Mail (2.2102) X-SA-Score: -1.0 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 09:36:51 -0000 CC=E2=80=99ing to original lists. Kip=E2=80=99s problem has come to conclusion, and our final (private) = email is forwarded to the lists with permission. It should be noted that Kip was importing CURRENT to a fork of FreeBSD, and there was a potential merging problem that may have caused a link failure. M > On 17 Jul 2015, at 23:14, K. Macy wrote: >=20 > On Fri, Jul 17, 2015 at 3:01 PM, Mark R V Murray = wrote: >>=20 >>> On 17 Jul 2015, at 22:39, K. Macy wrote: >>> Like I said, the linking issue isn't a concern. My problem is that >>> it's not booting because it hangs in an uninterruptible sleep in dd. >>> In addition, I strongly disagree with a change that by default could >>> adversely impact network performance. >>=20 >> I=E2=80=99ve agreed that the fact that it is uninterruptible is cause = for >> concern, and I=E2=80=99ve now coded but not tested or committed a = fix. >>=20 >=20 > Glad to hear it. >=20 >> The fact that RANDOM_DUMMY never unblocks is a feature not a bug. >=20 > I don't recall having suggested otherwise. Returning with no entropy > would be undesirable. But as you now, presumably, realize - having the > reader be unkillable as a result of this wait is highly undesirable. >=20 >=20 >>> If you say that you've tested RANDOM_DUMMY and it works for you then = I >>> guess I'm on my own. >>=20 >> RANDOM_DUMMY is for folks who don=E2=80=99t want a CSPRNG. It sounds = like you >> need one. >=20 > Yes. I had already reached the obvious conclusion that enabling > fortuna would have bypassed all this grief. >=20 >=20 > Cheers. >=20 > -K >=20 --=20 Mark R V Murray From owner-svn-src-head@freebsd.org Sat Jul 18 09:47:13 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF88B9A5D52; Sat, 18 Jul 2015 09:47:13 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 7CA201023; Sat, 18 Jul 2015 09:47:12 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id MAA25450; Sat, 18 Jul 2015 12:47:04 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1ZGOi0-00076a-DA; Sat, 18 Jul 2015 12:47:04 +0300 Message-ID: <55AA205F.5000403@FreeBSD.org> Date: Sat, 18 Jul 2015 12:46:07 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Mark Johnston , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r285664 - in head/sys: kern sys References: <201507180057.t6I0vVhS076519@repo.freebsd.org> In-Reply-To: <201507180057.t6I0vVhS076519@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 09:47:14 -0000 On 18/07/2015 03:57, Mark Johnston wrote: > Author: markj > Date: Sat Jul 18 00:57:30 2015 > New Revision: 285664 > URL: https://svnweb.freebsd.org/changeset/base/285664 > > Log: > Pass the lock object to lockstat_nsecs() and return immediately if > LO_NOPROFILE is set. Some timecounter handlers acquire a spin mutex, and > we don't want to recurse if lockstat probes are enabled. > > PR: 201642 > Reviewed by: avg > MFC after: 3 days Mark, thank you very much for this fix and a couple of others! -- Andriy Gapon From owner-svn-src-head@freebsd.org Sat Jul 18 10:55:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5274E9A26C9; Sat, 18 Jul 2015 10:55:18 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id E34B3190C; Sat, 18 Jul 2015 10:55:17 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id 8FFB0D46E68; Sat, 18 Jul 2015 20:55:08 +1000 (AEST) Date: Sat, 18 Jul 2015 20:55:07 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mark Johnston cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285664 - in head/sys: kern sys In-Reply-To: <201507180057.t6I0vVhS076519@repo.freebsd.org> Message-ID: <20150718185937.A1301@besplex.bde.org> References: <201507180057.t6I0vVhS076519@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=ItbjC+Lg c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=CZyJ-cfkPX7LN7d6QNYA:9 a=bWETvdHvsjoFpoOO:21 a=mJCIsC92NSIskYcC:21 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 10:55:18 -0000 On Sat, 18 Jul 2015, Mark Johnston wrote: > Log: > Pass the lock object to lockstat_nsecs() and return immediately if > LO_NOPROFILE is set. Some timecounter handlers acquire a spin mutex, and > we don't want to recurse if lockstat probes are enabled. It is an error to call timecounter code from a low-level place like the mutex implementation. This workaround depends on all locks in timecounter handlers being LO_NOPROFILE, and that breaks profiling of these locks. The breakage is largest if the locks are used for more than timecounters. E.g., the one for i386's obsolescent i8254 timer has to be used for all accesses to the i8254. This lock is configured as MTX_SPIN | MTX_NOPROFILE and is perhaps the main one fixed by this commit. KTR handles this problem badly in a different way. It abuses get_cyclecount(). The abuse is parametrized by defining KTR_TIME as get_cyclecount() and using KTR_TIME. The definition of KTR_TIME is ifdefed but not in a usable way. This is of course undocumented, and KTR_TIME is not a normal kernel option so it is hard to define in config files. KTR needs to be about as careful about this as lockstat since it is called from low level mutex code for debugging. I think there is nothing like LO_NOPROFILE to turn it off. Of course you can turn off the mutex code's calls to it using MTX_QUIET or MTX_NOWITNESS, but this breaks much more than lock profiling. (I rarely use any lock debugging, but when I did I found it useful to use it without WITNESS_SKIPSPIN and with MTX_QUIET and MTX_NOWITNESS turned off for the locks being debugged. Some console drivers use spinlocks with MTX_QUIET or MTX_NOWITNESS to avoid various problems, and this breaks witnessing of them even for non-console uses. Unbreaking their witnessing uncovered further bugs.) Abusing get_cyclecount() in KTR doesn't even fix the problem with timecounters, since some implementations of get_cyclecount() (some arm, some i386) use the timecounter. Other bugs with using get_cyclecount(): - even if it returns cycles counted by a clock, the frequency of this clock is unknown/unobtainable, so there is no way to convert to human-readable units - some arches return a shifted binuptime() that wraps very quickly (256 seconds for arm with ARM_ARCH < 6). Such counters cannot be monotonic. - some arches (arm again?) used to use binuptime() with swizzling more complicated than shifting. Their counters were further from being monotonic. - arm is now the only arch that uses binuptime() at a low level. arm64 use a stub that returns 1. ARM_ARCH < 6 does the above. i386 returns cpu_ticks(). This is the correct method. It uses the hardware counter use by cpu_ticks() if possible, else the raw value of the current hardware timecounter, adjusted to avoid wrap. (This is not actually a correct method, since its implementation is no good. The wrap adjustment is down with no locking. Also, switching the timecounter hardware breaks the get_cyclecount() use even more than the thread resource usage use. The latter has incomplete recalibration.) - KTR of course has no support for converting to human-readable units. ktrdump prints raw timestamps and their differences in %16ju format. kern_ktr.c seems to print them only in a ddb command. This prints the raw value in the much worse format %10.10lld. This uses the long long abomination and has a sign error (ktr_timestamp has type uint64_t). - ktr's "timestamps" are thus at best a cookie that increases strictly monotonically - get_cyclecount() is always rdtsc() on modern x86. rdtsc() is not a serializing instruction. I recently learned how unserial it can be -- hundreds of cycles on freefall. The hundred-cycle case probably doesn't happen much in KTR's use. It happens in the test program when the program spins waiting for something and executes rdtsc() after that, or so it thinks. The CPU actually executes rdtsc() speculatively hundreds of cycles earlier while spinning. Back to back rdtsc()s seem to be executed in order on freefall, and the speculation seems to extend to only the first one. So there is a good chance that get_cyclecount() called on the same CPU gives a strictly increasing value. But across CPUs, the hundred-cycle difference are the usual case if there is no synchronization of the threads (even when the TSCs on the different CPUs are perfectly synchronized at the hardware level). - get_cyclecount() doesn't bother with synchronization if it uses the TSC (or equivalent). This is a feature. It is supposed to be efficient even if this requires it to return garbage. But this makes it unusable for almost everything. Certainly for timestamps. - get_cyclecount()'s documentation has rotted to match its misuse. It is now documented as returning a value that is monotonically increasing inside each CPU. But it never obviously did that on x86 (rdtsc isn't a serializing instruction, and the implementation doesn't even have a compiler barrier), and it doesn't do that on arm < 6 (wrap occurs after 256 seconds). Its documentation does a good job of describing its non-monotonicity across CPUs. cpu_ticks() also doesn't require any synchronization across CPUs. This is less clear since it has null documenation. KTR shouldn't try to synchronize threads to get timestamps that are monotonic across CPUs relative to some shared (non-relativistic) clock, although this would be useful for debugging synchronization, since this would be slow (100-200 cycles per sync on freefall) and would break debugging of synchronization bugs by adding synchronization. Timecounters give timestamps that are almost comparable across CPUs, even when they use the TSC timecounter. They do this by reading a shared hardware timecounter, perhaps even with a lock that serializes everything, or by reading something like a shared TSC that is not fully serialized. For the TSC, low-level code gives serialization for each CPU. The TSCs ar hopefully synced at the hardware level, so that when you read them at almost the same physical time on separate CPUs you get almost the same value. The physical time might be affected relativistically, but CPUs are not yet quite fast enough for that to be a large effect. The largest effect is probably from pipeline delays. Bruce From owner-svn-src-head@freebsd.org Sat Jul 18 12:03:18 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41FEE9A4C5B; Sat, 18 Jul 2015 12:03:18 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 32DCA1236; Sat, 18 Jul 2015 12:03:18 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IC3I3C052887; Sat, 18 Jul 2015 12:03:18 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IC3IjU052886; Sat, 18 Jul 2015 12:03:18 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181203.t6IC3IjU052886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 12:03:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285671 - head/usr.sbin/uefisign X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 12:03:18 -0000 Author: trasz Date: Sat Jul 18 12:03:17 2015 New Revision: 285671 URL: https://svnweb.freebsd.org/changeset/base/285671 Log: uefisign(8) ships with 10.2. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/uefisign/uefisign.8 Modified: head/usr.sbin/uefisign/uefisign.8 ============================================================================== --- head/usr.sbin/uefisign/uefisign.8 Sat Jul 18 09:02:50 2015 (r285670) +++ head/usr.sbin/uefisign/uefisign.8 Sat Jul 18 12:03:17 2015 (r285671) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 10, 2014 +.Dd July 11, 2015 .Dt UEFISIGN 8 .Os .Sh NAME @@ -84,7 +84,7 @@ View signature: The .Nm command appeared in -.Fx 11.0 . +.Fx 10.2 . .Sh AUTHORS The .Nm From owner-svn-src-head@freebsd.org Sat Jul 18 12:03:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BD809A4C9D; Sat, 18 Jul 2015 12:03:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 8CB5614A7; Sat, 18 Jul 2015 12:03:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IC3qup052952; Sat, 18 Jul 2015 12:03:52 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IC3qQq052951; Sat, 18 Jul 2015 12:03:52 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181203.t6IC3qQq052951@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 12:03:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285672 - head/usr.sbin/fstyp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 12:03:52 -0000 Author: trasz Date: Sat Jul 18 12:03:51 2015 New Revision: 285672 URL: https://svnweb.freebsd.org/changeset/base/285672 Log: fstyp(8) ships with 10.2. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/fstyp/fstyp.8 Modified: head/usr.sbin/fstyp/fstyp.8 ============================================================================== --- head/usr.sbin/fstyp/fstyp.8 Sat Jul 18 12:03:17 2015 (r285671) +++ head/usr.sbin/fstyp/fstyp.8 Sat Jul 18 12:03:51 2015 (r285672) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 15, 2015 +.Dd July 11, 2015 .Dt FSTYP 8 .Os .Sh NAME @@ -116,7 +116,7 @@ type is not recognized. The .Nm command appeared in -.Fx 11.0 . +.Fx 10.2 . .Sh AUTHORS The .Nm From owner-svn-src-head@freebsd.org Sat Jul 18 12:18:00 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 93C439A401C; Sat, 18 Jul 2015 12:18:00 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 812BE1A8B; Sat, 18 Jul 2015 12:18:00 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ICI0OB057107; Sat, 18 Jul 2015 12:18:00 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6ICI0GS057106; Sat, 18 Jul 2015 12:18:00 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181218.t6ICI0GS057106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 12:18:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285673 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 12:18:00 -0000 Author: trasz Date: Sat Jul 18 12:17:59 2015 New Revision: 285673 URL: https://svnweb.freebsd.org/changeset/base/285673 Log: Add CARP events description to devd.conf(5). MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Modified: head/sbin/devd/devd.conf.5 Modified: head/sbin/devd/devd.conf.5 ============================================================================== --- head/sbin/devd/devd.conf.5 Sat Jul 18 12:03:51 2015 (r285672) +++ head/sbin/devd/devd.conf.5 Sat Jul 18 12:17:59 2015 (r285673) @@ -41,7 +41,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd May 13, 2015 +.Dd July 11, 2015 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -336,6 +336,26 @@ Processor state/configuration ($notify=0 Thermal zone events. .El .Pp +.It Li CARP +Events related to the +.Xr carp 8 +protocol. +.Bl -tag -width ".Sy Subsystem" -compact +.It Sy Subsystem +.It Ar vhid@interface +The +.Dq subsystem +contains the actual CARP vhid and the name of the network interface +on which the event took place. +.Bl -tag -width ".Li MASTER" -compact +.It Sy Type +.It Li MASTER +Node become the master for a virtual host. +.It Li BACKUP +Node become the backup for a virtual host. +.El +.El +.Pp .It Li IFNET Events related to the network subsystem. .Bl -tag -width ".Sy Subsystem" -compact From owner-svn-src-head@freebsd.org Sat Jul 18 12:24:55 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 202689A425C; Sat, 18 Jul 2015 12:24:55 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 10F5A1E85; Sat, 18 Jul 2015 12:24:55 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ICOsmO060971; Sat, 18 Jul 2015 12:24:54 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6ICOsoW060970; Sat, 18 Jul 2015 12:24:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181224.t6ICOsoW060970@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 12:24:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285674 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 12:24:55 -0000 Author: trasz Date: Sat Jul 18 12:24:54 2015 New Revision: 285674 URL: https://svnweb.freebsd.org/changeset/base/285674 Log: Document suspend/resume notification in devd.conf(5). MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Modified: head/sbin/devd/devd.conf.5 Modified: head/sbin/devd/devd.conf.5 ============================================================================== --- head/sbin/devd/devd.conf.5 Sat Jul 18 12:17:59 2015 (r285673) +++ head/sbin/devd/devd.conf.5 Sat Jul 18 12:24:54 2015 (r285674) @@ -332,6 +332,10 @@ Battery events. Lid state ($notify=0x00 is closed, 0x01 is open). .It Li PROCESSOR Processor state/configuration ($notify=0x81 is a change in available Cx states). +.It Li Resume +Resume notification. +.It Li Suspend +Suspend notification. .It Li Thermal Thermal zone events. .El From owner-svn-src-head@freebsd.org Sat Jul 18 12:25:48 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F3999A4281; Sat, 18 Jul 2015 12:25:48 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 502271FDC; Sat, 18 Jul 2015 12:25:48 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6ICPmkE061059; Sat, 18 Jul 2015 12:25:48 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6ICPmJ3061058; Sat, 18 Jul 2015 12:25:48 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181225.t6ICPmJ3061058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 12:25:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285675 - head/etc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 12:25:48 -0000 Author: trasz Date: Sat Jul 18 12:25:47 2015 New Revision: 285675 URL: https://svnweb.freebsd.org/changeset/base/285675 Log: Remove a comment in the wrong place. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Modified: head/etc/devd.conf Modified: head/etc/devd.conf ============================================================================== --- head/etc/devd.conf Sat Jul 18 12:24:54 2015 (r285674) +++ head/etc/devd.conf Sat Jul 18 12:25:47 2015 (r285675) @@ -296,7 +296,6 @@ detach 10 { # Button: Button pressed (0 for power, 1 for sleep) # CMBAT: ACPI battery events # Lid: Lid state (0 is closed, 1 is open) -# RCTL: Resource limits # Suspend, Resume: Suspend and resume notification # Thermal: ACPI thermal zone events # From owner-svn-src-head@freebsd.org Sat Jul 18 14:12:09 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89DA39A3F37 for ; Sat, 18 Jul 2015 14:12:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm34-vm5.bullet.mail.bf1.yahoo.com (nm34-vm5.bullet.mail.bf1.yahoo.com [72.30.239.77]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B12A1CA5 for ; Sat, 18 Jul 2015 14:12:08 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1437228347; bh=toSgsdxHhpmzy2IKgyh9GBaccZjb5mpWwdwhpnEDbTI=; h=Date:From:To:CC:Subject:References:In-Reply-To:From:Subject; b=VaoUkY3tuo4a8Z0I1UKnmVLoWhsoBloINDMhe7RodZwxEsNv76rvkeYd3mR67lfGs0CVymOAkBNvIcKoK52ZAZCMm5ZLms+ALn9xp2cjZiIOgZ5tEjQF50j+gOYE5JKKRhbgXTGdaVI5oatH9emC2XnnIYoUv5mi1kagM+1dXBLcFLfHoak/IPu6uJ96UYxLHAax7EDw6BhFZCsfRkbmqCqyCDTXdCnkjBpq7RgZkY+Lj9IGobS9fBFtmrMBkGFz5WrFZUXBBGyavK1cZxCJ97kISCTBHVl2qTF4rPLVbst84/I8fRNzM7UDpVJqsf3u7Dc/fXrZvFVkDaoiudUrZQ== Received: from [66.196.81.172] by nm34.bullet.mail.bf1.yahoo.com with NNFMP; 18 Jul 2015 14:05:47 -0000 Received: from [68.142.230.71] by tm18.bullet.mail.bf1.yahoo.com with NNFMP; 18 Jul 2015 14:05:47 -0000 Received: from [127.0.0.1] by smtp228.mail.bf1.yahoo.com with NNFMP; 18 Jul 2015 14:05:47 -0000 X-Yahoo-Newman-Id: 552347.74922.bm@smtp228.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: pDq81QkVM1lWk9NBGAite2JoGtec8P5kuyxpOwfbPercKKJ Kk2cqU1NiKsWuxp55CF7ZQTglNFIfJdzeuuU56kEMPdEL.BapekRdTA6r4H_ GeknGhqxoKILIppvTLhseknZUyeR75n3neq1N0EHxVWGiYBz2wjNI5Gqdk6X 71lLRwulPmmYNZE1UDIM7MAivz9qBDmQZzkJ2aEpAJHBIS6vpedGMsyrDQ3k nVi3VF6Uz58PYreTzzkeZHQi1JynA3KOKYsyuGLSeAiQyS1_s0ayMEWULSqL .uHVByvugo1tBLABr24JrGYgsB6uixYwdh4rGKZjcND5vvBvobwhIZvhb9ot 0AcXKROvxR1DFqfIfEjUgnIRbfBycPpzVg0EV8s3u6qfCz8WX03mG9HQ1vLZ noHrb8eyYD1kNQm_D1WZpJ5oagxWg.NQGtL7vPDUggrl2JRdehNFIhBoGOI5 k3NjjVxkGCczlMpxk6MVK9G7ahuSSpGHM.WaXfy35GuMRCu4PGRIX152r.YS TSuW.CaOsa_agHMC6OM9pvtsZjrNrFIg4 X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55AA5D53.1030405@FreeBSD.org> Date: Sat, 18 Jul 2015 09:06:11 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Bruce Evans CC: Peter Jeremy , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285644 - head/contrib/sqlite3 References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <20150717222631.GD36150@server.rulingia.com> <55A98763.1030705@FreeBSD.org> <20150718155507.J876@besplex.bde.org> In-Reply-To: <20150718155507.J876@besplex.bde.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 14:12:09 -0000 On 07/18/15 01:26, Bruce Evans wrote: > On Fri, 17 Jul 2015, Pedro Giffuni wrote: > >> ... >> >> The compiler warning is this: >> ... >> ===> lib/libsqlite3 (obj,depend,all,install) >> cc1: warnings being treated as errors >> /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c: >> In function 'walIndexWriteHdr': >> /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49490: >> warning: passing argument 1 of 'memcpy' discards qualifiers from >> pointer target type >> /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49492: >> warning: passing argument 1 of 'memcpy' discards qualifiers from >> pointer target type >> --- sqlite3.So --- >> *** [sqlite3.So] Error code 1 >> ... >> >> make[6]: stopped in /scratch/tmp/pfg/head/lib/libsqlite3 >> >> It only happens when using the experimental FORTIFY_SOURCE support [1], >> and it only happens with gcc (the base one is the only tested). >> >> Yes, I am suspecting a compiler bug but gcc has been really useful to >> find >> bugs in fortify_source. > > gcc is correct. This has nothing to do with 'const'. aHdr has a > volatile qualifier. > OK, I am testing the patch for this. Thanks! Pedro. From owner-svn-src-head@freebsd.org Sat Jul 18 15:27:14 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 93E5E9A5ADB; Sat, 18 Jul 2015 15:27:14 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 6A6441D85; Sat, 18 Jul 2015 15:27:14 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IFREjS035164; Sat, 18 Jul 2015 15:27:14 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IFRDLK035162; Sat, 18 Jul 2015 15:27:13 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201507181527.t6IFRDLK035162@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 18 Jul 2015 15:27:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285676 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 15:27:14 -0000 Author: trasz Date: Sat Jul 18 15:27:12 2015 New Revision: 285676 URL: https://svnweb.freebsd.org/changeset/base/285676 Log: Expand sysctl descriptions in iscsi(4) and ctl(4). MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/share/man/man4/ctl.4 head/share/man/man4/iscsi.4 Modified: head/share/man/man4/ctl.4 ============================================================================== --- head/share/man/man4/ctl.4 Sat Jul 18 12:25:47 2015 (r285675) +++ head/share/man/man4/ctl.4 Sat Jul 18 15:27:12 2015 (r285676) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd July 3, 2015 +.Dd July 11, 2015 .Dt CTL 4 .Os .Sh NAME @@ -100,11 +100,14 @@ Defaults to 1. The number of outstanding commands to advertise to the iSCSI initiator. Technically, it is the difference between ExpCmdSN and MaxCmdSN fields in the iSCSI PDU. +Defaults to 256. .It Va kern.cam.ctl.iscsi.ping_timeout The number of seconds to wait for the iSCSI initiator to respond to a NOP-In PDU. In the event that there is no response within that time the session gets forcibly terminated. +Set to 0 to disable sending NOP-In PDUs. +Defaults to 5. .Sh SEE ALSO .Xr ctladm 8 , .Xr ctld 8 , Modified: head/share/man/man4/iscsi.4 ============================================================================== --- head/share/man/man4/iscsi.4 Sat Jul 18 12:25:47 2015 (r285675) +++ head/share/man/man4/iscsi.4 Sat Jul 18 15:27:12 2015 (r285676) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd June 20, 2015 +.Dd July 11, 2015 .Dt ISCSI 4 .Os .Sh NAME @@ -77,20 +77,25 @@ The number of seconds to wait for the ta PDU. In the event that there is no response within that time the session gets forcibly restarted. +Set to 0 to disable sending NOP-Out PDUs. +Defaults to 5. .It Va kern.iscsi.iscsid_timeout The number of seconds to wait for -.Xr ctld 8 +.Xr iscsid 8 to establish a session. After that time .Nm will abort and retry. +Defaults to 60. .It Va kern.iscsi.login_timeout The number of seconds to wait for a login attempt to succeed. After that time .Nm will abort and retry. +Defaults to 60. .It Va kern.iscsi.maxtags The maximum number of outstanding IO requests. +Defaults to 255. .It Va kern.iscsi.fail_on_disconnection Controls the behavior after an iSCSI connection has been dropped due to network problems. From owner-svn-src-head@freebsd.org Sat Jul 18 15:28:33 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C83539A5B09; Sat, 18 Jul 2015 15:28:33 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 B90EB1EE3; Sat, 18 Jul 2015 15:28:33 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IFSXex035258; Sat, 18 Jul 2015 15:28:33 GMT (envelope-from luigi@FreeBSD.org) Received: (from luigi@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IFSXRE035257; Sat, 18 Jul 2015 15:28:33 GMT (envelope-from luigi@FreeBSD.org) Message-Id: <201507181528.t6IFSXRE035257@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luigi set sender to luigi@FreeBSD.org using -f From: Luigi Rizzo Date: Sat, 18 Jul 2015 15:28:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285677 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 15:28:33 -0000 Author: luigi Date: Sat Jul 18 15:28:32 2015 New Revision: 285677 URL: https://svnweb.freebsd.org/changeset/base/285677 Log: fix a typo in a comment Modified: head/sys/netinet/ip_var.h Modified: head/sys/netinet/ip_var.h ============================================================================== --- head/sys/netinet/ip_var.h Sat Jul 18 15:27:12 2015 (r285676) +++ head/sys/netinet/ip_var.h Sat Jul 18 15:28:32 2015 (r285677) @@ -281,7 +281,7 @@ enum { IPFW_IS_MASK = 0x30000000, /* which source ? */ IPFW_IS_DIVERT = 0x20000000, IPFW_IS_DUMMYNET =0x10000000, - IPFW_IS_PIPE = 0x08000000, /* pip1=1, queue = 0 */ + IPFW_IS_PIPE = 0x08000000, /* pipe=1, queue = 0 */ }; #define MTAG_IPFW 1148380143 /* IPFW-tagged cookie */ #define MTAG_IPFW_RULE 1262273568 /* rule reference */ From owner-svn-src-head@freebsd.org Sat Jul 18 16:56:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 614AD9A4B8E; Sat, 18 Jul 2015 16:56:52 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 37EF81B03; Sat, 18 Jul 2015 16:56:52 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IGuqAr072188; Sat, 18 Jul 2015 16:56:52 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IGuqEl072187; Sat, 18 Jul 2015 16:56:52 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201507181656.t6IGuqEl072187@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 18 Jul 2015 16:56:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285678 - head/sys/dev/mmc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 16:56:52 -0000 Author: ian Date: Sat Jul 18 16:56:51 2015 New Revision: 285678 URL: https://svnweb.freebsd.org/changeset/base/285678 Log: Deselect the sd card before re-selecting it when working around a problem with some cards that causes them to become deselected after probing for switch capabilities. The old workaround fixes the behavior with some cards, but causes problems with the cards the behave correctly and don't become deselected. Forcing a deselect then reselect appears to work correctly with all cards in initial testing. Modified: head/sys/dev/mmc/mmc.c Modified: head/sys/dev/mmc/mmc.c ============================================================================== --- head/sys/dev/mmc/mmc.c Sat Jul 18 15:28:32 2015 (r285677) +++ head/sys/dev/mmc/mmc.c Sat Jul 18 16:56:51 2015 (r285678) @@ -1381,17 +1381,18 @@ mmc_discover_cards(struct mmc_softc *sc) } /* - * We reselect the card here. Some cards become - * unselected and timeout with the above two commands, - * although the state tables / diagrams in the standard - * suggest they go back to the transfer state. The only - * thing we use from the sd_status is the erase sector - * size, but it is still nice to get that right. It is - * normally harmless for cards not misbehaving. The - * Atmel bridge will complain about this command timing - * out. Others seem to handle it correctly, so it may - * be a combination of card and controller. + * We deselect then reselect the card here. Some cards + * become unselected and timeout with the above two + * commands, although the state tables / diagrams in the + * standard suggest they go back to the transfer state. + * Other cards don't become deselected, and if we + * atttempt to blindly re-select them, we get timeout + * errors from some controllers. So we deselect then + * reselect to handle all situations. The only thing we + * use from the sd_status is the erase sector size, but + * it is still nice to get that right. */ + mmc_select_card(sc, 0); mmc_select_card(sc, ivar->rca); mmc_app_sd_status(sc, ivar->rca, ivar->raw_sd_status); mmc_app_decode_sd_status(ivar->raw_sd_status, From owner-svn-src-head@freebsd.org Sat Jul 18 18:49:48 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0802A9A5DFB; Sat, 18 Jul 2015 18:49:48 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 EAA9E1E5F; Sat, 18 Jul 2015 18:49:47 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IInlm1017500; Sat, 18 Jul 2015 18:49:47 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IInjNN017494; Sat, 18 Jul 2015 18:49:45 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201507181849.t6IInjNN017494@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sat, 18 Jul 2015 18:49:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285679 - in head/usr.sbin/bsdinstall: partedit scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 18:49:48 -0000 Author: allanjude (doc committer) Date: Sat Jul 18 18:49:44 2015 New Revision: 285679 URL: https://svnweb.freebsd.org/changeset/base/285679 Log: Add support for two workarounds for known issues booting GPT in legacy mode on some hardware For Lenovo laptops with buggy bios (x220, t420, t520): Write the 0xee entry into the second slot in the pmbr instead of the first For some Dell and HP models: The BIOS gives a warning message when booting in legacy mode from a GPT partitioned disk where the 0xee partition in the pmbr is not flagged active For models known to have this problem, mark the pmbr active during installation Use smbios data to identify machines known to be affected by any of the above, and offer the user the option to apply the workaround In bsdinstall's ufs auto mode (autopart partition wizard): Allow users to select which type of partition table to use Keep current defaults: MBR for BIOS, GPT for UEFI This allows users to choose GPT for legacy boot if they wish PR: 184910 PR: 194359 Reviewed by: Michael Dexter Approved by: marcel MFC after: 3 days X-MFC-With: r285594 Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3091 Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c head/usr.sbin/bsdinstall/partedit/part_wizard.c head/usr.sbin/bsdinstall/partedit/partedit.c head/usr.sbin/bsdinstall/partedit/partedit.h head/usr.sbin/bsdinstall/scripts/auto head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/gpart_ops.c Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/partedit/gpart_ops.c Sat Jul 18 18:49:44 2015 (r285679) @@ -206,12 +206,11 @@ newfs_command(const char *fstype, char * } } -int -gpart_partition(const char *lg_name, const char *scheme) +const char * +choose_part_type(const char *def_scheme) { int cancel, choice; - struct gctl_req *r; - const char *errstr; + const char *scheme = NULL; DIALOG_LISTITEM items[] = { {"APM", "Apple Partition Map", @@ -228,30 +227,61 @@ gpart_partition(const char *lg_name, con "Bootable on Sun SPARC systems", 0 }, }; +parttypemenu: + dialog_vars.default_item = __DECONST(char *, def_scheme); + cancel = dlg_menu("Partition Scheme", + "Select a partition scheme for this volume:", 0, 0, 0, + sizeof(items) / sizeof(items[0]), items, &choice, NULL); + dialog_vars.default_item = NULL; + + if (cancel) + return NULL; + + if (!is_scheme_bootable(items[choice].name)) { + char message[512]; + sprintf(message, "This partition scheme (%s) is not " + "bootable on this platform. Are you sure you want " + "to proceed?", items[choice].name); + dialog_vars.defaultno = TRUE; + cancel = dialog_yesno("Warning", message, 0, 0); + dialog_vars.defaultno = FALSE; + if (cancel) /* cancel */ + goto parttypemenu; + } + + scheme = items[choice].name; + + return scheme; +} + +int +gpart_partition(const char *lg_name, const char *scheme) +{ + int cancel; + struct gctl_req *r; + const char *errstr; + schememenu: if (scheme == NULL) { - dialog_vars.default_item = __DECONST(char *, default_scheme()); - cancel = dlg_menu("Partition Scheme", - "Select a partition scheme for this volume:", 0, 0, 0, - sizeof(items) / sizeof(items[0]), items, &choice, NULL); - dialog_vars.default_item = NULL; + scheme = choose_part_type(default_scheme()); - if (cancel) + if (scheme == NULL) return (-1); - if (!is_scheme_bootable(items[choice].name)) { + if (!is_scheme_bootable(scheme)) { char message[512]; sprintf(message, "This partition scheme (%s) is not " "bootable on this platform. Are you sure you want " - "to proceed?", items[choice].name); + "to proceed?", scheme); dialog_vars.defaultno = TRUE; cancel = dialog_yesno("Warning", message, 0, 0); dialog_vars.defaultno = FALSE; - if (cancel) /* cancel */ + if (cancel) { /* cancel */ + /* Reset scheme so user can choose another */ + scheme = NULL; goto schememenu; + } } - - scheme = items[choice].name; } r = gctl_get_handle(); @@ -322,6 +352,26 @@ gpart_activate(struct gprovider *pp) gctl_free(r); } +void +gpart_set_root(const char *lg_name, const char *attribute) +{ + struct gctl_req *r; + const char *errstr; + + r = gctl_get_handle(); + gctl_ro_param(r, "class", -1, "PART"); + gctl_ro_param(r, "arg0", -1, lg_name); + gctl_ro_param(r, "flags", -1, "C"); + gctl_ro_param(r, "verb", -1, "set"); + gctl_ro_param(r, "attrib", -1, attribute); + + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') + gpart_show_error("Error", "Error setting parameter on disk:", + errstr); + gctl_free(r); +} + static void gpart_bootcode(struct ggeom *gp) { Modified: head/usr.sbin/bsdinstall/partedit/part_wizard.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/part_wizard.c Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/partedit/part_wizard.c Sat Jul 18 18:49:44 2015 (r285679) @@ -257,8 +257,10 @@ query: goto query; gpart_destroy(gpart); - gpart_partition(disk, default_scheme()); - scheme = default_scheme(); + scheme = choose_part_type(default_scheme()); + if (scheme == NULL) + return NULL; + gpart_partition(disk, scheme); } if (scheme == NULL || choice == 0) { @@ -272,8 +274,10 @@ query: gpart_destroy(gpart); } - gpart_partition(disk, default_scheme()); - scheme = default_scheme(); + scheme = choose_part_type(default_scheme()); + if (scheme == NULL) + return NULL; + gpart_partition(disk, scheme); } if (strcmp(scheme, "PC98") == 0 || strcmp(scheme, "MBR") == 0) { Modified: head/usr.sbin/bsdinstall/partedit/partedit.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.c Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/partedit/partedit.c Sat Jul 18 18:49:44 2015 (r285679) @@ -44,6 +44,7 @@ struct pmetadata_head part_metadata; static int sade_mode = 0; static int apply_changes(struct gmesh *mesh); +static void apply_workaround(struct gmesh *mesh); static struct partedit_item *read_geom_mesh(struct gmesh *mesh, int *nitems); static void add_geom_children(struct ggeom *gp, int recurse, struct partedit_item **items, int *nitems); @@ -189,6 +190,8 @@ main(int argc, const char **argv) if (op == 0 && validate_setup()) { /* Save */ error = apply_changes(&mesh); + if (!error) + apply_workaround(&mesh); break; } else if (op == 3) { /* Quit */ gpart_revert_all(&mesh); @@ -390,6 +393,43 @@ apply_changes(struct gmesh *mesh) return (0); } +static void +apply_workaround(struct gmesh *mesh) +{ + struct gclass *classp; + struct ggeom *gp; + struct gconfig *gc; + const char *scheme = NULL, *modified = NULL; + + LIST_FOREACH(classp, &mesh->lg_class, lg_class) { + if (strcmp(classp->lg_name, "PART") == 0) + break; + } + + if (strcmp(classp->lg_name, "PART") != 0) { + dialog_msgbox("Error", "gpart not found!", 0, 0, TRUE); + return; + } + + LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { + LIST_FOREACH(gc, &gp->lg_config, lg_config) { + if (strcmp(gc->lg_name, "scheme") == 0) { + scheme = gc->lg_val; + } else if (strcmp(gc->lg_name, "modified") == 0) { + modified = gc->lg_val; + } + } + + if (scheme && strcmp(scheme, "GPT") == 0 && + modified && strcmp(modified, "true") == 0) { + if (getenv("WORKAROUND_LENOVO")) + gpart_set_root(gp->lg_name, "lenovofix"); + if (getenv("WORKAROUND_GPTACTIVE")) + gpart_set_root(gp->lg_name, "active"); + } + } +} + static struct partedit_item * read_geom_mesh(struct gmesh *mesh, int *nitems) { Modified: head/usr.sbin/bsdinstall/partedit/partedit.h ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.h Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/partedit/partedit.h Sat Jul 18 18:49:44 2015 (r285679) @@ -72,6 +72,8 @@ void gpart_commit(struct gmesh *mesh); int gpart_partition(const char *lg_name, const char *scheme); void set_default_part_metadata(const char *name, const char *scheme, const char *type, const char *mountpoint, const char *newfs); +void gpart_set_root(const char *lg_name, const char *attribute); +const char *choose_part_type(const char *def_scheme); /* machine-dependent bootability checks */ const char *default_scheme(void); Modified: head/usr.sbin/bsdinstall/scripts/auto ============================================================================== --- head/usr.sbin/bsdinstall/scripts/auto Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/scripts/auto Sat Jul 18 18:49:44 2015 (r285679) @@ -31,6 +31,7 @@ BSDCFG_SHARE="/usr/share/bsdconfig" . $BSDCFG_SHARE/common.subr || exit 1 +f_include $BSDCFG_SHARE/dialog.subr ############################################################ FUNCTIONS @@ -51,6 +52,54 @@ error() { fi } +hline_arrows_tab_enter="Press arrows, TAB or ENTER" +msg_gpt_active_fix="Your hardware is known to have issues booting in BIOS mode from GPT partitions that are not set active. Would you like the installer to apply this workaround for you?" +msg_lenovo_fix="Your model of Lenovo is known to have a BIOS bug that prevents it booting from GPT partitions without UEFI. Would you like the installer to apply a workaround for you?" +msg_no="NO" +msg_yes="YES" + +# dialog_workaround +# +# Ask the user if they wish to apply a workaround +# +dialog_workaround() +{ + local passed_msg="$1" + local title="$DIALOG_TITLE" + local btitle="$DIALOG_BACKTITLE" + local prompt # Calculated below + local hline="$hline_arrows_tab_enter" + + local height=8 width=50 prefix=" " + local plen=${#prefix} list= line= + local max_width=$(( $width - 3 - $plen )) + + local yes no defaultno extra_args format + if [ "$USE_XDIALOG" ]; then + yes=ok no=cancel defaultno=default-no + extra_args="--wrap --left" + format="$passed_msg" + else + yes=yes no=no defaultno=defaultno + extra_args="--cr-wrap" + format="$passed_msg" + fi + + # Add height for Xdialog(1) + [ "$USE_XDIALOG" ] && height=$(( $height + $height / 5 + 3 )) + + prompt=$( printf "$format" ) + f_dprintf "%s: Workaround prompt" "$0" + $DIALOG \ + --title "$title" \ + --backtitle "$btitle" \ + --hline "$hline" \ + --$yes-label "$msg_yes" \ + --$no-label "$msg_no" \ + $extra_args \ + --yesno "$prompt" $height $width +} + ############################################################ MAIN f_dprintf "Began Installation at %s" "$( date )" @@ -106,6 +155,47 @@ fi rm -f $PATH_FSTAB touch $PATH_FSTAB +# +# Try to detect known broken platforms and apply their workarounds +# + +if f_interactive; then + sys_maker=$( kenv -q smbios.system.maker ) + f_dprintf "smbios.system.maker=[%s]" "$sys_maker" + sys_model=$( kenv -q smbios.system.product ) + f_dprintf "smbios.system.product=[%s]" "$sys_model" + sys_version=$( kenv -q smbios.system.version ) + f_dprintf "smbios.system.version=[%s]" "$sys_version" + case "$sys_maker" in + "LENOVO") + case "$sys_version" in + "ThinkPad X220"|"ThinkPad T420"|"ThinkPad T520") + dialog_workaround "$msg_lenovo_fix" + retval=$? + f_dprintf "lenovofix_prompt=[%s]" "$retval" + if [ $retval -eq $DIALOG_OK ]; then + export ZFSBOOT_PARTITION_SCHEME="GPT + Lenovo Fix" + export WORKAROUND_LENOVO=1 + fi + ;; + esac + ;; + "Dell Inc.") + case "$sys_model" in + "Latitude E7440") + dialog_workaround "$msg_gpt_active_fix" + retval=$? + f_dprintf "gpt_active_fix_prompt=[%s]" "$retval" + if [ $retval -eq $DIALOG_OK ]; then + export ZFSBOOT_PARTITION_SCHEME="GPT + Active" + export WORKAROUND_GPTACTIVE=1 + fi + ;; + esac + ;; + esac +fi + PMODES="\ \"Auto (UFS)\" \"Guided Disk Setup\" \ Manual \"Manual Disk Setup (experts)\" \ Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Sat Jul 18 16:56:51 2015 (r285678) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Sat Jul 18 18:49:44 2015 (r285679) @@ -196,6 +196,8 @@ GPART_BOOTCODE_PART='gpart bootcode -b " GPART_CREATE='gpart create -s %s "%s"' GPART_DESTROY_F='gpart destroy -F "%s"' GPART_SET_ACTIVE='gpart set -a active -i %s "%s"' +GPART_SET_LENOVOFIX='gpart set -a lenovofix "%s"' +GPART_SET_PMBR_ACTIVE='gpart set -a active "%s"' GRAID_DELETE='graid delete "%s"' LN_SF='ln -sf "%s" "%s"' MKDIR_P='mkdir -p "%s"' @@ -263,7 +265,7 @@ msg_null_index_argument="NULL index argu msg_null_poolname="NULL poolname" msg_ok="OK" msg_partition_scheme="Partition Scheme" -msg_partition_scheme_help="Toggle between GPT and MBR partitioning schemes" +msg_partition_scheme_help="Select partitioning scheme. GPT is recommended." msg_please_enter_a_name_for_your_zpool="Please enter a name for your zpool:" msg_please_enter_amount_of_swap_space="Please enter amount of swap space (SI-Unit suffixes\nrecommended; e.g., \`2g' for 2 Gigabytes):" msg_please_select_one_or_more_disks="Please select one or more disks to create a zpool:" @@ -779,7 +781,7 @@ zfs_create_diskpart() # Check for unknown partition scheme before proceeding further case "$ZFSBOOT_PARTITION_SCHEME" in - ""|MBR|GPT) : known good ;; + ""|MBR|GPT*) : known good ;; *) f_dprintf "$funcname: %s is an unsupported partition scheme" \ "$ZFSBOOT_PARTITION_SCHEME" @@ -826,7 +828,7 @@ zfs_create_diskpart() fi case "$ZFSBOOT_PARTITION_SCHEME" in - ""|GPT) f_dprintf "$funcname: Creating GPT layout..." + ""|GPT*) f_dprintf "$funcname: Creating GPT layout..." # # 1. Create GPT layout using labels # @@ -834,6 +836,17 @@ zfs_create_diskpart() return $FAILURE # + # Apply workarounds if requested by the user + # + if [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT + Lenovo Fix" ]; then + f_eval_catch $funcname gpart "$GPART_SET_LENOVOFIX" \ + $disk || return $FAILURE + elif [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT + Active" ]; then + f_eval_catch $funcname gpart "$GPART_SET_PMBR_ACTIVE" \ + $disk || return $FAILURE + fi + + # # 2. Add small freebsd-boot partition labeled `boot#' # f_eval_catch $funcname gpart "$GPART_ADD_ALIGN_LABEL_WITH_SIZE" \ @@ -1584,6 +1597,10 @@ while :; do # Toggle between GPT and MBR if [ "$ZFSBOOT_PARTITION_SCHEME" = GPT ]; then ZFSBOOT_PARTITION_SCHEME=MBR + elif [ "$ZFSBOOT_PARTITION_SCHEME" = MBR ]; then + ZFSBOOT_PARTITION_SCHEME="GPT + Active" + elif [ "$ZFSBOOT_PARTITION_SCHEME" = "GPT + Active" ]; then + ZFSBOOT_PARTITION_SCHEME="GPT + Lenovo Fix" else ZFSBOOT_PARTITION_SCHEME=GPT fi From owner-svn-src-head@freebsd.org Sat Jul 18 19:59:30 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F01A9A59B4; Sat, 18 Jul 2015 19:59:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 33AF91057; Sat, 18 Jul 2015 19:59:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IJxU2Y046124; Sat, 18 Jul 2015 19:59:30 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IJxUVI046123; Sat, 18 Jul 2015 19:59:30 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201507181959.t6IJxUVI046123@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 18 Jul 2015 19:59:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285680 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 19:59:30 -0000 Author: kib Date: Sat Jul 18 19:59:29 2015 New Revision: 285680 URL: https://svnweb.freebsd.org/changeset/base/285680 Log: Further cleanup after r285607. Remove useless release semantic for some stores to it_need. For stores where the release is needed, add a comment explaining why. Fence after the atomic_cmpset() op on the it_need should be acquire only, release is not needed (see above). The combination of atomic_cmpset() + fence_acq() is better expressed there as atomic_cmpset_acq(). Use atomic_cmpset() for swi' ih_need read and clear. Discussed with: alc, bde Reviewed by: bde Comments wording provided by: bde Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_intr.c Modified: head/sys/kern/kern_intr.c ============================================================================== --- head/sys/kern/kern_intr.c Sat Jul 18 18:49:44 2015 (r285679) +++ head/sys/kern/kern_intr.c Sat Jul 18 19:59:29 2015 (r285680) @@ -830,7 +830,7 @@ ok: * again and remove this handler if it has already passed * it on the list. */ - atomic_store_rel_int(&ie->ie_thread->it_need, 1); + ie->ie_thread->it_need = 1; } else TAILQ_REMOVE(&ie->ie_handlers, handler, ih_next); thread_unlock(ie->ie_thread->it_thread); @@ -897,6 +897,10 @@ intr_event_schedule_thread(struct intr_e * Set it_need to tell the thread to keep running if it is already * running. Then, lock the thread and see if we actually need to * put it on the runqueue. + * + * Use store_rel to arrange that the store to ih_need in + * swi_sched() is before the store to it_need and prepare for + * transfer of this order to loads in the ithread. */ atomic_store_rel_int(&it->it_need, 1); thread_lock(td); @@ -976,7 +980,7 @@ ok: * again and remove this handler if it has already passed * it on the list. */ - atomic_store_rel_int(&it->it_need, 1); + it->it_need = 1; } else TAILQ_REMOVE(&ie->ie_handlers, handler, ih_next); thread_unlock(it->it_thread); @@ -1048,6 +1052,10 @@ intr_event_schedule_thread(struct intr_e * Set it_need to tell the thread to keep running if it is already * running. Then, lock the thread and see if we actually need to * put it on the runqueue. + * + * Use store_rel to arrange that the store to ih_need in + * swi_sched() is before the store to it_need and prepare for + * transfer of this order to loads in the ithread. */ atomic_store_rel_int(&it->it_need, 1); thread_lock(td); @@ -1133,7 +1141,7 @@ swi_sched(void *cookie, int flags) * running it will execute this handler on the next pass. Otherwise, * it will execute it the next time it runs. */ - atomic_store_rel_int(&ih->ih_need, 1); + ih->ih_need = 1; if (!(flags & SWI_DELAY)) { PCPU_INC(cnt.v_soft); @@ -1224,11 +1232,15 @@ intr_event_execute_handlers(struct proc * handlers that have their need flag set. Hardware * interrupt threads always invoke all of their handlers. */ - if (ie->ie_flags & IE_SOFT) { - if (atomic_load_acq_int(&ih->ih_need) == 0) + if ((ie->ie_flags & IE_SOFT) != 0) { + /* + * ih_need can only be 0 or 1. Failed cmpset + * below means that there is no request to + * execute handlers, so a retry of the cmpset + * is not needed. + */ + if (atomic_cmpset_int(&ih->ih_need, 1, 0) == 0) continue; - else - atomic_store_rel_int(&ih->ih_need, 0); } /* Execute this handler. */ @@ -1326,16 +1338,13 @@ ithread_loop(void *arg) * Service interrupts. If another interrupt arrives while * we are running, it will set it_need to note that we * should make another pass. + * + * The load_acq part of the following cmpset ensures + * that the load of ih_need in ithread_execute_handlers() + * is ordered after the load of it_need here. */ - while (atomic_cmpset_int(&ithd->it_need, 1, 0) != 0) { - /* - * This needs a release barrier to make sure - * that this write posts before any of the - * memory or device accesses in the handlers. - */ - atomic_thread_fence_acq_rel(); + while (atomic_cmpset_acq_int(&ithd->it_need, 1, 0) != 0) ithread_execute_handlers(p, ie); - } WITNESS_WARN(WARN_PANIC, NULL, "suspending ithread"); mtx_assert(&Giant, MA_NOTOWNED); @@ -1505,14 +1514,12 @@ ithread_loop(void *arg) * Service interrupts. If another interrupt arrives while * we are running, it will set it_need to note that we * should make another pass. + * + * The load_acq part of the following cmpset ensures + * that the load of ih_need in ithread_execute_handlers() + * is ordered after the load of it_need here. */ - while (atomic_cmpset_int(&ithd->it_need, 1, 0) != 0) { - /* - * This needs a release barrier to make sure - * that this write posts before any of the - * memory or device accesses in the handlers. - */ - atomic_thread_fence_acq_rel(); + while (atomic_cmpset_acq_int(&ithd->it_need, 1, 0) != 0) { if (priv) priv_ithread_execute_handler(p, ih); else From owner-svn-src-head@freebsd.org Sat Jul 18 20:19:52 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 701639A5D73; Sat, 18 Jul 2015 20:19:52 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 607AB1B19; Sat, 18 Jul 2015 20:19:52 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IKJq3T054350; Sat, 18 Jul 2015 20:19:52 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IKJq8B054349; Sat, 18 Jul 2015 20:19:52 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507182019.t6IKJq8B054349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Sat, 18 Jul 2015 20:19:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285681 - head/sys/boot/arm/ixp425/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 20:19:52 -0000 Author: jmg Date: Sat Jul 18 20:19:51 2015 New Revision: 285681 URL: https://svnweb.freebsd.org/changeset/base/285681 Log: revert r278579, this is in a different compile environment than the kernel, and needs to be named cpu_id... Pointed out by: Berislav Purgar Modified: head/sys/boot/arm/ixp425/boot2/ixp425_board.c Modified: head/sys/boot/arm/ixp425/boot2/ixp425_board.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/ixp425_board.c Sat Jul 18 19:59:29 2015 (r285680) +++ head/sys/boot/arm/ixp425/boot2/ixp425_board.c Sat Jul 18 20:19:51 2015 (r285681) @@ -74,7 +74,7 @@ board_init(void) { struct board_config **pbp; - cputype = cpu_ident() & CPU_ID_CPU_MASK; + cputype = cpu_id() & CPU_ID_CPU_MASK; SET_FOREACH(pbp, boards) /* XXX pass down redboot board type */ From owner-svn-src-head@freebsd.org Sat Jul 18 20:21:27 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 088A79A5E8B; Sat, 18 Jul 2015 20:21:27 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 ED0961E3D; Sat, 18 Jul 2015 20:21:26 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IKLQk0058092; Sat, 18 Jul 2015 20:21:26 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IKLQYS058090; Sat, 18 Jul 2015 20:21:26 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507182021.t6IKLQYS058090@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Sat, 18 Jul 2015 20:21:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285682 - head/sys/boot/arm/ixp425/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 20:21:27 -0000 Author: jmg Date: Sat Jul 18 20:21:25 2015 New Revision: 285682 URL: https://svnweb.freebsd.org/changeset/base/285682 Log: other fixes to make boot2 compile for IXP... Properly end the asm sections, and for some reason, main needs a prototype... If someone has a better fix, I'm all ears... Pointed out by: Berislav Purgar Modified: head/sys/boot/arm/ixp425/boot2/arm_init.S head/sys/boot/arm/ixp425/boot2/boot2.c Modified: head/sys/boot/arm/ixp425/boot2/arm_init.S ============================================================================== --- head/sys/boot/arm/ixp425/boot2/arm_init.S Sat Jul 18 20:19:51 2015 (r285681) +++ head/sys/boot/arm/ixp425/boot2/arm_init.S Sat Jul 18 20:21:25 2015 (r285682) @@ -43,6 +43,7 @@ ASENTRY_NP(start) /* main should not return. If it does, spin forever */ infiniteLoop: b infiniteLoop +END(start) .Lstart: .word _edata @@ -52,5 +53,6 @@ infiniteLoop: ENTRY(cpu_id) mrc p15, 0, r0, c0, c0, 0 RET +END(cpu_id) /* End */ Modified: head/sys/boot/arm/ixp425/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/boot2.c Sat Jul 18 20:19:51 2015 (r285681) +++ head/sys/boot/arm/ixp425/boot2/boot2.c Sat Jul 18 20:21:25 2015 (r285682) @@ -152,6 +152,8 @@ getstr(int c) } } +int main(void); + int main(void) { From owner-svn-src-head@freebsd.org Sat Jul 18 22:46:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0637D9A46AF; Sat, 18 Jul 2015 22:46:47 +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 "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B9DD015FA; Sat, 18 Jul 2015 22:46:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:7b8:3a7::6c6f:d633:aff8:f50b] (unknown [IPv6:2001:7b8:3a7:0:6c6f:d633:aff8:f50b]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 153E329B32; Sun, 19 Jul 2015 00:46:44 +0200 (CEST) Subject: Re: svn commit: r285644 - head/contrib/sqlite3 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\)) Content-Type: multipart/signed; boundary="Apple-Mail=_AD697A35-FC2E-4EBC-B5A4-301229BDBE3B"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5 From: Dimitry Andric In-Reply-To: <55A98763.1030705@FreeBSD.org> Date: Sun, 19 Jul 2015 00:46:51 +0200 Cc: Peter Jeremy , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: <4C37A5C7-027C-4A75-B236-E8A512EB3FB9@FreeBSD.org> References: <201507162207.t6GM7ECT009955@repo.freebsd.org> <20150717222631.GD36150@server.rulingia.com> <55A98763.1030705@FreeBSD.org> To: Pedro Giffuni X-Mailer: Apple Mail (2.2102) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 22:46:47 -0000 --Apple-Mail=_AD697A35-FC2E-4EBC-B5A4-301229BDBE3B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On 18 Jul 2015, at 00:53, Pedro Giffuni wrote: >=20 > On 07/17/15 17:26, Peter Jeremy wrote: >> On 2015-Jul-16 22:07:14 +0000, "Pedro F. Giffuni" = wrote: >>> Log: >> ... >>> sqlite: clean a couple of invocations of memcpy(3) >>> Found almost accidentally by our native gcc when enhanced with >>> FORTIFY_SOURCE. >> ... >>> - memcpy((void *)&aHdr[1], (void *)&pWal->hdr, = sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[1], (const void *)&pWal->hdr, = sizeof(WalIndexHdr)); >>> walShmBarrier(pWal); >>> - memcpy((void *)&aHdr[0], (void *)&pWal->hdr, = sizeof(WalIndexHdr)); >>> + memcpy((void *)&aHdr[0], (const void *)&pWal->hdr, = sizeof(WalIndexHdr)); >> If the compiler complained about that, the compiler is broken. >=20 > The change was rather collateral (read cosmetical) to the real warning > which remains unfixed. >=20 > The compiler warning is this: > ... > =3D=3D=3D> lib/libsqlite3 (obj,depend,all,install) > cc1: warnings being treated as errors > /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c: = In function 'walIndexWriteHdr': > = /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49490= : warning: passing argument 1 of 'memcpy' discards qualifiers from = pointer target type > = /scratch/tmp/pfg/head/lib/libsqlite3/../../contrib/sqlite3/sqlite3.c:49492= : warning: passing argument 1 of 'memcpy' discards qualifiers from = pointer target type > --- sqlite3.So --- > *** [sqlite3.So] Error code 1 > ... >=20 > make[6]: stopped in /scratch/tmp/pfg/head/lib/libsqlite3 >=20 > It only happens when using the experimental FORTIFY_SOURCE support = [1], > and it only happens with gcc (the base one is the only tested). >=20 > Yes, I am suspecting a compiler bug but gcc has been really useful to = find > bugs in fortify_source. Actually, it is right to warn about this, as the casts drop a volatile specifier: 49482 static void walIndexWriteHdr(Wal *pWal){ 49483 volatile WalIndexHdr *aHdr =3D walIndexHdr(pWal); ... 49490 memcpy((void *)&aHdr[1], (void *)&pWal->hdr, = sizeof(WalIndexHdr)); 49491 walShmBarrier(pWal); 49492 memcpy((void *)&aHdr[0], (void *)&pWal->hdr, = sizeof(WalIndexHdr)); If you compile this with clang, and a high enough WARNS level, it tells you where the problem is: contrib/sqlite3/sqlite3.c:49490:18: error: cast from 'volatile struct = WalIndexHdr *' to 'void *' drops volatile qualifier = [-Werror,-Wcast-qual] memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); ^ contrib/sqlite3/sqlite3.c:49492:18: error: cast from 'volatile struct = WalIndexHdr *' to 'void *' drops volatile qualifier = [-Werror,-Wcast-qual] memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); ^ Similar with newer versions of gcc: contrib/sqlite3/sqlite3.c:49490:10: error: cast discards 'volatile' = qualifier from pointer target type [-Werror=3Dcast-qual] memcpy((void *)&aHdr[1], (void *)&pWal->hdr, sizeof(WalIndexHdr)); ^ contrib/sqlite3/sqlite3.c:49492:10: error: cast discards 'volatile' = qualifier from pointer target type [-Werror=3Dcast-qual] memcpy((void *)&aHdr[0], (void *)&pWal->hdr, sizeof(WalIndexHdr)); ^ Removing all the casts does not help, with base gcc it still gives: contrib/sqlite3/sqlite3.c:49490: warning: passing argument 1 of 'memcpy' = discards qualifiers from pointer target type contrib/sqlite3/sqlite3.c:49492: warning: passing argument 1 of 'memcpy' = discards qualifiers from pointer target type and with clang: contrib/sqlite3/sqlite3.c:49490:10: error: passing 'volatile WalIndexHdr = *' (aka 'volatile struct WalIndexHdr *') to parameter of type 'void *' = discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] memcpy(&aHdr[1], &pWal->hdr, sizeof(WalIndexHdr)); ^~~~~~~~ /usr/include/string.h:62:31: note: passing argument to parameter here void *memcpy(void * __restrict, const void * __restrict, size_t); ^ contrib/sqlite3/sqlite3.c:49492:10: error: passing 'volatile WalIndexHdr = *' (aka 'volatile struct WalIndexHdr *') to parameter of type 'void *' = discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] memcpy(&aHdr[0], &pWal->hdr, sizeof(WalIndexHdr)); ^~~~~~~~ /usr/include/string.h:62:31: note: passing argument to parameter here void *memcpy(void * __restrict, const void * __restrict, size_t); ^ >> 'const' >> is a promise to the caller that the given parameter will not be = modified >> by the callee. There's no requirement that the passed argument be = const. >> As bde commented, the casts are all spurious. >=20 > And since this is contrib'ed code I am not going through the > code churn but upstream has been notified. I don't think it is likely that upstream will go through the trouble of removing -Wcast-qual warnings. There are 152 of them in sqlite3.c. :-) -Dimitry --Apple-Mail=_AD697A35-FC2E-4EBC-B5A4-301229BDBE3B Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.27 iEYEARECAAYFAlWq12MACgkQsF6jCi4glqP+ggCaAve4tKxQxB/K+77ghkoZqqg9 qwUAoIwphCfBMHXgvhfZPesaPiOhtrdo =8QgW -----END PGP SIGNATURE----- --Apple-Mail=_AD697A35-FC2E-4EBC-B5A4-301229BDBE3B-- From owner-svn-src-head@freebsd.org Sat Jul 18 22:47:47 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A85149A4702; Sat, 18 Jul 2015 22:47:47 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (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 98F44189C; Sat, 18 Jul 2015 22:47:47 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t6IMllKD017102; Sat, 18 Jul 2015 22:47:47 GMT (envelope-from jmg@FreeBSD.org) Received: (from jmg@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t6IMllSv017100; Sat, 18 Jul 2015 22:47:47 GMT (envelope-from jmg@FreeBSD.org) Message-Id: <201507182247.t6IMllSv017100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmg set sender to jmg@FreeBSD.org using -f From: John-Mark Gurney Date: Sat, 18 Jul 2015 22:47:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r285683 - head/sys/boot/arm/ixp425/boot2 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2015 22:47:47 -0000 Author: jmg Date: Sat Jul 18 22:47:46 2015 New Revision: 285683 URL: https://svnweb.freebsd.org/changeset/base/285683 Log: move the prototype to the lib.h header.. This makes more sense, and it's an API between boot2.c and arm_init.S which calls it.. Modified: head/sys/boot/arm/ixp425/boot2/boot2.c head/sys/boot/arm/ixp425/boot2/lib.h Modified: head/sys/boot/arm/ixp425/boot2/boot2.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/boot2.c Sat Jul 18 20:21:25 2015 (r285682) +++ head/sys/boot/arm/ixp425/boot2/boot2.c Sat Jul 18 22:47:46 2015 (r285683) @@ -152,8 +152,6 @@ getstr(int c) } } -int main(void); - int main(void) { Modified: head/sys/boot/arm/ixp425/boot2/lib.h ============================================================================== --- head/sys/boot/arm/ixp425/boot2/lib.h Sat Jul 18 20:21:25 2015 (r285682) +++ head/sys/boot/arm/ixp425/boot2/lib.h Sat Jul 18 22:47:46 2015 (r285683) @@ -30,6 +30,8 @@ #include #include +int main(void); + void DELAY(int); int getc(int);