Re: Problem with aacraid driver in 2.5.63-bk-latest

Mark Haverkamp
2003-03-12T23:06:21Z

On Fri, 2003-02-28 at 05:30, Christoffer Hall-Frederiksen wrote:
> I have a dell poweredge 1650 with a perc3/DI controller. When the
> AACRAID driver loads it stops with the following lines:
>
> AAC0: kernel 2.7.4 build 3170
> AAC0: monitor 2.7.4 build 3170
> AAC0: bios 2.7.0 build 3170
> AAC0: serial 0b9c810d3
> scsi0 : percraid
>

We just ran into this too at osdl. I have something that gets the
driver to load, but I'm not sure what the right thing is to do.

The cmd_per_lun element of the driver_template is set to
AAC_NUM_IO_FIB. This is 512.

During probe, scsi_alloc_sdev is called. It calls
scsi_adjust_queue_depth with the cmd_per_lun value.
scsi_adjust_queue_depth returns without doing anything if the tags value
is greater than 256. This leaves the Scsi_Device queue_depth at zero.
Later when an I/O is queued, scsi_request_fn checks for device_busy >=
queue_depth. If so, the function does a break and exits. This is where
it hangs.

To get things to load I set cmd_per_lun to 256. I don't know if the is
the correct way to deal with the problem. Maybe someone else can say
something about that.

===== drivers/scsi/aacraid/linit.c 1.12 vs edited =====
--- 1.12/drivers/scsi/aacraid/linit.c Mon Feb 24 13:03:30 2003
+++ edited/drivers/scsi/aacraid/linit.c Wed Mar 12 14:32:18 2003
@@ -693,7 +693,7 @@
this_id: 16,
sg_tablesize: 16,
max_sectors: 128,
- cmd_per_lun: AAC_NUM_IO_FIB,
+ cmd_per_lun: 256,
eh_abort_handler: aac_eh_abort,
eh_device_reset_handler:aac_eh_device_reset,
eh_bus_reset_handler: aac_eh_bus_reset,

--
Mark Haverkamp <markh@osdl.org>