diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-11-13 21:54:45 -0500 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-11-20 00:38:52 -0500 |
commit | 04f3b31bff720f01d684100c868c88f67ced8dc8 (patch) | |
tree | d9b5fac82a5e6c23b98f33c64901affa37bbfd67 /drivers/target/iscsi/iscsi_target_stat.c | |
parent | ee480683d975973e3ff679850871e00e011c4a96 (diff) |
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>
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_stat.c')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_stat.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/target/iscsi/iscsi_target_stat.c b/drivers/target/iscsi/iscsi_target_stat.c index f788e8b5e855..103395510307 100644 --- a/drivers/target/iscsi/iscsi_target_stat.c +++ b/drivers/target/iscsi/iscsi_target_stat.c | |||
@@ -792,7 +792,8 @@ static ssize_t iscsi_stat_sess_show_attr_cmd_pdus( | |||
792 | if (se_sess) { | 792 | if (se_sess) { |
793 | sess = se_sess->fabric_sess_ptr; | 793 | sess = se_sess->fabric_sess_ptr; |
794 | if (sess) | 794 | if (sess) |
795 | ret = snprintf(page, PAGE_SIZE, "%u\n", sess->cmd_pdus); | 795 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
796 | atomic_long_read(&sess->cmd_pdus)); | ||
796 | } | 797 | } |
797 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 798 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
798 | 799 | ||
@@ -815,7 +816,8 @@ static ssize_t iscsi_stat_sess_show_attr_rsp_pdus( | |||
815 | if (se_sess) { | 816 | if (se_sess) { |
816 | sess = se_sess->fabric_sess_ptr; | 817 | sess = se_sess->fabric_sess_ptr; |
817 | if (sess) | 818 | if (sess) |
818 | ret = snprintf(page, PAGE_SIZE, "%u\n", sess->rsp_pdus); | 819 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
820 | atomic_long_read(&sess->rsp_pdus)); | ||
819 | } | 821 | } |
820 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 822 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
821 | 823 | ||
@@ -838,8 +840,8 @@ static ssize_t iscsi_stat_sess_show_attr_txdata_octs( | |||
838 | if (se_sess) { | 840 | if (se_sess) { |
839 | sess = se_sess->fabric_sess_ptr; | 841 | sess = se_sess->fabric_sess_ptr; |
840 | if (sess) | 842 | if (sess) |
841 | ret = snprintf(page, PAGE_SIZE, "%llu\n", | 843 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
842 | (unsigned long long)sess->tx_data_octets); | 844 | atomic_long_read(&sess->tx_data_octets)); |
843 | } | 845 | } |
844 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 846 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
845 | 847 | ||
@@ -862,8 +864,8 @@ static ssize_t iscsi_stat_sess_show_attr_rxdata_octs( | |||
862 | if (se_sess) { | 864 | if (se_sess) { |
863 | sess = se_sess->fabric_sess_ptr; | 865 | sess = se_sess->fabric_sess_ptr; |
864 | if (sess) | 866 | if (sess) |
865 | ret = snprintf(page, PAGE_SIZE, "%llu\n", | 867 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
866 | (unsigned long long)sess->rx_data_octets); | 868 | atomic_long_read(&sess->rx_data_octets)); |
867 | } | 869 | } |
868 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 870 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
869 | 871 | ||
@@ -886,8 +888,8 @@ static ssize_t iscsi_stat_sess_show_attr_conn_digest_errors( | |||
886 | if (se_sess) { | 888 | if (se_sess) { |
887 | sess = se_sess->fabric_sess_ptr; | 889 | sess = se_sess->fabric_sess_ptr; |
888 | if (sess) | 890 | if (sess) |
889 | ret = snprintf(page, PAGE_SIZE, "%u\n", | 891 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
890 | sess->conn_digest_errors); | 892 | atomic_long_read(&sess->conn_digest_errors)); |
891 | } | 893 | } |
892 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 894 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
893 | 895 | ||
@@ -910,8 +912,8 @@ static ssize_t iscsi_stat_sess_show_attr_conn_timeout_errors( | |||
910 | if (se_sess) { | 912 | if (se_sess) { |
911 | sess = se_sess->fabric_sess_ptr; | 913 | sess = se_sess->fabric_sess_ptr; |
912 | if (sess) | 914 | if (sess) |
913 | ret = snprintf(page, PAGE_SIZE, "%u\n", | 915 | ret = snprintf(page, PAGE_SIZE, "%lu\n", |
914 | sess->conn_timeout_errors); | 916 | atomic_long_read(&sess->conn_timeout_errors)); |
915 | } | 917 | } |
916 | spin_unlock_bh(&se_nacl->nacl_sess_lock); | 918 | spin_unlock_bh(&se_nacl->nacl_sess_lock); |
917 | 919 | ||