When using an SMP kernel and the new adaptec driver the kernel hangs within a few disk accesses. The old aic7xxx driver works. I'm using the gentoo-sources 2.4.20-gentoo-r8 Reproducible: Always Steps to Reproduce: 1. Build a kernel with SMP & the new adaptec driver and boot it 2. access the scsi disks 3.
Okay, what controller chip are we talking about? I use a dual Pentium Pro 200MHz, an NCR WorldMark, with two Adaptec 7880U controllers on it's mainboard. Works like a charm. (Aside from a few PCI warnings during boot, but that's not SCSI-related). Does your disk/controller combination work flawlessly in a different kernel version, if so, which one?
It's an Intel 440GX Server Motherboard with two 7880 chips on the motherboard. I'm using the 2.4.20-gentoo-r8 sources, and if I either compile a uni-proc kernel using the new aic7xxx driver it works, or an smp kernel with the old aic7xxx driver it works, but not an smp kernel with the new aic7xxx driver. I'm using the same sources (i.e. kernel version) for all tests. I'm using dual PIII 550MHz Katmai's
What do you mean by the 'old' aic7xxxx driver?
When you do a make menuconfig or genkernel --config, goto the SCSI drivers. By default the new AIC7XXX driver is built. If you turn that off, a new option will appear allowing you to build the CONFIG_SCSI_AIC7XXX_OLD=y. To add furthur, look at linux/drivers/scsi/Config.in and you'll see this code... source drivers/scsi/aic7xxx/Config.in if [ "$CONFIG_SCSI_AIC7XXX" != "y" ]; then dep_tristate 'Old Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX_OLD $CONFIG_SCSI ... ... fi So you can see by default the new AIC7XXX driver is built from linux/drivers/scsi/aic7xxx/ otherwise the files linux/drivers/scsi/aic7xxx_old.c is used.
I just emerged gentoo-sources 2.4.22-gentoo-r1 and it works now. There's something in the changelog for the aic7xxx driver which suggests a locking regressions cause the problem, and fixed in version 6.2.34 of the driver.