Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 May 2005 17:58:29 -0500
From:      Stephen Montgomery-Smith <stephen@math.missouri.edu>
To:        freebsd-stable@freebsd.org
Subject:   Reproducable panic with RELENG_5
Message-ID:  <42965495.1060001@math.missouri.edu>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------000001010409030806050300
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

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.


--------------000001010409030806050300
Content-Type: text/plain;
 name="ddd.shar"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ddd.shar"

# 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


--------------000001010409030806050300--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42965495.1060001>