Commit e4b26f3d authored by Tyrel Datwyler's avatar Tyrel Datwyler Committed by Martin K. Petersen

scsi: ibmvfc: Make command event pool queue specific

There is currently a single command event pool per host. In anticipation of
providing multiple queues add a per-queue event pool definition and
reimplement the existing CRQ to use its queue defined event pool for
command submission and completion.

Link: https://lore.kernel.org/r/20210106201835.1053593-3-tyreld@linux.ibm.comReviewed-by: default avatarBrian King <brking@linux.vnet.ibm.com>
Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.ibm.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent f8968665
This diff is collapsed.
...@@ -726,8 +726,9 @@ struct ibmvfc_target { ...@@ -726,8 +726,9 @@ struct ibmvfc_target {
/* a unit of work for the hosting partition */ /* a unit of work for the hosting partition */
struct ibmvfc_event { struct ibmvfc_event {
struct list_head queue; struct list_head queue_list;
struct ibmvfc_host *vhost; struct ibmvfc_host *vhost;
struct ibmvfc_queue *queue;
struct ibmvfc_target *tgt; struct ibmvfc_target *tgt;
struct scsi_cmnd *cmnd; struct scsi_cmnd *cmnd;
atomic_t free; atomic_t free;
...@@ -767,6 +768,10 @@ struct ibmvfc_queue { ...@@ -767,6 +768,10 @@ struct ibmvfc_queue {
dma_addr_t msg_token; dma_addr_t msg_token;
enum ibmvfc_msg_fmt fmt; enum ibmvfc_msg_fmt fmt;
int size, cur; int size, cur;
struct ibmvfc_event_pool evt_pool;
struct list_head sent;
struct list_head free;
}; };
enum ibmvfc_host_action { enum ibmvfc_host_action {
...@@ -808,10 +813,7 @@ struct ibmvfc_host { ...@@ -808,10 +813,7 @@ struct ibmvfc_host {
u32 trace_index:IBMVFC_NUM_TRACE_INDEX_BITS; u32 trace_index:IBMVFC_NUM_TRACE_INDEX_BITS;
int num_targets; int num_targets;
struct list_head targets; struct list_head targets;
struct list_head sent;
struct list_head free;
struct device *dev; struct device *dev;
struct ibmvfc_event_pool pool;
struct dma_pool *sg_pool; struct dma_pool *sg_pool;
mempool_t *tgt_pool; mempool_t *tgt_pool;
struct ibmvfc_queue crq; struct ibmvfc_queue crq;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment