iscsi-target: Convert iscsi_session statistics to atomic_long_t

This patch converts a handful of iscsi_session statistics to type
atomic_long_t, instead of using iscsi_session->session_stats_lock
when incrementing these values.

More importantly, go ahead and drop the spinlock usage within
iscsit_setup_scsi_cmd(), iscsit_check_dataout_hdr(),
iscsit_send_datain(), and iscsit_build_rsp_pdu() fast-path code.

(Squash in Roland's  target: Remove write-only stats fields and lock
from struct se_node_acl)

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
Nicholas Bellinger
2013-11-13 18:54:45 -08:00
parent ee480683d9
commit 04f3b31bff
6 changed files with 25 additions and 50 deletions

View File

@@ -651,14 +651,13 @@ struct iscsi_session {
/* Used for session reference counting */
int session_usage_count;
int session_waiting_on_uc;
u32 cmd_pdus;
u32 rsp_pdus;
u64 tx_data_octets;
u64 rx_data_octets;
u32 conn_digest_errors;
u32 conn_timeout_errors;
atomic_long_t cmd_pdus;
atomic_long_t rsp_pdus;
atomic_long_t tx_data_octets;
atomic_long_t rx_data_octets;
atomic_long_t conn_digest_errors;
atomic_long_t conn_timeout_errors;
u64 creation_time;
spinlock_t session_stats_lock;
/* Number of active connections */
atomic_t nconn;
atomic_t session_continuation;