On Tue, 2013-11-19 at 10:12 -0800, Roland Dreier wrote: > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > > The only fabric driver that touches these counters is iscsi, and the > core has no way to report or otherwise use the values, so we should just > get rid of them. > > Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx> Hi Roland, So I've already applied the following patch to drop the locks for statistics, and use atomic_long_t for this particular items here: iscsi-target: Convert iscsi_session statistics to atomic_long_t https://git.kernel.org/cgit/linux/kernel/git/nab/target-pending.git/commit/?h=for-next&id=3e07395441c8b44e661572d33d3f06d249b48fb2 Also FYI, these particular values are exposed via drivers/target/target_core_stat.c, and not directly by iscsi_target_stat.c code. --nab > --- > drivers/target/iscsi/iscsi_target.c | 15 --------------- > drivers/target/target_core_tpg.c | 2 -- > include/target/target_core_base.h | 4 ---- > 3 files changed, 21 deletions(-) > > diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c > index 38e44b9abf0f..6ecd5479a1cc 100644 > --- a/drivers/target/iscsi/iscsi_target.c > +++ b/drivers/target/iscsi/iscsi_target.c > @@ -807,11 +807,6 @@ int iscsit_setup_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, > > spin_lock_bh(&conn->sess->session_stats_lock); > conn->sess->cmd_pdus++; > - if (conn->sess->se_sess->se_node_acl) { > - spin_lock(&conn->sess->se_sess->se_node_acl->stats_lock); > - conn->sess->se_sess->se_node_acl->num_cmds++; > - spin_unlock(&conn->sess->se_sess->se_node_acl->stats_lock); > - } > spin_unlock_bh(&conn->sess->session_stats_lock); > > hdr = (struct iscsi_scsi_req *) buf; > @@ -1262,11 +1257,6 @@ iscsit_check_dataout_hdr(struct iscsi_conn *conn, unsigned char *buf, > /* iSCSI write */ > spin_lock_bh(&conn->sess->session_stats_lock); > conn->sess->rx_data_octets += payload_length; > - if (conn->sess->se_sess->se_node_acl) { > - spin_lock(&conn->sess->se_sess->se_node_acl->stats_lock); > - conn->sess->se_sess->se_node_acl->write_bytes += payload_length; > - spin_unlock(&conn->sess->se_sess->se_node_acl->stats_lock); > - } > spin_unlock_bh(&conn->sess->session_stats_lock); > > if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) { > @@ -2632,11 +2622,6 @@ static int iscsit_send_datain(struct iscsi_cmd *cmd, struct iscsi_conn *conn) > > spin_lock_bh(&conn->sess->session_stats_lock); > conn->sess->tx_data_octets += datain.length; > - if (conn->sess->se_sess->se_node_acl) { > - spin_lock(&conn->sess->se_sess->se_node_acl->stats_lock); > - conn->sess->se_sess->se_node_acl->read_bytes += datain.length; > - spin_unlock(&conn->sess->se_sess->se_node_acl->stats_lock); > - } > spin_unlock_bh(&conn->sess->session_stats_lock); > /* > * Special case for successfully execution w/ both DATAIN > diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c > index b9a6ec0aa5fe..ad653306b4ca 100644 > --- a/drivers/target/target_core_tpg.c > +++ b/drivers/target/target_core_tpg.c > @@ -277,7 +277,6 @@ struct se_node_acl *core_tpg_check_initiator_node_acl( > snprintf(acl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname); > acl->se_tpg = tpg; > acl->acl_index = scsi_get_new_index(SCSI_AUTH_INTR_INDEX); > - spin_lock_init(&acl->stats_lock); > acl->dynamic_node_acl = 1; > > tpg->se_tpg_tfo->set_default_node_attributes(acl); > @@ -405,7 +404,6 @@ struct se_node_acl *core_tpg_add_initiator_node_acl( > snprintf(acl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname); > acl->se_tpg = tpg; > acl->acl_index = scsi_get_new_index(SCSI_AUTH_INTR_INDEX); > - spin_lock_init(&acl->stats_lock); > > tpg->se_tpg_tfo->set_default_node_attributes(acl); > > diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h > index 5bdb8b7d2a69..75db43774478 100644 > --- a/include/target/target_core_base.h > +++ b/include/target/target_core_base.h > @@ -517,10 +517,6 @@ struct se_node_acl { > u32 acl_index; > #define MAX_ACL_TAG_SIZE 64 > char acl_tag[MAX_ACL_TAG_SIZE]; > - u64 num_cmds; > - u64 read_bytes; > - u64 write_bytes; > - spinlock_t stats_lock; > /* Used for PR SPEC_I_PT=1 and REGISTER_AND_MOVE */ > atomic_t acl_pr_ref_count; > struct se_dev_entry **device_list; -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html