Reproducable panic with RELENG_5
Stephen Montgomery-Smith
stephen at math.missouri.edu
Thu May 26 15:58:31 PDT 2005
I have now found a way to reliably reproduce the panic on FreeBSD
RELENG_5 (as of about May 21 2005). I enclose as an attachment the
program that does the dirty deed. It needs the math/fftw3 port with the
SMP stuff enabled. After starting the program ddd, run "top -s0" - you
have to do this as root, otherwise the -s0 option will not be accepted.
At this point, my HTT enabled dual Xeon system with
machdep.hyperthreading_allowed=1 panics after less than a minute.
Sometimes it dumps, and sometimes it doesn't.
I would be curious if other people can get there similar systems to panic.
I have made some attempts to create programs that produce this effect
without using fftw3, but I have not succeeded.
-------------- next part --------------
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# ddd
# ddd/ddd.c
# ddd/wisdom.out
# ddd/Makefile
# ddd/README
#
echo c - ddd
mkdir -p ddd > /dev/null 2>&1
echo x - ddd/ddd.c
sed 's/^X//' >ddd/ddd.c << 'END-of-ddd/ddd.c'
X#include <stdio.h>
X#include <stdlib.h>
X#include <string.h>
X#include <complex.h>
X#include <fftw3.h>
X#include <math.h>
X#include <fcntl.h>
X#include <sys/types.h>
X#include <sys/uio.h>
X#include <unistd.h>
X#include <signal.h>
X
X#define D (1<<13)
X
Xfftw_plan p;
Xdouble *fft_in;
Xcomplex *fft_out;
X
Xint main() {
X FILE *wisdom_out;
X int dim[1] = {D};
X int i;
X
X fftw_init_threads();
X fftw_plan_with_nthreads(4);
X
X if ((wisdom_out = fopen("wisdom.out","r"))==NULL) {
X perror("Cannot open wisdom.out");
X exit(1);
X }
X
X fftw_import_wisdom_from_file(wisdom_out);
X fclose(wisdom_out);
X
X fft_in = fftw_malloc(sizeof(double)*D*5);
X fft_out = fftw_malloc(sizeof(complex)*(D/2+1)*5);
X
X p = fftw_plan_many_dft_r2c(1,dim,5,fft_in,NULL,1,D,fft_out,NULL,1,D/2+1,FFTW_EXHAUSTIVE);
X
X while (1) {
X memset(fft_in,0,sizeof(double)*D*5);
X for (i=0;i<D*5;i++) fft_in[i] = i; /*junk data*/
X fftw_execute(p);
X }
X}
END-of-ddd/ddd.c
echo x - ddd/wisdom.out
sed 's/^X//' >ddd/wisdom.out << 'END-of-ddd/wisdom.out'
X(fftw-3.0.1 fftw_wisdom
X (fftw_rdft2_radix2_register 0 #xc040 #xf7bda7be #x12056b7a #x59fc8404 #xbb7cea09)
X (fftw_rdft2_thr_vrank_geq1_register 0 #xc040 #xc29d2dfe #x445a408b #xf34f1e77 #xbfe59da9)
X (fftw_codelet_n1_16 0 #xc040 #x3d877fef #x12b9a2eb #x702a3084 #x115fe742)
X (fftw_codelet_n1_16 0 #xc040 #xde3e9b75 #xa9c89431 #x48d5d383 #x9ad2d071)
X (fftw_rdft2_thr_vrank_geq1_register 0 #xc040 #x5e2fbbb5 #xb8e5d15e #xbe183237 #x98def706)
X (fftw_codelet_t1_16 0 #xc040 #xead00db9 #x84525223 #xde0c1ade #x3fd0a83a)
X (fftw_rdft2_radix2_register 0 #xc040 #x6cca79b0 #x7b35f7a6 #x740ec972 #x5e145ea5)
X (fftw_dft_vrank_geq1_register 1 #xc040 #x5aa4f029 #xeb0b8e7e #xecb5d7d8 #xd8168da4)
X (fftw_codelet_t1_16 0 #xc040 #xae874ae5 #xa35569bf #x1374173a #xc28a6c6a)
X (fftw_codelet_t1_16 0 #xc040 #xdd5bb17a #xb51edc5d #x27305acf #x2c8658de)
X (fftw_codelet_t1_16 0 #xc040 #xcdc6362e #x0d594e65 #x826d28fd #xe2a20fbd)
X (fftw_dft_vrank_geq1_register 1 #xc040 #x1afeea22 #xf0f5939d #x0d01c4e1 #x0a3e416e)
X (fftw_rdft2_radix2_register 2 #xc040 #x4ca79471 #xfe5b9d2b #xaf3cc798 #x1c835346)
X (fftw_codelet_t1_16 0 #xc040 #x6c8cc00e #x72a117ce #x61682263 #x44776160)
X (fftw_codelet_n1_16 0 #xc040 #x75704e1e #x59732e31 #x714c2cb0 #x88f3c387)
X (fftw_dft_vrank_geq1_register 1 #xc040 #xbed4f14c #xb8a29440 #xf8a07c9e #x08852bad)
X (fftw_rdft2_thr_vrank_geq1_register 0 #xc040 #x72cb8c46 #x4f30ceab #x046f523c #xd3256c49)
X (fftw_codelet_t1_16 0 #xc040 #xb7c20184 #xa7b75389 #xc1762caf #xbb7b0e88)
X )
END-of-ddd/wisdom.out
echo x - ddd/Makefile
sed 's/^X//' >ddd/Makefile << 'END-of-ddd/Makefile'
X#CC=cc -funroll-loops -O3 -fomit-frame-pointer -ffast-math \
XCC=cc -I/usr/local/include \
X -I/usr/X11R6/include \
X -L/usr/local/lib \
X -L/usr/X11R6/lib
X
XLIBRARIES= -lfftw3_threads -lfftw3 -lm -pthread
X
Xall: ddd
X
Xddd: ddd.c
X ${CC} -o ddd ddd.c ${LIBRARIES}
X
Xclean:
X rm -f ddd core *.core
END-of-ddd/Makefile
echo x - ddd/README
sed 's/^X//' >ddd/README << 'END-of-ddd/README'
XThis program will bring down FreeBSD RELENG_5 on my dual Xeon with
XHHT enabled (including machdep.hyperthreading_allowed=1).
X
XInstall the math/fftw3 port with SMP_THREADS_ENABLED set in the options.
X
XAfter make, run the program:
X./ddd &
XIt is important that you run the program from within the directory that
Xcontains the file wisdom.out.
X
XThen run the command
Xtop -s0
XThis last command has to be run as root, although if you merely run top,
Xyou will get the same effect, only you have to wait much longer.
X
XAfter a very short time, your system should panic.
X
END-of-ddd/README
exit
More information about the freebsd-stable
mailing list