After a bunch of frustrating debugging, I've tenatively come to the conclusion that the isp(4) driver is not 64 bit safe --- at the very least insofar as the amd64 platform is concerned.
The test setup was a quad opteron 248 system connected via two isp 2340 cards to switches which interconnect to an EMC^2 disk array. I've made a couple of interim posts on this subject. The message from scsi_da.c indicates the correct probe is received from the disk. In the test, it was a 131 gig disk of 512 byte sectors. However, by the time we get to cam_calc_geometry() in cam.c, the structure is corrupt --- containing bad values for both volume_size and sector_size. The data is bogus enough at this point, that it can't be repaired ... and I gave up on the "quick fix" effort. Origionally, it manifested as a divide by zero error (the block size was so huge, it brought the denominator in the first few lines to zero). But both the block_size and the volume_size are bogus making efforts by geom to taste the last sector fail. The isp driver is quite complex. I havn't encountered much of the SCSI or CAM stack before. It would seem a brief overview of where things go from the momment when scsi_da prints out the correct size to the point at which cam_calc_geometry() receives corrupt data would help greately. Our hardware vendor is going to try to obtain test hardware for the LSI logic HBA and an Adaptec HBA --- so we can test them. The test machine remains somewhat available, but it looks like the production machines will be linux (unless I can solve this problem this week). Dave. -- ============================================================================ |David Gilbert, Independent Contractor. | Two things can only be | |Mail: [EMAIL PROTECTED] | equal if and only if they | |http://daveg.ca | are precisely opposite. | =========================================================GLO================ _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"