I was able to do this:
dd if=/dev/sda of=/dev/null bs=1024k count=1024
running ten concurrent invocations, staggered so they didn't all just
read from each other's buffers, for over 40 minutes without triggering a
reinitialization of my SCSI card.
However, if I did this:
dd if=/dev/zero of=foo bs=1024k count=128
it took only about three sequential invocations before I triggered the
SCSI card reinitialization.
So it looks like there's something wrong with my system in terms of
doing DMA reads, or in CPU-centric terms, device writes through DMA
devices.
What I'm really interested in is if there is any way to kludge around
this problem.