diff options
author | Christoph Hellwig <hch@infradead.org> | 2014-02-20 14:21:01 -0800 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-27 08:26:33 -0700 |
commit | 89d9a567952baec13e26ada3e438f1b642d66b6e (patch) | |
tree | f6217370ee634dc3fa08228a0aa1073265aa13b7 /include/scsi | |
parent | 7c283341225d0ebeb7480a9e6560f599dcd0f417 (diff) | |
download | op-kernel-dev-89d9a567952baec13e26ada3e438f1b642d66b6e.zip op-kernel-dev-89d9a567952baec13e26ada3e438f1b642d66b6e.tar.gz |
[SCSI] add support for per-host cmd pools
This allows drivers to specify the size of their per-command private
data in the host template and then get extra memory allocated for
each command instead of needing another allocation in ->queuecommand.
With the current SCSI code that already does multiple allocations for
each command this probably doesn't make a big performance impact, but
it allows to clean up the drivers, and prepare them for using the
blk-mq infrastructure where the common allocation will make a difference.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_host.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 53075e5..94844fc 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -15,6 +15,7 @@ struct completion; struct module; struct scsi_cmnd; struct scsi_device; +struct scsi_host_cmd_pool; struct scsi_target; struct Scsi_Host; struct scsi_host_cmd_pool; @@ -524,6 +525,12 @@ struct scsi_host_template { * scsi_netlink.h */ u64 vendor_id; + + /* + * Additional per-command data allocated for the driver. + */ + unsigned int cmd_size; + struct scsi_host_cmd_pool *cmd_pool; }; /* |