mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-19 11:41:26 +00:00
iser: Make struct iscsit_transport a little bit more CPU cache friendly by combining fast path callbacks in a single cache line.
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5245 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -24,12 +24,21 @@ enum iscsit_transport_type {
|
||||
struct iscsit_transport {
|
||||
struct iscsi_cmnd* (*iscsit_alloc_cmd)(struct iscsi_conn *conn,
|
||||
struct iscsi_cmnd *parent);
|
||||
void (*iscsit_free_cmd)(struct iscsi_cmnd *cmnd);
|
||||
void (*iscsit_preprocessing_done)(struct iscsi_cmnd *cmnd);
|
||||
void (*iscsit_send_data_rsp)(struct iscsi_cmnd *req, u8 *sense,
|
||||
int sense_len, u8 status,
|
||||
int send_status);
|
||||
int (*iscsit_send_locally)(struct iscsi_cmnd *cmnd,
|
||||
unsigned int cmd_count);
|
||||
void (*iscsit_set_sense_data)(struct iscsi_cmnd *rsp,
|
||||
const u8 *sense_buf, int sense_len);
|
||||
int (*iscsit_receive_cmnd_data)(struct iscsi_cmnd *cmnd);
|
||||
void (*iscsit_make_conn_wr_active)(struct iscsi_conn *conn);
|
||||
void (*iscsit_free_cmd)(struct iscsi_cmnd *cmnd);
|
||||
|
||||
void (*iscsit_set_req_data)(struct iscsi_cmnd *req,
|
||||
struct iscsi_cmnd *rsp);
|
||||
|
||||
int (*iscsit_conn_alloc)(struct iscsi_session *session,
|
||||
struct iscsi_kern_conn_info *info,
|
||||
struct iscsi_conn **new_conn,
|
||||
@@ -38,15 +47,10 @@ struct iscsit_transport {
|
||||
void (*iscsit_conn_free)(struct iscsi_conn *conn);
|
||||
void (*iscsit_conn_close)(struct iscsi_conn *conn, int flags);
|
||||
void (*iscsit_mark_conn_closed)(struct iscsi_conn *conn, int flags);
|
||||
|
||||
ssize_t (*iscsit_get_initiator_ip)(struct iscsi_conn *conn, char *buf,
|
||||
int size);
|
||||
int (*iscsit_send_locally)(struct iscsi_cmnd *cmnd,
|
||||
unsigned int cmd_count);
|
||||
void (*iscsit_set_sense_data)(struct iscsi_cmnd *rsp,
|
||||
const u8 *sense_buf, int sense_len);
|
||||
void (*iscsit_set_req_data)(struct iscsi_cmnd *req,
|
||||
struct iscsi_cmnd *rsp);
|
||||
int (*iscsit_receive_cmnd_data)(struct iscsi_cmnd *cmnd);
|
||||
|
||||
void (*iscsit_close_all_portals)(void);
|
||||
|
||||
#if !defined(CONFIG_TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION)
|
||||
@@ -57,7 +61,7 @@ struct iscsit_transport {
|
||||
const char name[SCST_MAX_NAME];
|
||||
enum iscsit_transport_type transport_type;
|
||||
struct list_head transport_list_entry;
|
||||
};
|
||||
} ____cacheline_aligned;
|
||||
|
||||
extern int iscsit_register_transport(struct iscsit_transport *t);
|
||||
extern void iscsit_unregister_transport(struct iscsit_transport *t);
|
||||
|
||||
Reference in New Issue
Block a user