aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Dreier <roland@purestorage.com>2015-07-21 20:45:32 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2015-07-31 03:06:12 -0400
commit9c31820b6ab93ec298ad98abeee49759b5f5958c (patch)
treef48d69d00a8084cca319ac237e4e0bd356897fb2
parent45182ed576898b846a98ac3bff2ddcb9d35a0181 (diff)
target: Remove cmd->se_ordered_id (unused except debug log lines)
For every command, we set se_ordered_id by doing atomic_inc_return on dev->dev_ordered_id for the corresponding device. However, the only places this value gets used are in pr_debug() calls, which doesn't seem worth an extra atomic op per IO. Signed-off-by: Roland Dreier <roland@purestorage.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/target/target_core_device.c1
-rw-r--r--drivers/target/target_core_transport.c39
-rw-r--r--include/target/target_core_base.h2
3 files changed, 13 insertions, 29 deletions
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
index 55f2cb2a9947..dcc424ac35d4 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -769,7 +769,6 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
769 spin_lock_init(&dev->se_tmr_lock); 769 spin_lock_init(&dev->se_tmr_lock);
770 spin_lock_init(&dev->qf_cmd_lock); 770 spin_lock_init(&dev->qf_cmd_lock);
771 sema_init(&dev->caw_sem, 1); 771 sema_init(&dev->caw_sem, 1);
772 atomic_set(&dev->dev_ordered_id, 0);
773 INIT_LIST_HEAD(&dev->t10_wwn.t10_vpd_list); 772 INIT_LIST_HEAD(&dev->t10_wwn.t10_vpd_list);
774 spin_lock_init(&dev->t10_wwn.t10_vpd_lock); 773 spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
775 INIT_LIST_HEAD(&dev->t10_pr.registration_list); 774 INIT_LIST_HEAD(&dev->t10_pr.registration_list);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index bd68727a6806..3f0b50082de4 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1178,14 +1178,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
1178 " emulation is not supported\n"); 1178 " emulation is not supported\n");
1179 return TCM_INVALID_CDB_FIELD; 1179 return TCM_INVALID_CDB_FIELD;
1180 } 1180 }
1181 /* 1181
1182 * Used to determine when ORDERED commands should go from
1183 * Dormant to Active status.
1184 */
1185 cmd->se_ordered_id = atomic_inc_return(&dev->dev_ordered_id);
1186 pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n",
1187 cmd->se_ordered_id, cmd->sam_task_attr,
1188 dev->transport->name);
1189 return 0; 1182 return 0;
1190} 1183}
1191 1184
@@ -1773,16 +1766,14 @@ static bool target_handle_task_attr(struct se_cmd *cmd)
1773 */ 1766 */
1774 switch (cmd->sam_task_attr) { 1767 switch (cmd->sam_task_attr) {
1775 case TCM_HEAD_TAG: 1768 case TCM_HEAD_TAG:
1776 pr_debug("Added HEAD_OF_QUEUE for CDB: 0x%02x, " 1769 pr_debug("Added HEAD_OF_QUEUE for CDB: 0x%02x\n",
1777 "se_ordered_id: %u\n", 1770 cmd->t_task_cdb[0]);
1778 cmd->t_task_cdb[0], cmd->se_ordered_id);
1779 return false; 1771 return false;
1780 case TCM_ORDERED_TAG: 1772 case TCM_ORDERED_TAG:
1781 atomic_inc_mb(&dev->dev_ordered_sync); 1773 atomic_inc_mb(&dev->dev_ordered_sync);
1782 1774
1783 pr_debug("Added ORDERED for CDB: 0x%02x to ordered list, " 1775 pr_debug("Added ORDERED for CDB: 0x%02x to ordered list\n",
1784 " se_ordered_id: %u\n", 1776 cmd->t_task_cdb[0]);
1785 cmd->t_task_cdb[0], cmd->se_ordered_id);
1786 1777
1787 /* 1778 /*
1788 * Execute an ORDERED command if no other older commands 1779 * Execute an ORDERED command if no other older commands
@@ -1806,10 +1797,8 @@ static bool target_handle_task_attr(struct se_cmd *cmd)
1806 list_add_tail(&cmd->se_delayed_node, &dev->delayed_cmd_list); 1797 list_add_tail(&cmd->se_delayed_node, &dev->delayed_cmd_list);
1807 spin_unlock(&dev->delayed_cmd_lock); 1798 spin_unlock(&dev->delayed_cmd_lock);
1808 1799
1809 pr_debug("Added CDB: 0x%02x Task Attr: 0x%02x to" 1800 pr_debug("Added CDB: 0x%02x Task Attr: 0x%02x to delayed CMD listn",
1810 " delayed CMD list, se_ordered_id: %u\n", 1801 cmd->t_task_cdb[0], cmd->sam_task_attr);
1811 cmd->t_task_cdb[0], cmd->sam_task_attr,
1812 cmd->se_ordered_id);
1813 return true; 1802 return true;
1814} 1803}
1815 1804
@@ -1894,20 +1883,18 @@ static void transport_complete_task_attr(struct se_cmd *cmd)
1894 if (cmd->sam_task_attr == TCM_SIMPLE_TAG) { 1883 if (cmd->sam_task_attr == TCM_SIMPLE_TAG) {
1895 atomic_dec_mb(&dev->simple_cmds); 1884 atomic_dec_mb(&dev->simple_cmds);
1896 dev->dev_cur_ordered_id++; 1885 dev->dev_cur_ordered_id++;
1897 pr_debug("Incremented dev->dev_cur_ordered_id: %u for" 1886 pr_debug("Incremented dev->dev_cur_ordered_id: %u for SIMPLE\n",
1898 " SIMPLE: %u\n", dev->dev_cur_ordered_id, 1887 dev->dev_cur_ordered_id);
1899 cmd->se_ordered_id);
1900 } else if (cmd->sam_task_attr == TCM_HEAD_TAG) { 1888 } else if (cmd->sam_task_attr == TCM_HEAD_TAG) {
1901 dev->dev_cur_ordered_id++; 1889 dev->dev_cur_ordered_id++;
1902 pr_debug("Incremented dev_cur_ordered_id: %u for" 1890 pr_debug("Incremented dev_cur_ordered_id: %u for HEAD_OF_QUEUE\n",
1903 " HEAD_OF_QUEUE: %u\n", dev->dev_cur_ordered_id, 1891 dev->dev_cur_ordered_id);
1904 cmd->se_ordered_id);
1905 } else if (cmd->sam_task_attr == TCM_ORDERED_TAG) { 1892 } else if (cmd->sam_task_attr == TCM_ORDERED_TAG) {
1906 atomic_dec_mb(&dev->dev_ordered_sync); 1893 atomic_dec_mb(&dev->dev_ordered_sync);
1907 1894
1908 dev->dev_cur_ordered_id++; 1895 dev->dev_cur_ordered_id++;
1909 pr_debug("Incremented dev_cur_ordered_id: %u for ORDERED:" 1896 pr_debug("Incremented dev_cur_ordered_id: %u for ORDERED\n",
1910 " %u\n", dev->dev_cur_ordered_id, cmd->se_ordered_id); 1897 dev->dev_cur_ordered_id);
1911 } 1898 }
1912 1899
1913 target_restart_delayed_cmds(dev); 1900 target_restart_delayed_cmds(dev);
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index 95e65bd31e05..3afd8dba54e8 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -454,7 +454,6 @@ struct se_cmd {
454 unsigned unknown_data_length:1; 454 unsigned unknown_data_length:1;
455 /* See se_cmd_flags_table */ 455 /* See se_cmd_flags_table */
456 u32 se_cmd_flags; 456 u32 se_cmd_flags;
457 u32 se_ordered_id;
458 /* Total size in bytes associated with command */ 457 /* Total size in bytes associated with command */
459 u32 data_length; 458 u32 data_length;
460 u32 residual_count; 459 u32 residual_count;
@@ -744,7 +743,6 @@ struct se_device {
744 atomic_long_t write_bytes; 743 atomic_long_t write_bytes;
745 /* Active commands on this virtual SE device */ 744 /* Active commands on this virtual SE device */
746 atomic_t simple_cmds; 745 atomic_t simple_cmds;
747 atomic_t dev_ordered_id;
748 atomic_t dev_ordered_sync; 746 atomic_t dev_ordered_sync;
749 atomic_t dev_qf_count; 747 atomic_t dev_qf_count;
750 u32 export_count; 748 u32 export_count;