From patchwork Tue Nov 6 17:17:13 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: 10670881 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 682FC1803 for ; Tue, 6 Nov 2018 17:18:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 50AB52AA83 for ; Tue, 6 Nov 2018 17:18:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4553A2AA7C; Tue, 6 Nov 2018 17:18:58 +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 C0C2B2AA82 for ; Tue, 6 Nov 2018 17:18:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389353AbeKGCpJ (ORCPT ); Tue, 6 Nov 2018 21:45:09 -0500 Received: from com-out001.mailprotect.be ([83.217.72.83]:33251 "EHLO com-out001.mailprotect.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389286AbeKGCpI (ORCPT ); Tue, 6 Nov 2018 21:45:08 -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=mS9CaVCmSVQVErO2OBdyeZpkd1dUuad5HSd2p+wPTj8=; b=j/FHd1CyYbhM fwBLKj+CrpoBoNY8fdupcqyBd+nXy+0LAHWNU6A1ABGIhbLN2POs0L9AasC1bDfwaUTpbOKrURK+/ ZUy/dQC6mX7ilb7NYaCWbV43Xu+9RHhiqCEDAe8p9iHSFBsUZmxYBSJ7uidYuamwdohZzi+HvX02p wK47r/4J/XQlGNoU6z4ig9KlS1qz2N7fXPHvMt0G0YzynMpAytZRysSDVfl8bjVGFjUgB5hdCrb6Y AWwF2I9TO1teXz7vJLdsD8oAG2Fu7GYo6FG52Qs0KvjEjIizQGvIxcXcUYGvxCQeuSvJWzQMV99Yf HYlOkvMVDSYHWXG4/xwghw==; Received: from smtp-auth.mailprotect.be ([178.208.39.159]) by com-mpt-out001.mailprotect.be with esmtp (Exim 4.89) (envelope-from ) id 1gK4zu-000CIm-1I; Tue, 06 Nov 2018 18:18:38 +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 2E264C030B; Tue, 6 Nov 2018 18:18:34 +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 05/10] target/core: Use system workqueues for TMF Date: Tue, 6 Nov 2018 09:17:13 -0800 Message-Id: <20181106171718.89594-6-bvanassche@acm.org> X-Mailer: git-send-email 2.19.1.930.g4563a0d9d0-goog In-Reply-To: <20181106171718.89594-1-bvanassche@acm.org> References: <20181106171718.89594-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.01) X-Recommended-Action: accept X-Filter-ID: EX5BVjFpneJeBchSMxfU5o1PGANeTM2nkqmURV8Ej/N602E9L7XzfQH6nu9C/Fh9KJzpNe6xgvOx q3u0UDjvO1tLifGj39bI0bcPyaJsYTagCTS5H5Pie2sCQ3gGSzr06cM7U7xDGmYwNG93LVnxwxjk yGQYCd08t3lHobjxX/OigDGQOIiVUN5rGO3B5zfVpnsdsF0/474T9aStD4uEKVG9P9yTThxC66Ku Xb0HO3W8nbMwgkUuW83PKbk25YSnvgtxKKcMIJ7ptgUxRg53TuCt4QJNIvyoxb4710Nl6KAZZ+9r UkyLOOkgJ9eTXvOC4trOptRiSOXsXUvIrRE5GsPaOUOqBESO6HCHyr/OInVI2C8QBYsWIMCVBHpa 7Qj+JYN6Crh9DXUDEtWWsjsNUWDlGPaDR+Aes7asAZpVFyfMODodi5MLJiAvrVIiQFNhc8S+HKYI 1vbaqYoREZsvVKq8YZ9/SG1CqFB/T9oOuGliwtRkR+GX5UQPXdpKZF7ITlSXoP8r3OOc9CaULF46 7VT2rSAdw3oKkBNp3q2CTUjaBEkZvVwfNyBf8N9Cj3+++mTSKn34bbFRlO1kXUycpLT8XjuR2au2 vXjeilQq2Qb31qklcVekvgO5ge3Iu/DWvQSnovmZV/iKI4Qq8lKVZU757KiUYziXyuXG4Z+FT7fy UhTxDKdOQwQquEi4jLe86t14bfTnkAn7W6VlJXtsnkdl1her2dsH1gtu4R2VkYfnELRpqCZGYewS zF6qDSUBpQp9p69drFuEpAhhs7hKCCLwHYF1mz4X0cGLGMLXeUcb2iuu8cPRTO726D+h/H2J2bRk WbJQMsEazexAznFikUFGnvKVJnFQQaAnDicXOB0lxU/TKjOssk5IMwdmSU/MN6mG9OgEfwYjdW8p pBMOL6KehsbCb0/0wF8xekzsVEvRMrw5DdwH1AXXXLvYNFIciWrFfcvTzpdI3AEG059XQcqecphG M7rTkZocCVec5dx3OnKG9eRDP2/Ogb+c8D2oYTsY8dUpTw48b2MGkvEkgszLgRqa1sRnErSRPh8z fPP2CFl7xGIrJ5fPg33HFhWuygEwwwWe3xXNBQ8NJdm4Pscvb9y1CBweR1aEOEmF+7+XwJhp74Ne BZS/7a9ATcUMpAEntM8yKElR+Y84QVlpY/2Olap60rnP5huMjJeWSwzfzlDTegaelgiu9QvTToG3 X/ekOoQKVaL7/+VCcmuF/Q== 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 A quote from SAM-5: "The order in which task management requests are processed is not specified by the SCSI architecture model. The SCSI architecture model does not require in-order delivery of such task management requests or processing by the task manager in the order received. To guarantee the processing order of task management requests referencing sent to a specific logical unit, an application client should not have more than one such task management request pending to that logical unit." This means that it is safe to use the system workqueues instead of tmr_wq for processing TMFs. An intended side effect of this patch is that it enables concurrent processing of TMFs. Reviewed-by: Christoph Hellwig Cc: Nicholas Bellinger Cc: Mike Christie Cc: David Disseldorp Cc: Hannes Reinecke Signed-off-by: Bart Van Assche --- drivers/target/target_core_device.c | 16 ---------------- drivers/target/target_core_transport.c | 2 +- include/target/target_core_base.h | 1 - 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index c6b1122ee097..d452d2059946 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -985,18 +985,6 @@ int target_configure_device(struct se_device *dev) if (ret) goto out_destroy_device; - /* - * Startup the struct se_device processing thread - */ - dev->tmr_wq = alloc_workqueue("tmr-%s", WQ_MEM_RECLAIM | WQ_UNBOUND, 1, - dev->transport->name); - if (!dev->tmr_wq) { - pr_err("Unable to create tmr workqueue for %s\n", - dev->transport->name); - ret = -ENOMEM; - goto out_free_alua; - } - /* * Setup work_queue for QUEUE_FULL */ @@ -1025,8 +1013,6 @@ int target_configure_device(struct se_device *dev) return 0; -out_free_alua: - core_alua_free_lu_gp_mem(dev); out_destroy_device: dev->transport->destroy_device(dev); out_free_index: @@ -1045,8 +1031,6 @@ void target_free_device(struct se_device *dev) WARN_ON(!list_empty(&dev->dev_sep_list)); if (target_dev_configured(dev)) { - destroy_workqueue(dev->tmr_wq); - dev->transport->destroy_device(dev); mutex_lock(&device_mutex); diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 3c4335e56f08..cf76d3709683 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -3411,7 +3411,7 @@ int transport_generic_handle_tmr( } INIT_WORK(&cmd->work, target_tmr_work); - queue_work(cmd->se_dev->tmr_wq, &cmd->work); + schedule_work(&cmd->work); return 0; } EXPORT_SYMBOL(transport_generic_handle_tmr); diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 067da330ed9c..67130841d421 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -794,7 +794,6 @@ struct se_device { struct t10_pr_registration *dev_pr_res_holder; struct list_head dev_sep_list; struct list_head dev_tmr_list; - struct workqueue_struct *tmr_wq; struct work_struct qf_work_queue; struct list_head delayed_cmd_list; struct list_head state_list;