From patchwork Tue Nov 27 23:52:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 10701645 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 551E213BB for ; Tue, 27 Nov 2018 23:52:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 45C382C967 for ; Tue, 27 Nov 2018 23:52:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 39EF32C9D5; Tue, 27 Nov 2018 23:52:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CDD1F2C967 for ; Tue, 27 Nov 2018 23:52:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726820AbeK1KwY (ORCPT ); Wed, 28 Nov 2018 05:52:24 -0500 Received: from com-out001.mailprotect.be ([83.217.72.83]:43037 "EHLO com-out001.mailprotect.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726370AbeK1KwY (ORCPT ); Wed, 28 Nov 2018 05:52:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mailprotect.be; s=mail; h=Content-Transfer-Encoding:MIME-Version:References :In-Reply-To:Message-Id:Date:Subject:Cc:To:From:reply-to:sender:bcc: content-type; bh=IPEoorPCD0OTCy2v9nVG1hm7y73T04MOsIKzW+vLGhk=; b=J7/NpmwZf8HF iUxvO7iXrvo8T3g+BjncU6kiVTRYN32lgUICDb/DVT/v8Nd4m3Q62OGzbItyf7KUkFuZd27Xb/Gjc aS516mLjdQHJhP392SfTEciP54EwAE2WWRLZkGwkVvJtJumPmja1eazCHmP5NLLc2HsmjVWhOoNJo 6sBagBiYgCMcp6dr7ngpvUN1M/L7aszQvTPihkoK6vZq/cfq05YPMx0yhE1c4A2g1LZOXXy7qCHK8 d6FurT+HclgD5Edjc/TS8/WApTHSG9Ag7YbIapgItFYJiG4IYsBdYQt6+Pnunsb5YvayEMbyMz5XK U9UX0LcYT1mT6cUiVM+EMg==; Received: from smtp-auth.mailprotect.be ([178.208.39.159]) by com-mpt-out001.mailprotect.be with esmtp (Exim 4.89) (envelope-from ) id 1gRn9l-000A2s-9v; Wed, 28 Nov 2018 00:52:41 +0100 Received: from desktop-bart.svl.corp.google.com (unknown [104.133.8.89]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-auth.mailprotect.be (Postfix) with ESMTPSA id CC50DC0511; Wed, 28 Nov 2018 00:52:38 +0100 (CET) From: Bart Van Assche To: "Martin K . Petersen" Cc: Christoph Hellwig , target-devel@vger.kernel.org, Bart Van Assche , Nicholas Bellinger , Mike Christie , David Disseldorp , Hannes Reinecke Subject: [PATCH v2 10/10] target/core: Reduce the amount of code executed with a spinlock held Date: Tue, 27 Nov 2018 15:52:04 -0800 Message-Id: <20181127235204.186731-11-bvanassche@acm.org> X-Mailer: git-send-email 2.20.0.rc0.387.gc7a69e6b6c-goog In-Reply-To: <20181127235204.186731-1-bvanassche@acm.org> References: <20181127235204.186731-1-bvanassche@acm.org> MIME-Version: 1.0 X-Originating-IP: 178.208.39.159 X-SpamExperts-Domain: mailprotect.be X-SpamExperts-Username: 178.208.39.128/27 Authentication-Results: mailprotect.be; auth=pass smtp.auth=178.208.39.128/27@mailprotect.be X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.02) X-Recommended-Action: accept X-Filter-ID: EX5BVjFpneJeBchSMxfU5lUhrdv9t27uyqf8Y0L5yAt602E9L7XzfQH6nu9C/Fh9KJzpNe6xgvOx q3u0UDjvO1tLifGj39bI0bcPyaJsYTagCTS5H5Pie2sCQ3gGSzr06cM7U7xDGmYwNG93LVnxwxjk yGQYCd08t3lHobjxX/OigDGQOIiVUN5rGO3B5zfVpnsdsF0/474T9aStD4uEKVG9P9yTThxC66Ku Xb0HO3W8nbMwgkUuW83PKbk25YSnvgtxKKcMIJ7ptgUxRg53TuCt4QJNIvyoxb4710Nl6KAZZ+9r UkyLOOkgJ9eTXvOC4trOptRiSOXsXUvIrRE5Gv2ZitGQ4mLSIBXGbHhMZvdI2C8QBYsWIMCVBHpa 7Qj+JYN6Crh9DXUDEtWWsjsNUWDlGPaDR+Aes7asAZpVFyfMODodi5MLJiAvrVIiQFNhc8S+HKYI 1vbaqYoREZsvVKq8YZ9/SG1CqFB/T9oOuGkszjGcI+mbLJLuOAP016dVWgH88tf6uZ3Odz3W94Ik DCkIj7lUenMOpFxPb4a0gTxJECCYsMoByn2L5D4ESJJSPTtI2NWSXQ8+P45Rhlff/V8o9A8S4+tr vYumJM3atRPpj3GbeSYQbpjOFT4aGmRsFCWUldd4Zfx8AzM82qsIbx1/rxbQicf/5tMwo2bfwweZ +eEX1T91V5n3FsMEfdSIIO3fJ9DGWEJopzxygkVT7yk4xAm9D8KTeKJT7gNACPfxVynFIF3Xrs2K JHQMxL9Pga9lSGLsEntA55GTrob+bwU0pkWukw/5GtMnr6abkRloTB1ySA0lU3tuTBwvekVdLOCQ TrSFM7snLE/cSYe0laqW2xg/HY4alqklDBtTqXGJI9CnVA3fjMGyg48sBVMwSw4LvlF4kd5XJtyi c4/Tu+J4YfXDApCFS5UnqSvzTBMZqJNdbvPaUyoCdu6Y7CHSkG34KkwBCHXe+q6DmHcPHFUsWGxX 7laPjOe49+dpVQ6ftGfnbLVxY5L6rakrXfsAkgCIMo7V3eOzJJ/4nSzNzW4P2kDC4uGq3HDl7GPw DDt+pvlHhV6a5QjptwQBGybQnI83ChkUX8F6u4X0g9iAwvJfZx3lGs1VZ0iZG6egppXkjOrhVptJ 8gZRjxEnfx1IYQ/4lg9Ffvqg9IG0EE8tjDWZlB+G9Jc9fWekhCkYETsycmIe9DyBCzx4I5obgO+2 ucHiHFYFX/uMKqFwmrSG6vY4ocfmWv3Fe9Iziczdq+A= X-Report-Abuse-To: spam@com-mpt-mgt001.mailprotect.be Sender: target-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: target-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Due to the "make ABORT and LUN RESET handling synchronous" patch, cmd->work is only modified from the regular command execution path and no longer asynchronously by the code that executes task management functions. Since the regular command execution code is sequential per command, no locking is required to manipulate cmd->work. Hence stop protecting cmd->work manipulations with locking. Cc: Nicholas Bellinger Cc: Mike Christie Cc: Christoph Hellwig Cc: David Disseldorp Cc: Hannes Reinecke Signed-off-by: Bart Van Assche --- drivers/target/target_core_transport.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 8ae787044eef..9e0bbb135e7b 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -853,16 +853,12 @@ void target_complete_cmd(struct se_cmd *cmd, u8 scsi_status) break; } - if (!success) { - INIT_WORK(&cmd->work, target_complete_failure_work); - } else { - INIT_WORK(&cmd->work, target_complete_ok_work); - } - cmd->t_state = TRANSPORT_COMPLETE; cmd->transport_state |= (CMD_T_COMPLETE | CMD_T_ACTIVE); spin_unlock_irqrestore(&cmd->t_state_lock, flags); + INIT_WORK(&cmd->work, success ? target_complete_ok_work : + target_complete_failure_work); if (cmd->se_cmd_flags & SCF_USE_CPUID) queue_work_on(cmd->cpuid, target_completion_wq, &cmd->work); else