From owner-svn-src-user@freebsd.org Wed Jun 8 09:58:43 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00B6AB6FDEA for ; Wed, 8 Jun 2016 09:58:43 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AD9C41C54; Wed, 8 Jun 2016 09:58:42 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u589wfjT059515; Wed, 8 Jun 2016 09:58:41 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u589wf84059512; Wed, 8 Jun 2016 09:58:41 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606080958.u589wf84059512@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 09:58:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301593 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 09:58:43 -0000 Author: pho Date: Wed Jun 8 09:58:41 2016 New Revision: 301593 URL: https://svnweb.freebsd.org/changeset/base/301593 Log: Whitespace fix and minor style changes. Sponsored by: EMC / Isilon Storage Division Modified: user/pho/stress2/misc/mmap23.sh user/pho/stress2/misc/mmap25.sh user/pho/stress2/misc/oom.sh Modified: user/pho/stress2/misc/mmap23.sh ============================================================================== --- user/pho/stress2/misc/mmap23.sh Wed Jun 8 09:40:06 2016 (r301592) +++ user/pho/stress2/misc/mmap23.sh Wed Jun 8 09:58:41 2016 (r301593) @@ -33,7 +33,7 @@ # Test scenario by kib@. # Fixed by r285878. -. ../default.cfg +. ../default.cfg dir=/tmp odir=`pwd` @@ -52,8 +52,8 @@ sleep .2 dd if=/dev/zero of=/tmp/mmap23.inputfile bs=1k count=1 2>&1 | \ egrep -v "records|transferred" -while ps auxww | grep -v grep | grep -qw swap; do - killall -9 swap 2>/dev/null +while pgrep -q swap; do + pkill -9 swap done rm -f /tmp/mmap23 /tmp/mmap23.inputfile Modified: user/pho/stress2/misc/mmap25.sh ============================================================================== --- user/pho/stress2/misc/mmap25.sh Wed Jun 8 09:40:06 2016 (r301592) +++ user/pho/stress2/misc/mmap25.sh Wed Jun 8 09:58:41 2016 (r301593) @@ -37,7 +37,7 @@ # 3. The file is extended again to cover the whole mapped area. # 4. The program accesses the mapping past the point of truncation. -. ../default.cfg +. ../default.cfg dir=/tmp odir=`pwd` @@ -54,8 +54,8 @@ sleep 1 /tmp/mmap25 /tmp/mmap25.inputfile -while ps auxww | grep -v grep | grep -qw swap; do - killall -9 swap 2>/dev/null +while pgrep -q swap; do + pkill -9 swap done rm -f /tmp/mmap25 /tmp/mmap25.inputfile mmap25.core exit Modified: user/pho/stress2/misc/oom.sh ============================================================================== --- user/pho/stress2/misc/oom.sh Wed Jun 8 09:40:06 2016 (r301592) +++ user/pho/stress2/misc/oom.sh Wed Jun 8 09:58:41 2016 (r301593) @@ -37,8 +37,8 @@ # kernel: pid 5654 (sort), uid 0, was killed: out of swap space [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 -[ `sysctl -n hw.physmem` -gt $(( 1 * 1024 * 1024 * 1024)) ] && -echo "RAM should be capped to 1GB for this test." +[ `sysctl -n hw.physmem` -gt $(( 1 * 1024 * 1024 * 1024)) ] && + echo "RAM should be capped to 1GB for this test." [ `sysctl -n hw.physmem` -gt $(( 8 * 1024 * 1024 * 1024)) ] && exit 0 [ `sysctl -n vm.swap_total` -gt 0 ] && { swapoff -a; off=1; } From owner-svn-src-user@freebsd.org Wed Jun 8 09:59:32 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A3C2B6FE3D for ; Wed, 8 Jun 2016 09:59:32 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1B46C1DB7; Wed, 8 Jun 2016 09:59:32 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u589xVfT059584; Wed, 8 Jun 2016 09:59:31 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u589xVVs059583; Wed, 8 Jun 2016 09:59:31 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606080959.u589xVVs059583@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 09:59:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301594 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 09:59:32 -0000 Author: pho Date: Wed Jun 8 09:59:31 2016 New Revision: 301594 URL: https://svnweb.freebsd.org/changeset/base/301594 Log: Documented problem found. Sponsored by: EMC / Isilon Storage Division Modified: user/pho/stress2/misc/setuid.sh Modified: user/pho/stress2/misc/setuid.sh ============================================================================== --- user/pho/stress2/misc/setuid.sh Wed Jun 8 09:58:41 2016 (r301593) +++ user/pho/stress2/misc/setuid.sh Wed Jun 8 09:59:31 2016 (r301594) @@ -30,6 +30,11 @@ # Regression test for r218019: "panic: oof, we didn't get our fd" +# Page fault seen: +# https://people.freebsd.org/~pho/stress/log/kostik895.txt +# Caused by r300792 + r300793. +# Fixed by r301580. + [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 . ../default.cfg From owner-svn-src-user@freebsd.org Wed Jun 8 10:00:44 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7835DB6FF8E for ; Wed, 8 Jun 2016 10:00:44 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 463FC1FAC; Wed, 8 Jun 2016 10:00:44 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58A0hms059708; Wed, 8 Jun 2016 10:00:43 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58A0hRx059707; Wed, 8 Jun 2016 10:00:43 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606081000.u58A0hRx059707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 10:00:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301595 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 10:00:44 -0000 Author: pho Date: Wed Jun 8 10:00:43 2016 New Revision: 301595 URL: https://svnweb.freebsd.org/changeset/base/301595 Log: Whitespace fix. Sponsored by: EMC / Isilon Storage Division Modified: user/pho/stress2/misc/sendmsg.sh Modified: user/pho/stress2/misc/sendmsg.sh ============================================================================== --- user/pho/stress2/misc/sendmsg.sh Wed Jun 8 09:59:31 2016 (r301594) +++ user/pho/stress2/misc/sendmsg.sh Wed Jun 8 10:00:43 2016 (r301595) @@ -157,7 +157,7 @@ test(void) if ((pid = fork()) == -1) err(1, "fork"); - if (pid == 0) { + if (pid == 0) { fd = open("/etc/passwd", O_RDONLY); if (fd < 0) err(1, "/etc/passwd"); From owner-svn-src-user@freebsd.org Wed Jun 8 11:16:38 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD3C5B6F546 for ; Wed, 8 Jun 2016 11:16:38 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 ACB1F1CE6; Wed, 8 Jun 2016 11:16:38 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58BGbJW088599; Wed, 8 Jun 2016 11:16:37 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58BGbD2088595; Wed, 8 Jun 2016 11:16:37 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606081116.u58BGbD2088595@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 11:16:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301599 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 11:16:39 -0000 Author: pho Date: Wed Jun 8 11:16:37 2016 New Revision: 301599 URL: https://svnweb.freebsd.org/changeset/base/301599 Log: Added new pipe(2) tests. Sponsored by: EMC / Isilon Storage Division Added: user/pho/stress2/misc/context.sh (contents, props changed) user/pho/stress2/misc/context2.sh (contents, props changed) user/pho/stress2/misc/pipe.sh (contents, props changed) user/pho/stress2/misc/pipe2.sh (contents, props changed) Added: user/pho/stress2/misc/context.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/context.sh Wed Jun 8 11:16:37 2016 (r301599) @@ -0,0 +1,132 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +. ../default.cfg + +here=`pwd` +cd /tmp +sed '1,/^EOF/d' < $here/$0 > context.c +mycc -o context -Wall -Wextra -O2 -g context.c || exit 1 +rm -f context.c +[ -d $RUNDIR ] || mkdir -p $RUNDIR +cd $RUNDIR + +daemon sh -c "(cd $here/../testcases/swap; ./swap -t 10m -i 20)" > \ + /dev/null 2>&1 +for i in `jot 4`; do + /tmp/context & + pids="$pids $!" +done +s=0 +for i in $pids; do + wait $i + [ $? -ne 0 ] && s=$((s + 1)) +done +while pgrep -q swap; do + pkill -9 swap +done +rm -f /tmp/context +exit $s +EOF +/* + * Inspired by lmbench-3.0-a9/src/lat_ctx.c + * Pass a token thru pipes to CHILDREN+1 processes in a circular list + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#define CHILDREN 64 +#define RUNTIME 300 + +int fds[CHILDREN +1 ][2]; +pid_t pid[CHILDREN]; + +void +handler(int s __unused) +{ + _exit(0); +} + +int +main(void) +{ + time_t start; + int i, j; + int token; + + for (i = 0; i < CHILDREN + 1; i++) { + if (pipe(fds[i]) == -1) + err(1, "pipe"); + } + + signal(SIGHUP, handler); + start = time(NULL); + for (i = 0; i < CHILDREN; i++) { + pid[i] = fork(); + if (pid[i] == -1) { + perror("fork"); + exit(2); + } + + if (pid[i] == 0) { /* child */ + for (;;) { + if (read(fds[i][0], &token, sizeof(token)) + != sizeof(token)) + err(1, "read pipe 2"); + if (write(fds[i+1][1], &token, sizeof(token)) + != sizeof(token)) + err(1, "write pipe 1"); + } + } + + } /* parent */ + + for (j = 0; time(NULL) - start < RUNTIME; j++) { + token = j; + if (write(fds[0][1], &token, sizeof(token)) != sizeof(token)) + err(1, "write pipe 2"); + if (read(fds[CHILDREN][0], &token, sizeof(token)) + != sizeof(token)) + err(1, "read pipe 1"); + } + + for (i = 0; i < CHILDREN; i++) + kill(pid[i], SIGHUP); + + return (0); +} Added: user/pho/stress2/misc/context2.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/context2.sh Wed Jun 8 11:16:37 2016 (r301599) @@ -0,0 +1,128 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +. ../default.cfg + +here=`pwd` +cd /tmp +sed '1,/^EOF/d' < $here/$0 > context2.c +mycc -o context2 -Wall -Wextra -O2 context2.c -lpthread || exit 1 +rm -f context2.c +[ -d $RUNDIR ] || mkdir -p $RUNDIR +cd $RUNDIR + +daemon sh -c "(cd $here/../testcases/swap; ./swap -t 10m -i 20)" > \ + /dev/null 2>&1 +for i in `jot 4`; do + /tmp/context2 & +done +wait +while pgrep -q swap; do + pkill -9 swap +done +rm -f /tmp/context2 +exit 0 +EOF +/* + * Inspired by lmbench-3.0-a9/src/lat_ctx.c + * Pass a token thru pipes to NTHREADS+1 threads in a circular list. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#define NTHREADS 64 +#define RUNTIME 300 + +pid_t pid[NTHREADS]; +int fds[NTHREADS+1][2]; + +void * +thr_routine(void *arg) +{ + int i; + int token; + + i = (int)arg; + for (;;) { + if (read(fds[i][0], &token, sizeof(token)) != sizeof(token)) + err(1, "read pipe 2"); + token++; + if (write(fds[i+1][1], &token, sizeof(token)) != sizeof(token)) + err(1, "write pipe 1"); + } + return (0); +} + +int +main(void) +{ + pthread_t threads[NTHREADS]; + time_t start; + int i, r, token; + + for (i = 0; i < NTHREADS + 1; i++) { + if (pipe(fds[i]) == -1) + err(1, "pipe"); + } + + for (i = 0; i < NTHREADS; i++) + if ((r = pthread_create(&threads[i], NULL, thr_routine, + (void *)i)) != 0) + errc(1, r, "pthread_create(): %s\n", strerror(r)); + + + start = time(NULL); + while (time(NULL) - start < RUNTIME) { + token = 0; + if (write(fds[0][1], &token, sizeof(token)) != sizeof(token)) + err(1, "write pipe 2"); + if (read(fds[NTHREADS][0], &token, sizeof(token)) != + sizeof(token)) + err(1, "read pipe 1"); + } + + for (i = 0; i < NTHREADS; i++) + if ((r = pthread_cancel(threads[i])) != 0) + errc(1, r, "pthread_cancel(%d)", i); + for (i = 0; i < NTHREADS; i++) + if ((r = pthread_join(threads[i], NULL)) != 0) + errc(1, r, "pthread_join(%d)", i); + + return (0); +} Added: user/pho/stress2/misc/pipe.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/pipe.sh Wed Jun 8 11:16:37 2016 (r301599) @@ -0,0 +1,134 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +# Stress vm object collapse. + +# "panic: backing_object 0xfffff800a018f420 was somehow re-referenced during +# collapse!" seen with uma_zalloc_arg fail point enabled. + +. ../default.cfg + +dir=/tmp +odir=`pwd` +cd $dir +sed '1,/^EOF/d' < $odir/$0 > $dir/pipe.c +mycc -o pipe -Wall -Wextra -O0 -g pipe.c || exit 1 +rm -f pipe.c +cd $odir + +daemon sh -c '(cd ../testcases/swap; ./swap -t 10m -i 20)' > /dev/null 2>&1 +sleep 1 +e=0 +export e +start=`date '+%s'` +while [ $((`date '+%s'` - start)) -lt 300 ]; do + for i in `jot $(sysctl -n hw.ncpu)`; do + /tmp/pipe & + pids="$pids $!" + done + for i in $pids; do + wait $i + [ $? -ne 0 ] && e=$((e + 1)) + done + pids="" + [ $e -ne 0 ] && break +done +while pgrep -q swap; do + pkill -9 swap +done +rm -rf /tmp/pipe pipe.core +exit $e + +EOF +#include + +#include +#include +#include +#include + +#define PIPES 64 +#define RUNTIME 300 + +int +test(void) +{ + int c, e, status; + int fds[PIPES][2]; + int i; + + for (i = 0; i < PIPES; i++) { + if (pipe(fds[i]) == -1) + err(1, "pipe"); + } + c = e = 0; + if (write(fds[0][1], &c, sizeof(c)) != sizeof(c)) + err(1, "pipe write"); + for (i = 0; i < PIPES; i++) { + if (fork() == 0) { + close(fds[i][1]); + if (read(fds[i][0], &c, sizeof(c)) != sizeof(c)) + err(1, "pipe read"); +#if defined(DEBUG) + fprintf(stderr, "pid %d: i = %d: read %d\n", getpid(), + i, c); +#endif + c++; + if (i != PIPES - 1) + if (write(fds[i + 1][1], &c, sizeof(c)) != + sizeof(c)) + err(1, "pipe write"); + + _exit(0); + } + close(fds[i][0]); + close(fds[i][1]); + } + for (i = 0; i < PIPES; i++) { + wait(&status); + e += status == 0 ? 0 : 1; + } + + return (e); +} + +int +main(void) +{ + time_t start; + int e; + + e = 0; + start = time(NULL); + while (time(NULL) - start < RUNTIME && e == 0) + e = test(); + + return (e); +} Added: user/pho/stress2/misc/pipe2.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/pipe2.sh Wed Jun 8 11:16:37 2016 (r301599) @@ -0,0 +1,166 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +# pipe(2) test + +. ../default.cfg +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +dir=/tmp +odir=`pwd` +cd $dir +sed '1,/^EOF/d' < $odir/$0 > $dir/pipe2.c +mycc -o pipe2 -Wall -Wextra -O0 -g pipe2.c || exit 1 +rm -f pipe2.c + +daemon sh -c "(cd $odir/../testcases/swap; ./swap -t 10m -i 20)" > \ + /dev/null 2>&1 +sleep 10 + +su $testuser -c /tmp/pipe2 +s=$? + +while pgrep -q swap; do + pkill -9 swap +done + +rm -rf /tmp/pipe2 +exit $s + +EOF +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +volatile u_int *share, *share2; + +#define R1 1 /* sync start */ +#define R2 2 /* forks */ + +#define PIPES 128 +#define PARALLEL 32 + +static void +hand(int i __unused) { /* handler */ + fprintf(stderr, "Timed out\n"); + _exit(1); +} + +void +test(void) +{ + size_t len; + int fds[2], r; + int token; + + len = PAGE_SIZE; + if ((share = mmap(NULL, len, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_SHARED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + if (pipe(fds) == -1) + err(1, "pipe"); + token = 0; + write(fds[1], &token, sizeof(token)); + for (;;) { + if (share[R2] >= PIPES) + break; + if ((r = fork()) == 0) { + atomic_add_int(&share[R2], 1); + if (read(fds[0], &token, sizeof(token)) != sizeof(token)) + err(1, "read"); + close(fds[0]); + if (pipe(fds) == -1) + err(1, "pipe"); + token++; + if (write(fds[1], &token, sizeof(token)) != sizeof(token)) + err(1, "write"); + } + if (r == -1) + err(1, "fork()"); + if (r != 0) + _exit(0); + } + + if (share[R2] == PIPES) { +#if defined(DEBUG) + if (read(fds[0], &token, sizeof(token)) != sizeof(token)) + err(1, "final read"); + fprintf(stderr, "FINAL read %d from %d\n", token, fds[0]); +#endif + atomic_add_int(&share2[R1], 1); + } + _exit(0); +} + +int +main(void) +{ + struct sigaction sa; + size_t len; + int i; + + len = PAGE_SIZE; + if ((share2 = mmap(NULL, len, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_SHARED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + sa.sa_handler = SIG_IGN; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGCHLD, &sa, 0) == -1) + err(1, "sigaction"); + + for (i = 0; i < PARALLEL; i++) { + if (fork() == 0) + test(); + } + + + signal(SIGALRM, hand); + alarm(60); + while (share2[R1] != PARALLEL) { + sleep(1); +#if defined(DEBUG) + fprintf(stderr, "share2 = %d\n", share2[R1]); +#endif + } + + return (0); +} From owner-svn-src-user@freebsd.org Wed Jun 8 11:18:50 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB7D2B6F5DD for ; Wed, 8 Jun 2016 11:18:50 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8945F1E22; Wed, 8 Jun 2016 11:18:50 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58BIn5Z088716; Wed, 8 Jun 2016 11:18:49 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58BInBs088714; Wed, 8 Jun 2016 11:18:49 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606081118.u58BInBs088714@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 11:18:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301600 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 11:18:50 -0000 Author: pho Date: Wed Jun 8 11:18:49 2016 New Revision: 301600 URL: https://svnweb.freebsd.org/changeset/base/301600 Log: Added threaded core dump NFS scenarios. Sponsored by: EMC / Isilon Storage Division Added: user/pho/stress2/misc/nfs15.sh (contents, props changed) user/pho/stress2/misc/nfs16.sh (contents, props changed) Added: user/pho/stress2/misc/nfs15.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/nfs15.sh Wed Jun 8 11:18:49 2016 (r301600) @@ -0,0 +1,203 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +# Test effort to reproduce reported: "observed a hang in a multi-threaded +# process that had hit an assertion failure and was attempting to dump core". +# Problem never seen. + +# Most interesting load are: +# - coredumping of the multithreaded program with the current dir on NFS, +# which also accesses NFS files; +# - advisory locking tests on NFS files, while e.g. sending SIGSTOP/SIGCONT +# to the test programs. + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +. ../default.cfg + +[ -z "$nfs_export" ] && exit 0 +ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 || + exit 0 + +here=`pwd` +cd /tmp +sed '1,/^EOF/d' < $here/$0 > nfs15.c +mycc -o nfs15 -Wall -Wextra -O2 -g nfs15.c -lpthread || exit 1 +rm -f nfs15.c +cd $here + +mount | grep "on $mntpoint " | grep nfs > /dev/null && umount $mntpoint + +mount -t nfs -o tcp -o retrycnt=3 -o soft -o rw -o nolockd -o intr \ + $nfs_export $mntpoint +sleep 2 +wd=$mntpoint/nfs15.dir +rm -rf $wd +mkdir $wd + +(cd $wd; /tmp/nfs15) +rm -rf $wd + +while mount | grep "on $mntpoint " | grep -q nfs; do + umount $mntpoint || sleep 1 +done + +rm -f /tmp/nfs15 +exit 0 +EOF +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PARALLEL 4 +#define RUNTIME 300 +#define SYNC 0 + +volatile u_int *share; + +static void * +t1(void *data __unused) +{ + atomic_add_int(&share[SYNC], 1); + usleep(arc4random() % 8000); + raise(SIGABRT); + + return (NULL); +} + +static void * +t2(void *data __unused) +{ + int fd, i, r; + char file[80]; + + for (i = 0; i < 100; i++) { + atomic_add_int(&share[SYNC], 1); + snprintf(file, sizeof(file), "file.%06d", i); + if ((fd = open(file, O_WRONLY | O_CREAT | O_APPEND, DEFFILEMODE)) == -1) + err(1, "open(%s)", file); + do { + r = lockf(fd, F_LOCK, 0); + } while (r == -1 & errno == EDEADLK); + if (r == -1) + err(1, "lockf(%s, F_LOCK)", file); + write(fd, "x", 1); + if (lseek(fd, 0, SEEK_SET) == -1) + err(1, "lseek"); + if (lockf(fd, F_ULOCK, 0) == -1) + err(1, "lockf(%s, F_ULOCK)", file); + close(fd); + } + + return (NULL); +} + +int +test(void) +{ + pthread_t tid[3]; + int i, rc; + + for (i = 0; i < 10; i++) { + if ((rc = pthread_create(&tid[0], NULL, t2, NULL)) == -1) + errc(1, rc, "pthread_create"); + if ((rc = pthread_create(&tid[1], NULL, t2, NULL)) == -1) + errc(1, rc, "pthread_create"); + if ((rc = pthread_create(&tid[2], NULL, t1, NULL)) == -1) + errc(1, rc, "pthread_create"); + + if ((rc = pthread_join(tid[0], NULL)) == -1) + errc(1, rc, "pthread_join"); + if ((rc = pthread_join(tid[1], NULL)) == -1) + errc(1, rc, "pthread_join"); + if ((rc = pthread_join(tid[2], NULL)) == -1) + errc(1, rc, "pthread_join"); + } + + _exit(0); +} + +int +main(void) +{ + pid_t pids[PARALLEL]; + size_t len; + time_t start; + int i, status; + + len = PAGE_SIZE; + if ((share = mmap(NULL, len, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_SHARED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + start = time(NULL); + while (time(NULL) - start < RUNTIME) { + for (i = 0; i < PARALLEL; i++) { + if ((pids[i] = fork()) == 0) + test(); + } + + for(;;) { + if (share[SYNC] > 0) + atomic_add_int(&share[SYNC], -1); + for (i = 0; i < PARALLEL; i++) + kill(pids[i], SIGSTOP); + usleep(100 + arc4random() % 1000); + for (i = 0; i < PARALLEL; i++) + kill(pids[i], SIGCONT); + usleep(100 + arc4random() % 400); + if (share[SYNC] == 0) { /* If all procs are done */ + usleep(500); + if (share[SYNC] == 0) + break; + } + } + + for (i = 0; i < PARALLEL; i++) { + if (waitpid(pids[i], &status, 0) != pids[i]) + err(1, "waitpid"); + } + } + + return (0); +} Added: user/pho/stress2/misc/nfs16.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/nfs16.sh Wed Jun 8 11:18:49 2016 (r301600) @@ -0,0 +1,198 @@ +#!/bin/sh + +# +# Copyright (c) 2016 EMC Corp. +# 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$ +# + +# Variation of nfs15.sh, using lockd(8). +# "panic: Failed to register NFS lock locally - error=11" seen: +# https://people.freebsd.org/~pho/stress/log/kostik897.txt + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +. ../default.cfg + +[ -z "$nfs_export" ] && exit 0 +ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 || + exit 0 + +here=`pwd` +cd /tmp +sed '1,/^EOF/d' < $here/$0 > nfs16.c +mycc -o nfs16 -Wall -Wextra -O2 -g nfs16.c -lpthread || exit 1 +rm -f nfs16.c +cd $here + +mount | grep "on $mntpoint " | grep nfs > /dev/null && umount $mntpoint + +mount -t nfs -o tcp -o retrycnt=3 -o soft -o rw \ + $nfs_export $mntpoint +sleep 2 +wd=$mntpoint/nfs16.dir +rm -rf $wd +mkdir $wd + +(cd $wd; /tmp/nfs16) +rm -rf $wd + +while mount | grep "on $mntpoint " | grep -q nfs; do + umount $mntpoint || sleep 1 +done + +rm -f /tmp/nfs16 +exit 0 +EOF +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PARALLEL 4 +#define RUNTIME 300 +#define SYNC 0 + +volatile u_int *share; + +static void * +t1(void *data __unused) +{ + atomic_add_int(&share[SYNC], 1); + usleep(arc4random() % 8000); + raise(SIGABRT); + + return (NULL); +} + +static void * +t2(void *data __unused) +{ + int fd, i, r; + char file[80]; + + for (i = 0; i < 100; i++) { + atomic_add_int(&share[SYNC], 1); + snprintf(file, sizeof(file), "file.%06d", i); + if ((fd = open(file, O_WRONLY | O_CREAT | O_APPEND, DEFFILEMODE)) == -1) + err(1, "open(%s)", file); + do { + r = lockf(fd, F_LOCK, 0); + } while (r == -1 & errno == EDEADLK); + if (r == -1) + err(1, "lockf(%s, F_LOCK)", file); + write(fd, "x", 1); + usleep(arc4random() % 1000); + if (lseek(fd, 0, SEEK_SET) == -1) + err(1, "lseek"); + if (lockf(fd, F_ULOCK, 0) == -1) + err(1, "lockf(%s, F_ULOCK)", file); + close(fd); + } + + return (NULL); +} + +int +test(void) +{ + pthread_t tid[3]; + int i, rc; + + for (i = 0; i < 10; i++) { + if ((rc = pthread_create(&tid[0], NULL, t2, NULL)) == -1) + errc(1, rc, "pthread_create"); + if ((rc = pthread_create(&tid[1], NULL, t2, NULL)) == -1) + errc(1, rc, "pthread_create"); + if ((rc = pthread_create(&tid[2], NULL, t1, NULL)) == -1) + errc(1, rc, "pthread_create"); + + if ((rc = pthread_join(tid[0], NULL)) == -1) + errc(1, rc, "pthread_join"); + if ((rc = pthread_join(tid[1], NULL)) == -1) + errc(1, rc, "pthread_join"); + if ((rc = pthread_join(tid[2], NULL)) == -1) + errc(1, rc, "pthread_join"); + } + + _exit(0); +} + +int +main(void) +{ + pid_t pids[PARALLEL]; + size_t len; + time_t start; + int i, status; + + len = PAGE_SIZE; + if ((share = mmap(NULL, len, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_SHARED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + start = time(NULL); + while (time(NULL) - start < RUNTIME) { + for (i = 0; i < PARALLEL; i++) { + if ((pids[i] = fork()) == 0) + test(); + } + + for(;;) { + if (share[SYNC] > 0) + atomic_add_int(&share[SYNC], -1); + for (i = 0; i < PARALLEL; i++) + kill(pids[i], SIGSTOP); + usleep(1000); + for (i = 0; i < PARALLEL; i++) + kill(pids[i], SIGCONT); + usleep(100 + arc4random() % 400); + if (share[SYNC] == 0) { /* If all procs are done */ + usleep(500); + if (share[SYNC] == 0) + break; + } + } + + for (i = 0; i < PARALLEL; i++) { + if (waitpid(pids[i], &status, 0) != pids[i]) + err(1, "waitpid"); + } + } + + return (0); +} From owner-svn-src-user@freebsd.org Wed Jun 8 16:03:05 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A79FB6F2BD for ; Wed, 8 Jun 2016 16:03:05 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3F1771EED; Wed, 8 Jun 2016 16:03:05 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58G34d2096829; Wed, 8 Jun 2016 16:03:04 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58G34Rh096826; Wed, 8 Jun 2016 16:03:04 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201606081603.u58G34Rh096826@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Wed, 8 Jun 2016 16:03:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r301637 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 16:03:05 -0000 Author: pho Date: Wed Jun 8 16:03:04 2016 New Revision: 301637 URL: https://svnweb.freebsd.org/changeset/base/301637 Log: Fixed issues flagged by gcc. Sponsored by: EMC / Isilon Storage Division Modified: user/pho/stress2/misc/context2.sh user/pho/stress2/misc/nfs15.sh user/pho/stress2/misc/nfs16.sh Modified: user/pho/stress2/misc/context2.sh ============================================================================== --- user/pho/stress2/misc/context2.sh Wed Jun 8 15:41:39 2016 (r301636) +++ user/pho/stress2/misc/context2.sh Wed Jun 8 16:03:04 2016 (r301637) @@ -78,7 +78,7 @@ thr_routine(void *arg) int i; int token; - i = (int)arg; + i = (long)arg; for (;;) { if (read(fds[i][0], &token, sizeof(token)) != sizeof(token)) err(1, "read pipe 2"); @@ -94,6 +94,7 @@ main(void) { pthread_t threads[NTHREADS]; time_t start; + long arg; int i, r, token; for (i = 0; i < NTHREADS + 1; i++) { @@ -101,10 +102,12 @@ main(void) err(1, "pipe"); } - for (i = 0; i < NTHREADS; i++) + for (i = 0; i < NTHREADS; i++) { + arg = i; if ((r = pthread_create(&threads[i], NULL, thr_routine, - (void *)i)) != 0) + (void *)arg)) != 0) errc(1, r, "pthread_create(): %s\n", strerror(r)); + } start = time(NULL); Modified: user/pho/stress2/misc/nfs15.sh ============================================================================== --- user/pho/stress2/misc/nfs15.sh Wed Jun 8 15:41:39 2016 (r301636) +++ user/pho/stress2/misc/nfs15.sh Wed Jun 8 16:03:04 2016 (r301637) @@ -118,7 +118,7 @@ t2(void *data __unused) err(1, "open(%s)", file); do { r = lockf(fd, F_LOCK, 0); - } while (r == -1 & errno == EDEADLK); + } while (r == -1 && errno == EDEADLK); if (r == -1) err(1, "lockf(%s, F_LOCK)", file); write(fd, "x", 1); Modified: user/pho/stress2/misc/nfs16.sh ============================================================================== --- user/pho/stress2/misc/nfs16.sh Wed Jun 8 15:41:39 2016 (r301636) +++ user/pho/stress2/misc/nfs16.sh Wed Jun 8 16:03:04 2016 (r301637) @@ -112,7 +112,7 @@ t2(void *data __unused) err(1, "open(%s)", file); do { r = lockf(fd, F_LOCK, 0); - } while (r == -1 & errno == EDEADLK); + } while (r == -1 && errno == EDEADLK); if (r == -1) err(1, "lockf(%s, F_LOCK)", file); write(fd, "x", 1);