svn commit: r312283 - user/pho/stress2/misc
Peter Holm
pho at FreeBSD.org
Mon Jan 16 11:40:55 UTC 2017
Author: pho
Date: Mon Jan 16 11:40:53 2017
New Revision: 312283
URL: https://svnweb.freebsd.org/changeset/base/312283
Log:
Trim runtime. Cleanup script and code while here.
Sponsored by: Dell EMC Isilon
Modified:
user/pho/stress2/misc/kinfo.sh
user/pho/stress2/misc/kinfo2.sh
user/pho/stress2/misc/kinfo3.sh
Modified: user/pho/stress2/misc/kinfo.sh
==============================================================================
--- user/pho/stress2/misc/kinfo.sh Mon Jan 16 11:04:36 2017 (r312282)
+++ user/pho/stress2/misc/kinfo.sh Mon Jan 16 11:40:53 2017 (r312283)
@@ -41,7 +41,7 @@ mycc -o kinfo -Wall kinfo.c -lutil || ex
rm -f kinfo.c
mount | grep -q procfs || mount -t procfs procfs /proc
-for i in `jot 30`; do
+for i in `jot 20`; do
for j in `jot 5`; do
/tmp/kinfo &
done
Modified: user/pho/stress2/misc/kinfo2.sh
==============================================================================
--- user/pho/stress2/misc/kinfo2.sh Mon Jan 16 11:04:36 2017 (r312282)
+++ user/pho/stress2/misc/kinfo2.sh Mon Jan 16 11:40:53 2017 (r312283)
@@ -41,7 +41,7 @@ mycc -o kinfo2 -Wall -Wextra kinfo2.c -l
rm -f kinfo2.c
mount | grep -q procfs || mount -t procfs procfs /proc
-for i in `jot 30`; do
+for i in `jot 20`; do
for j in `jot 5`; do
/tmp/kinfo2 &
done
Modified: user/pho/stress2/misc/kinfo3.sh
==============================================================================
--- user/pho/stress2/misc/kinfo3.sh Mon Jan 16 11:04:36 2017 (r312282)
+++ user/pho/stress2/misc/kinfo3.sh Mon Jan 16 11:40:53 2017 (r312283)
@@ -37,52 +37,58 @@
odir=`pwd`
cd /tmp
sed '1,/^EOF/d' < $odir/$0 > kinfo3.c
-mycc -o kinfo3 -Wall kinfo3.c -lutil -pthread
+mycc -o kinfo3 -Wall -Wextra kinfo3.c -lutil -pthread || exit 1
rm -f kinfo3.c
+s=0
mount | grep -q procfs || mount -t procfs procfs /proc
-for i in `jot 30`; do
- for j in `jot 5`; do
+start=`date '+%s'`
+while [ $((`date '+%s'` - start)) -lt 1200 ]; do
+ pids=""
+ for i in `jot 5`; do
/tmp/kinfo3 &
+ pids="$pids $!"
done
-
- for j in `jot 5`; do
- wait
+ for pid in $pids; do
+ wait $pid
+ [ $? -ne 0 ] && s=1
done
done
rm -f /tmp/kinfo3
-exit
+exit $s
EOF
#include <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
+#include <sys/signal.h>
#include <sys/sysctl.h>
-#include <sys/param.h>
#include <sys/user.h>
-#include <sys/signal.h>
-#include <fcntl.h>
-#include <err.h>
-#include <strings.h>
-#include <string.h>
#include <sys/wait.h>
+
+#include <err.h>
+#include <fcntl.h>
#include <libutil.h>
#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <unistd.h>
-char buf[8096];
+static char buf[8096];
static volatile sig_atomic_t more;
-void
-handler(int i) {
+static void
+handler(int i __unused) {
+
more = 0;
}
-void *
-thr(void *arg)
+static void *
+thr(void *arg __unused)
{
int fd;
+
if ((fd = open("/proc/curproc/mem", O_RDONLY)) == -1)
err(1, "open(/proc/curproc/mem)");
close(fd);
@@ -91,13 +97,11 @@ thr(void *arg)
/* Stir /dev/proc */
-int
+static int
churning(void) {
- int i;
pid_t r;
- int status;
pthread_t threads[5];
-
+ int i, status;;
while(more) {
r = fork();
@@ -112,7 +116,7 @@ churning(void) {
}
bzero(buf, sizeof(buf));
- exit(0);
+ _exit(0);
}
if (r < 0) {
perror("fork");
@@ -120,19 +124,19 @@ churning(void) {
}
wait(&status);
}
- exit(0);
+ _exit(0);
}
/* Get files for each proc */
-void
+static void
list(void)
{
- struct kinfo_file *freep, *kif;
+ struct kinfo_proc *kipp;
struct kinfo_vmentry *freep_vm;
+ struct kinfo_file *freep, *kif;
+ size_t len;
long i, j;
int cnt, name[4];
- struct kinfo_proc *kipp;
- size_t len;
name[0] = CTL_KERN;
name[1] = KERN_PROC;
@@ -152,7 +156,7 @@ list(void)
return;
}
- for (i = 0; i < len / sizeof(*kipp); i++) {
+ for (i = 0; i < (long)(len / sizeof(*kipp)); i++) {
/* The test starts here */
freep = kinfo_getfile(kipp[i].ki_pid, &cnt);
@@ -170,9 +174,10 @@ list(void)
}
int
-main(int argc, char **argv)
+main(void)
{
pid_t r;
+
signal(SIGALRM, handler);
alarm(30);
More information about the svn-src-user
mailing list