diff options
author | Roland Dreier <roland@purestorage.com> | 2015-07-21 20:45:32 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2015-07-31 03:06:12 -0400 |
commit | 9c31820b6ab93ec298ad98abeee49759b5f5958c (patch) | |
tree | f48d69d00a8084cca319ac237e4e0bd356897fb2 | |
parent | 45182ed576898b846a98ac3bff2ddcb9d35a0181 (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.c | 1 | ||||
-rw-r--r-- | drivers/target/target_core_transport.c | 39 | ||||
-rw-r--r-- | include/target/target_core_base.h | 2 |
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; |