From patchwork Thu Aug 9 19:41:46 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: 10561867 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 1D37B90E3 for ; Thu, 9 Aug 2018 19:42:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C97D2B979 for ; Thu, 9 Aug 2018 19:42:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 014762B980; Thu, 9 Aug 2018 19:42:17 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,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 4C4792B97F for ; Thu, 9 Aug 2018 19:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726744AbeHIWIe (ORCPT ); Thu, 9 Aug 2018 18:08:34 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:41000 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727123AbeHIWIe (ORCPT ); Thu, 9 Aug 2018 18:08:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1533843737; x=1565379737; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=4di6bzFeWiQPieZqKCg4CuU1sOsrRYNgeXmuiqIbZrk=; b=Sp0OWkbQPPam3Cfw1WV6DVWURpJfMMCyzKH+8oK7s8uQhcFbHOnUrws8 zZ682t30HFpvFrUPEaC4ypGLqqVcwdD8hLNsm2DyrYnkCbpW0rbblSBve QXeJI8lNQyTml2yFBPDwiHFBYUTFoudeQ2eN496te2V1XZhCfoiCzFbi6 HsH5l+mlkdoD1RI96uFVhsuom8bxXAlJiuhh8PetCwAtuPauOjzybK3jJ gU4dGgDriDVICmvq3agdATn84u5xRj0paBNYLKNlctsmLhuzrSErlcHYQ 7S6kZfBmJqEG4Q0xICzfjGtX7yYhv8Ki+Ok/YMCq8FKMs4qh6SeyW0Cac Q==; X-IronPort-AV: E=Sophos;i="5.53,215,1531756800"; d="scan'208";a="90927377" Received: from mail-sn1nam01lp0111.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) ([207.46.163.111]) by ob1.hgst.iphmx.com with ESMTP; 10 Aug 2018 03:42:16 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qVlk2rHmOkj+F7oZZsIlCYH+uJ04c1hAUsYGtmLXZX8=; b=Vrfy3+tbqQPDXE0TpqKtrADm0u1S4o/noLjDcT8w0L1i22d3FaN9gRb/A7LHKahIRy8vcKn1MM8Jn3LFZE5nhHR5ukzEVIBn/iZOJT+xZhO+hfuwvy+tBtq0kiRN8rOXGZNhHTNm24iFo3YsvUq93dU7w1+m2Z6Apj7ZPOpYeSc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Bart.VanAssche@wdc.com; Received: from asus.hsd1.ca.comcast.net (174.62.111.89) by MWHPR04MB1198.namprd04.prod.outlook.com (2603:10b6:300:71::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1038.23; Thu, 9 Aug 2018 19:42:10 +0000 From: Bart Van Assche To: Jens Axboe Cc: linux-block@vger.kernel.org, Christoph Hellwig , Bart Van Assche , "Martin K . Petersen" , Ming Lei , Jianchao Wang , Hannes Reinecke , Johannes Thumshirn , Alan Stern Subject: [PATCH v6 09/12] block: Split blk_pm_add_request() and blk_pm_put_request() Date: Thu, 9 Aug 2018 12:41:46 -0700 Message-Id: <20180809194149.15285-10-bart.vanassche@wdc.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180809194149.15285-1-bart.vanassche@wdc.com> References: <20180809194149.15285-1-bart.vanassche@wdc.com> MIME-Version: 1.0 X-Originating-IP: [174.62.111.89] X-ClientProxiedBy: MWHPR2201CA0066.namprd22.prod.outlook.com (2603:10b6:301:5e::19) To MWHPR04MB1198.namprd04.prod.outlook.com (2603:10b6:300:71::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 90654b71-50dc-47ea-d3ef-08d5fe3032f4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:MWHPR04MB1198; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB1198;3:mC8XbuGsUl3CDOPZWw6N2DnPb29qSqM+xHZzW22nV1YIR4/bpn3obrnDeCQ5I8LYtPyPcAZo/7nSMGNW1P3O81C2t8GHdRywZF6IvRDuo/SHtF5N8AndJKdH4wxomgGNbTcPkfz30cu03MJi2dHlVQ70cER4qCXRg7Z+TdAeT2LusmBAqIsNTv1tXr1GDjY4mzKoepV6xwKC5KOyZALAsOqxUfvCEmZ7qkz0Qo5R/3+8S53okEehyNgEhJDszeeD;25:xXFoKeiYU1hrAASIssnpr/43KUGaRZyMgEycLoCHcQdGKpKeKgJFrZfAPgRkyc5BZR6jremNUhsKPotJZb4SWBS2uN4G24fjd1IP+6K0cnj3dhpwVhnN+EgBuq8hcbXHv3f3ydO9t2NV0ysUkk7wPo5PtbeTddrjr0Mb1dDY0IKoqJlK0D/IAaoFTqTNgtRBoPKWjb8SznVwZXCcNFaC0apOsXU0GJWeL2H+AmZMc6ah/YTqzDB1sSI/giBSFL3ncJw8N8ZUxNRsWtVNWg6EFramj/2P/VDdABT6YcjCMJqOFGoecpB3edHPF9cbv2y7U1I7n7QYQ3aUKVfhNhlbQw==;31:IU6tocW4yFxaq7u6ELZzgSPW+HtyGrMnVsRgaoTwjHzJhzYHN/hMAe2dcja7pLkJWnW7sir5N7bAxhWeFzYSvgd4RSh9y3DZTyMA++7F++q8rCc9C42FkHIgpDk7NQ888JKChO32DknECZyQ5iel7wqcH2wIb0jErfxVmVv7N9FNY/tpwfaVBGgN9+B/+0pBWN45UVN8iAoURYumE94+1V2Iw6vxlkXglks5G00q8cM= X-MS-TrafficTypeDiagnostic: MWHPR04MB1198: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB1198;20:9x4ibRnWjV56r3rDxPE3kgRmNFMFq/0c9toRcFd8R125N8KU54KsVQrd2i/yRF9QkZGiydJ3KOem0GxXNOaOifDG0YyHl3ZnYDadTz33rA+tE1iHwffOLUqxYFyhxfxsvjhFBg0l58pgIxy5hIzsdC1D28dJtLvCRvV+dgdmPZIXnJ02HkMzsTUhxmIs39UIXG1r+xXyd2vTtsLvnbidFZa8lNlZS73YfiD7it3PpjVXqGkPz2fmeYz7ROkBbol1D3YhjR29kpgxLVqR125TFowcch181g0tpfW75jAww9BPz1H8A6dHBBbyUgOLMsRKc6voVPO/SQa/wG7wA4n5iJa2s1bZaJ7L/H5hlKOk9CjU9iT+TMMgcn75fkemUae78lE2MdYXa6bYZvu2n6Fg5QC0BYynMjKTQ7Y8hlYBgzdDSpiMuyo5vA8801JsEBNOQDxLWWKWn7bhXGGtQy1iuYM6f0KdGY8+dSQ8s0npD+AbN/3JAycWMSSSRvjf+9zW;4:F/tt/Vjj7oNPuM2NHcGH28KtsfmJXzWEJASG5qCOjQMGZxGHmBi9ozd3ZCgfYQby732O83bNoR1DLlVUpI7arls10ssG9D0KqAjaEWPMGxX3OMcDb3aKVEDarsggkGTALd2RgzOZWeGhYXSAk7LNm9qa3/vGhRI4yHXOU3IsYeFzB+bOvPKiI1HaEysUC/rxjkZ8uwPK27vnc5TfMUHoyUEHvklJTw9bjzp0zVHx56+baL9mcdjyfCJCSvAUE+p6gvj+nD0K8c4ElieZLSSa/mQhiQd3Z8VeoaETHldMvvFdWl8R0z1Hc/5j536EzDPa4HmZHeICMBECowEsGGCxcVOC5FudNGXpIec0H+XJJ/w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(35762410373642)(146099531331640); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231311)(944501410)(52105095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016);SRVR:MWHPR04MB1198;BCL:0;PCL:0;RULEID:;SRVR:MWHPR04MB1198; X-Forefront-PRVS: 0759F7A50A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(396003)(39860400002)(136003)(366004)(346002)(376002)(199004)(189003)(76176011)(50466002)(476003)(51416003)(4326008)(478600001)(52116002)(6486002)(105586002)(72206003)(48376002)(5660300001)(47776003)(305945005)(2616005)(956004)(7736002)(6916009)(6666003)(486006)(8936002)(2906002)(68736007)(36756003)(66066001)(186003)(446003)(81166006)(50226002)(8676002)(81156014)(316002)(6506007)(386003)(106356001)(97736004)(25786009)(11346002)(16586007)(54906003)(14444005)(6116002)(1076002)(3846002)(86362001)(26005)(16526019)(53936002)(6512007);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR04MB1198;H:asus.hsd1.ca.comcast.net;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB1198;23:jaYu0gqzzzFjEcrNFa9Bt3O/rSkoe40KqwuETd526HAVQxq2hnkzy7biInXXdAZjxdekDjfm/eDwDu7accMWsDT19JuT0Ug2k+iqx/FVnOvr+vkN+MKfGbj4BGipWExC5mfH2chu3WYCKJSO0PQYDTAiPy4/j8nu7jmfYq/ZDpRW+d4ZspvKhrZ80YhKnqyD+J4O962Sh2VVoQYnkTrd39Oa5m9//Lm7/4f9rQCvg06FocSZYCKqcawiZQgdlq6MiS0hkgqi4N121LPZLRlOU5r3m0SLTRyQREFolhf3UkZlF3olvoFpzhXFvg+CPuYynlvu7G5qn+ERMJVF6VMTt2cYfBpJx3/9RsK4mqX/TIpuHdTFHfSw4r7rrB6dQYIAXta1E6RMoVyt5IVHYDKSqZHiJgbnezRh6cyJEI3bzk1CSFc9r1QPvHUy62wkBcOpZLnWhWb0y7Pi1T2woty/cmnHxlZrhkbFrmzpOJjZ/8ERt/qhCz4D38/WNQAUBg1rngO5DxniPj0pOfLKFsTfNtwVfkVQwrYhA5kk4ZKRNkYOL/Iric1NAI7iZYOgOldnSVp8czVsODOyvGRXQ1nSJd9OAVs1B5qv/LJG4Dnz0C1PsRQbu4OeLbv5eUMCc3o4Z9hwkghX2CF01A8y3Oz+wNIZiREw+5kMquFSwOi/84IvGJyreekQ9Q6+PFXQGiuxD9EMWKpvT3velJau241rrS52wW1g2MK5fzRLizqqNpPHM6FjUhW69GtjBeMJrImdk/q/mfIhZ66FutkgjbBUxu2xqjRF586kxrSoj2B0Ure8LGT8NK1Nvr74nxzs5sN7TMq+/k+RKldF4HywvwrE3Rr/AAGzTLALgSqGLdEpvX15dXX8/oPeQYyp73PRLkqc4pzjjcoG4rbEgWM/WjE4LpXlTjSv03cuE1Rd5nsqDDQiBU+mYkuEnApkUTApyqqGuVeXdSFMROwa4esHDyrEmz/jn1u5gKlb3JPcYGAqtc4aGRY97I3xYLA1z/WZpoYHLnL/IgOGHsBm5RhOArVIEmJukEwHUExztBP5beYT1C6YBr1Moe84k0U4GMD1RpZNzpyoR14aTDo6SwIkmV2m/iZIg18meEmbRn+9bUr6WaVT84dg66LglvJY0FdjBUebD68HuEvIsc52TsNG+i7z4C+LPWJMzX/hYfjiH8UETCRhjB/aZ5t806fZvHQTWSN03aiCRPuVFdf3kpAmTVieMwbxPJ1EkdQZHLvEaiohQLc= X-Microsoft-Antispam-Message-Info: PnnTS2zdzROAE7HAMwsKrsqYT97ZEbVxT02Qikd3bDjzrLHxCh/QL4ePRnnr+91SyUIqgGnc/i/wT0TFzNbFO/HeC4VYlDJ2wp6MhozaybSex+GjwtyJo4SVnAKJuAbWjdZauaMB6gz86pY8r1FahdF3GYUVvc3EuRLmTjrpAyNYh5QOhA8e8Ak5HGUpTH4cMgdWei55vSPtLn/KtEVOaMrbtIxW6NkXzzOKqBTizTeCv/g7fmCMmjy4rATHgxeALQBoGmeZCRqufu0NNwkoLsQbuRZSXt73vcKzFenVgztB4Bthxot+4OqRqVAGWA2U+h3g7wfutDSp1wemoyMa3SyVedaskrUplQvTegCvBAw= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB1198;6:tBJSI/3Aq1gpyU4ez4E3k2yD6aXSlHGb5Y1HrkwnGb6oxbbzZyuxorfNVmCnD5OUQ+5uEgZBUw+kVo0KEVXte6VU8YuAN2w8VZwfommJW7bUf3VVVrb6tAMHt+UDM0CGSIW+DaB4AL+rX452g46brOakkmnhNhELMuSL0INMnyICeRGoeS5u8f8Jm1ddfSxYmcm20BUB7XHtNHaJOwJzjnkoIokwnNmwkxT/jk4/GS9InUhzrAMaNsdS5R/4RDF8ouuoVLmMmV5Ojoi20LsGcBDwK4Ccc7Bu6uYZpVPJyfwh2/caGIPVgaI63Iw58T3xi+91cdd5ePy70EL3e9foDjHgqW+38c2PxWyqRA7skGOwB6iTrbiYR+OORrmG/xdHjFrMwtQK6DygJUPqySw9w94eM+bADTFuFh3brUx3wRO8wNjz3+aOQnom+l5a0kVgInnRcPUqln1xE1mpvJOExw==;5:UuSdbS3I9ropZ+AxvS4zsMZ7eGr+XhE/5LTG6FjrBgLu4WdOFtHOC+N6tlUARHB1AS68cFP3SIURWitGnEvfoIV3K6ha6X5+P4LlCBsmcNBSGpmYXk9XZ41Y+W7DRAHqocxlhB6bNaNch9T6n4iykcNpextu05GGQyDUqqObPEE=;7:XLG3JZnw5BKD3cQbvD0Lq592PpN/Akeu6QbAROqlP9YjGYl7qbC5L1280jJ1UqLKAXvBqIznKi/v1n81eJhz842iXapwd6xMX1+FHKi3LYr3NKppI7awTJKtaw9KuDo/dYSeAo+MVpuY5I3OBHOc+Hn0DkyFJgBlht0ZvSBQvmrxCBy0xVWBpL//5esFYMYXmGD7p1LAwILF7ZZo52QJcoNrZO42k3qBKwg0tuI1Gv6ZMz0kKC4kO6kBQr6vxePv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB1198;20:fqQcaqGyP22N38rF0rA8YHz69Tq1krfHFtqjpVaKYbx7ntrveDFasbV1MEjDPONMPEwrqPshakZ1GiS9MZyLIb1Z78zj8H0xCYE3XF00uFlRSEskLEBXOzoQ3cMW3uEBPcM2ma1W2OQ6VasW2/UiLSiO+DZxZreKrgEfNb3laG8= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2018 19:42:10.5610 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 90654b71-50dc-47ea-d3ef-08d5fe3032f4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB1198 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Move the pm_request_resume() and pm_runtime_mark_last_busy() calls into two new functions. Signed-off-by: Bart Van Assche Cc: Martin K. Petersen Cc: Christoph Hellwig Cc: Ming Lei Cc: Jianchao Wang Cc: Hannes Reinecke Cc: Johannes Thumshirn Cc: Alan Stern --- block/blk-core.c | 1 + block/blk-pm.h | 36 +++++++++++++++++++++++++++++++----- block/elevator.c | 1 + 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c index 3770a36e85be..59dd98585eb0 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1774,6 +1774,7 @@ void __blk_put_request(struct request_queue *q, struct request *req) blk_req_zone_write_unlock(req); blk_pm_put_request(req); + blk_pm_mark_last_busy(req); elv_completed_request(q, req); diff --git a/block/blk-pm.h b/block/blk-pm.h index 1ffc8ef203ec..a8564ea72a41 100644 --- a/block/blk-pm.h +++ b/block/blk-pm.h @@ -6,8 +6,23 @@ #include #ifdef CONFIG_PM +static inline void blk_pm_request_resume(struct request_queue *q) +{ + if (q->dev && (q->rpm_status == RPM_SUSPENDED || + q->rpm_status == RPM_SUSPENDING)) + pm_request_resume(q->dev); +} + +static inline void blk_pm_mark_last_busy(struct request *rq) +{ + if (rq->q->dev && !(rq->rq_flags & RQF_PM)) + pm_runtime_mark_last_busy(rq->q->dev); +} + static inline void blk_pm_requeue_request(struct request *rq) { + lockdep_assert_held(rq->q->queue_lock); + if (rq->q->dev && !(rq->rq_flags & RQF_PM)) rq->q->nr_pending--; } @@ -15,17 +30,28 @@ static inline void blk_pm_requeue_request(struct request *rq) static inline void blk_pm_add_request(struct request_queue *q, struct request *rq) { - if (q->dev && !(rq->rq_flags & RQF_PM) && q->nr_pending++ == 0 && - (q->rpm_status == RPM_SUSPENDED || q->rpm_status == RPM_SUSPENDING)) - pm_request_resume(q->dev); + lockdep_assert_held(q->queue_lock); + + if (q->dev && !(rq->rq_flags & RQF_PM)) + q->nr_pending++; } static inline void blk_pm_put_request(struct request *rq) { - if (rq->q->dev && !(rq->rq_flags & RQF_PM) && !--rq->q->nr_pending) - pm_runtime_mark_last_busy(rq->q->dev); + lockdep_assert_held(rq->q->queue_lock); + + if (rq->q->dev && !(rq->rq_flags & RQF_PM)) + --rq->q->nr_pending; } #else +static inline void blk_pm_request_resume(struct request_queue *q) +{ +} + +static inline void blk_pm_mark_last_busy(struct request *rq) +{ +} + static inline void blk_pm_requeue_request(struct request *rq) { } diff --git a/block/elevator.c b/block/elevator.c index 4c15f0240c99..00c5d8dbce16 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -601,6 +601,7 @@ void __elv_add_request(struct request_queue *q, struct request *rq, int where) trace_block_rq_insert(q, rq); blk_pm_add_request(q, rq); + blk_pm_request_resume(q); rq->q = q;