diff options
author | Christoph Hellwig <hch@infradead.org> | 2014-02-20 23:21:01 +0100 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-27 16:26:33 +0100 |
commit | 89d9a567952baec13e26ada3e438f1b642d66b6e (patch) | |
tree | f6217370ee634dc3fa08228a0aa1073265aa13b7 /include/scsi/scsi_host.h | |
parent | [SCSI] simplify command allocation and freeing a bit (diff) | |
download | linux-89d9a567952baec13e26ada3e438f1b642d66b6e.tar.xz linux-89d9a567952baec13e26ada3e438f1b642d66b6e.zip |
[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/scsi_host.h')
-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 53075e5039e6..94844fc77b97 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; }; /* |