Re: [PATCH] hptiop: HighPoint RocketRAID 3xxx controller driver



On Sun, 2006-06-11 at 19:18 +0800, HighPoint Linux Team wrote:
dprintk("hptiop_queuecmd : no free req\n");
- scp->result = DID_BUS_BUSY << 16;
+ scp->result = SCSI_MLQUEUE_HOST_BUSY;
goto cmd_done;

As jeff said, this needs to become a return SCSI_MLQUEUE_HOST_BUSY.

On Sunday 11 June 2006 05:07 pm, HighPoint Linux Team wrote:

host->can_queue = le32_to_cpu(iop_config.max_requests);
host->cmd_per_lun = le32_to_cpu(iop_config.max_requests);

You might want to think about adjusting this. For the single LUN case,
it's fine. For the multi-lun case it may allow commands to a single LUN
to starve everything else.

There will be no multi-lun support for the controller so this is not
an issue.

Sorry, a mistake. Multi-lun is supported.
Should host->can_queue be set to (cmd_per_lun * max_lun) ?

It depends on how the controller behaves. Setting can_queue and
cmd_per_lun tends to work for most SCSI controllers because the actual
scsi devices have queue depths << this number. If your controller will
behave like this (i.e. will not allow the internal queue for a single
lun to fill up to this depth) then you can keep this setting (although,
again, since this is probably fixed by the firmware, you want to set
cmd_per_lun to this value to avoid excessive QUEUE_FULL returns). If
the controller will happily load all the available slots up for a single
lun, then you might want to think about reducing cmd_per_lun to some
fraction of can_queue (you could even set it to can_queue - 2 like the
3ware controller).

Most of the other actual raid controllers seem to have much smaller
per-lun queues, so they mainly set smaller, fixed size values for
cmd_per_lun.

James


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Converting existing module/objects to threads
    ... The Queue module is threadsafe and it uses locking to ... that can only talk with one controller at a time. ... entire communication from configure to report, ... //based on configuration file, ...
    (comp.lang.python)
  • Re: Architecture to post and send messages to queues
    ... In my case I had a controller that accepted commands via a queue and processed them in order. ... The controller then returned the result to the requesting entity vai another queue. ... The Client would monitor its response queue waiting for its request to be completed. ...
    (comp.lang.labview)
  • APCUPSD and HID spam
    ... the control queue full messages. ... stop until apcupsd is stopped. ... 00:00.0 Host bridge: nVidia Corporation nForce2 AGP ... 00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet ...
    (Linux-Kernel)