Messages in this thread | | | Date | Thu, 13 Feb 2003 14:29:58 -0800 | From | Patrick Mansfield <> | Subject | Re: 2.5.60 and current bk oops in file_ra_state_init |
| |
On Thu, Feb 13, 2003 at 01:13:44PM -0800, Andrew Morton wrote: > Was this test frequently opening and closing device nodes, or does it just > open them once and hold them?
Opens once only.
> Can you please prepare a testcase which I can use to reproduce this?
I have only been able to reproduce it on the qla2300 running the latest qla2300 driver. So maybe it is a qla only problem (blah).
As per previous oops reports by wli and Martin, running with the qlogicisp driver on the isp1020 gives an oops in isp1020_intr_handler :(
I'm rebooting again.
I was running this program, simultaneously one per drive up to 25, so I should have only one IO outstanding per disk (added the O_DIRECT):
#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h>
int main (int argc, char **argv) { int fd; int loop_cnt; char *dev_name; int block_size = 512; char buff[4096], *bufp; int res;
dev_name = argv[1]; loop_cnt = atoi(argv[2]); fprintf(stderr, "Re-reading device %s with %d iterations\n", dev_name, loop_cnt); fd = open (dev_name, O_RDONLY | O_DIRECT); if (fd == -1) { perror("open"); exit(1); }
/* memset(buff, 'x', block_size); */ bufp = (char*) ((int)(buff + 4096) & 0xfffff000); fprintf(stderr, "bufp is 0x%x; buff is 0x%x\n", bufp, buff); while (loop_cnt-- > 0) { #ifdef NOTNOW #endif res = read(fd, bufp, block_size); if (res != block_size) { fprintf(stderr, "Read only %d bytes of %d, cnt %d\n", res, block_size, loop_cnt); exit(1); } res = lseek(fd, 0, SEEK_SET); if (res == -1) { perror("lseek"); exit(1); } }
close(fd); }
-- Patrick Mansfield - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |