Displaying 4 results from an estimated 4 matches for "hpsa_scsi_host_alloc".
2020 Mar 10
2
[PATCH RFC v2 01/24] scsi: add 'nr_reserved_cmds' field to the SCSI host template
On Wed, Mar 11, 2020 at 12:25:27AM +0800, John Garry wrote:
> From: Hannes Reinecke <hare at suse.com>
>
> Add a new field 'nr_reserved_cmds' to the SCSI host template to
> instruct the block layer to set aside a tag space for reserved
> commands.
>
> Signed-off-by: Hannes Reinecke <hare at suse.com>
> ---
> drivers/scsi/scsi_lib.c | 1 +
>
2020 Mar 10
2
[PATCH RFC v2 01/24] scsi: add 'nr_reserved_cmds' field to the SCSI host template
On Wed, Mar 11, 2020 at 12:25:27AM +0800, John Garry wrote:
> From: Hannes Reinecke <hare at suse.com>
>
> Add a new field 'nr_reserved_cmds' to the SCSI host template to
> instruct the block layer to set aside a tag space for reserved
> commands.
>
> Signed-off-by: Hannes Reinecke <hare at suse.com>
> ---
> drivers/scsi/scsi_lib.c | 1 +
>
2020 Mar 11
0
[PATCH RFC v2 12/24] hpsa: use reserved commands
...ErrDesc.Addr = cpu_to_le64((u64) err_dma_handle);
> c->ErrDesc.Len = cpu_to_le32((u32) sizeof(*c->err_info));
> c->h = h;
> - c->scsi_cmd = SCSI_CMD_IDLE;
> }
>
> static void hpsa_preinitialize_commands(struct ctlr_info *h)
> @@ -5803,6 +5803,7 @@ static int hpsa_scsi_host_alloc(struct ctlr_info *h)
> sh->max_lun = HPSA_MAX_LUN;
> sh->max_id = HPSA_MAX_LUN;
> sh->can_queue = h->nr_cmds - HPSA_NRESERVED_CMDS;
> + sh->nr_reserved_cmds = HPSA_NRESERVED_CMDS;
Now .nr_reserved_cmds has been passed to blk-mq, you need to increase
sh->can_queu...
2020 Mar 11
0
[PATCH RFC v2 01/24] scsi: add 'nr_reserved_cmds' field to the SCSI host template
...ands
internally, which typically use the same hardware tag pool (ie they are
being allocated from the same hardware resources) than the 'normal' I/O
commands.
But as they are using the same tagpool these drivers already decrement
the available number of commands; check eg. hpsa:
static int hpsa_scsi_host_alloc(struct ctlr_info *h)
{
struct Scsi_Host *sh;
sh = scsi_host_alloc(&hpsa_driver_template, sizeof(h));
if (sh == NULL) {
dev_err(&h->pdev->dev, "scsi_host_alloc failed\n");
return -ENOMEM;
}
sh->io_port = 0;
sh->n_io_port = 0;
sh->this_id = -1;
sh->ma...