From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757994AbcKCOQd (ORCPT ); Thu, 3 Nov 2016 10:16:33 -0400 Received: from mail-by2nam01on0079.outbound.protection.outlook.com ([104.47.34.79]:11661 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755028AbcKCOP4 (ORCPT ); Thu, 3 Nov 2016 10:15:56 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Bart.VanAssche@sandisk.com; Subject: Re: [PATCH 3/4] blk-mq: implement hybrid poll mode for sync O_DIRECT To: Jens Axboe , , , References: <1478034325-28232-1-git-send-email-axboe@fb.com> <1478034325-28232-4-git-send-email-axboe@fb.com> CC: From: Bart Van Assche Message-ID: <1be37430-c75a-308b-04b7-9779a9fe3f56@sandisk.com> Date: Thu, 3 Nov 2016 08:01:41 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1478034325-28232-4-git-send-email-axboe@fb.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [100.44.38.221] X-ClientProxiedBy: BY2PR1001CA0042.namprd10.prod.outlook.com (10.164.163.180) To CY1PR02MB1691.namprd02.prod.outlook.com (10.162.161.25) X-MS-Office365-Filtering-Correlation-Id: 90a85e79-415c-47c2-d764-08d403f1f51f X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1691;2:EY/GyqzjrlL0d/j8idGrpmcRGgTq26+xlbIneM1Jua5KyDQnCwzw43679GiQoShr04wHrcyTV/dBVocrm8sZxRKuGQkhYwtFmvcMHD9bUn+nygAODmAulujmS8JzyHXlVfmV3F8fNKI/wlg5LbLfIA94PkWd2YmARN3/OTAdnOpy+f43BsY3Vp32YWYUWBROqPduCh3iRo/1e1mbu+yULg==;3:selgGwLJJ5hTfMinw0gorjXV46vXftGwTLnsFS7nixUOGV3Cinov1zOqPBQrMtJHDRBJWZWPiE5RM80G6RAyke4qnsT1sVL7Z/SrAzpfljGgdgtO4uzPBbV1DB7i4xMhGj2Ko0MybIMGPzwFpUS8mg==;25:KN3LBNrJxq3BfUWZMEfrkM+QVNSGT4NLJm0ivjr6zDuCQ6vhLGsjDPUPU9hxR8jLy5Yc9Tl0Nz2PHkPB+69mEEgRrDtMyQFy072JH9huvV/pje57QXRNHxpBtBJxKU5PYczX3huyTTkDw4/QWZGZpUiutCDOdwwG7y7Dws40rOUO1Hu7NOx3QDQk+3pbrLZOjuQoiKuPQgOMvlUn67itaHTGp0JkskFC36Db/LuX8ri12WvXGIx6rod5sNOh1NbwX6iWtRBqTBuygBEIj0vgi63vKqrXmS/9zmGkn4IVnOCI3LX+kuWvct4+nSfegFKMUzw40YeJo0Z291MsAM8eZ/eiPobZKDpL6GGyPs1YuogoQBftiwRqjfyXUIMMPrhwIDDynm/rZSuaEKK+qPTT0g2OwiVw7tMREjWQnXqpEQ4= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR02MB1691; X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1691;31:d7xQQ3X+WMzZc7CDYdXL1hVmoIvETalFaIxDP+YQnN3RxdLg+vDPoDmBfxFobDvDyOSaeD2O++EX3jL0ck6z+tBWpGsDPzhYfbR3nWWyRiDFuJH5VHAmwzsXtsDBQkgUrGECH21BkZ1N76flTaTsD1DO5PmsuhlMxmK4mhc+Pi5TPfB5yBlVCK2+e0JRbhEcjig+4xHx8z/KiTBWRL0BeMJlOT5oGsvYvum6XvDDlODRrdMRQNs9WMAhs8wO2L+Q;20:6mRGk9iMRN9yPfogy47Z6pxxAZ9iIR6F6N803TeXfeXso2yv0EnbI23MPE7B0dpmkWG2IW1nKWWt4+cnnauqX207h60cncLKK7N4xgHxzPESbAr7gUc5puER2BNqCHj8AdHRWNMKyer0SXTpA03lP/7z2BwHIvYVadDMxea8WPHKefx/2lFWrqjDwgIh39Tw8dlyNSAqLyarO3yvCYPqa2zAi9y7rUQ41RufTRDrFrpH19DRSfsUttMo5sTJIf+QO828VjlxKyV3B9n1U4W7pMgnYDqBi8NKHkI9MaJMeOWE+BaKOjz5EtAc+jm+YC8kcWhGnUhibHfksVFx3R67qUdiKzcwSpEUY40BBZe8EJJHzSutd+kRVMeup82UI+9DuphUFiVzUcctuAH1qwh5XrOg6sZSdx0JqrKJo40J1y5vFsex+8KfGXyhYg4ELwhSGTNO+rExvYDk43qsLCT/BbAyejxapHGivdd1f8bHcgXNlp3iB/UTQEB8mvFrR/Cf X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:CY1PR02MB1691;BCL:0;PCL:0;RULEID:;SRVR:CY1PR02MB1691; X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1691;4:uGgGdM7TzbRq5I/l/JF5z2cD+BDWs19VwTxeISmIxY6m8XtDNxHFpCcVoYxDbS+cBweV3DgokDmSXdX9IufQ2u19bnx5if1a7W37oV/4W2VdGDpv0ekP5QaE116tVPbG9CaHdsxmENI4J+qGUwJzD9UHrRD54fp40FI7HX0CyZqnbkpDxJDAuUS4yX13n5d1n88p+nTzHzg5AaF6WenY2tGWpia30HNU6q9ATKVLzrNZtneLrPlcvXsM66Y6+dXpQdYJn+guQEBTKGJ9o42cF0Z/OCHq2mQBMPfPmUA/pIPJv886XK0o2bKfCJILrXnPme6sqcz9nopsFheRr18wdcqQCmFg/AEiYV2o4K2KXWx+GFb+13No6uFpUiHEdIxXOE2dlv0pM0TW9bVKKOIiN6WZG2kQWmDazyHfXa2W3po= X-Forefront-PRVS: 011579F31F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(377454003)(199003)(189002)(31696002)(65806001)(47776003)(36756003)(42186005)(53416004)(19580395003)(31686004)(83506001)(8676002)(33646002)(7736002)(230700001)(2201001)(86362001)(2906002)(81156014)(81166006)(305945005)(7846002)(68736007)(76176999)(101416001)(5660300001)(92566002)(6116002)(586003)(23746002)(3846002)(50986999)(50466002)(97736004)(2950100002)(4326007)(65826007)(54356999)(6666003)(65956001)(4001350100001)(106356001)(66066001)(69596002)(77096005)(5001770100001)(105586002)(189998001)(64126003)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR02MB1691;H:exp-402881.sandisk.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY1PR02MB1691;23:t3gWxulg5CC+7UqxmJz8Ef38BsMGUPC7JY0/n?= =?Windows-1252?Q?lHArrN98u9rnskjQDkbQsmOD51MIts0DCVfapVVQV/KYAtbhVtVj4FT4?= =?Windows-1252?Q?NCNryAIPOwhgzao/zbhZjI2NieveV/X/3yC+/EMdApnoCKr8giuBXmwm?= =?Windows-1252?Q?MYS+ErXa5/PPOTBXNGkoSFo938Wq4I6F+GMoG3IwnelTOcTqqWSB+rAQ?= =?Windows-1252?Q?+vwZ0jeggjM0vxZ1HOaI2hkcXcJz4WcKi3KXp+8aN2ZTNuUWlMdD8IMm?= =?Windows-1252?Q?UYqVDZkZ+i81czN84dTYkwv9bn8kqbA0h7gKzUj8HIm/d3vTkiSMzmpD?= =?Windows-1252?Q?pefi4jwGpzdjpCBRiS8mnYOLr2/CjL0AC5bLObwTObToFCwWND7QAVda?= =?Windows-1252?Q?mv0ojagGocZaOj23JDJdAcioxDpwjrQsWQKqZ6gRVaDz5aVLd3k4xzoD?= =?Windows-1252?Q?hzpuU+aqrVyzwr0f6MrJQ4WlJBmqHrSK/04tMPI+4XMvDhvCsQMCZg8N?= =?Windows-1252?Q?IFNDRczpyAlGVsXPYzxKg6PweJFRNfYMuZKZCKjiVIcbdImpEbko0LVk?= =?Windows-1252?Q?aTkU4D0ljoTH/yVXNrauY0Vr5tzdJB5UuBhNK3hRHQUUn8TexkM98sla?= =?Windows-1252?Q?/BgpAEQ51G7igGJzWRG1KnwhjZe1sQNiPgMXQZ3jrH6MiXiJyspOcyZc?= =?Windows-1252?Q?dyewySllsNts23Pg3mWqF/kJWv5I8izMU23u1R7K2QMlLX4Z7Q35xfp+?= =?Windows-1252?Q?4fPLBZQYSp93MSgZdeC7uzgmKcQBwHVCU48PCmX49iqoyZxStMhhBe80?= =?Windows-1252?Q?ZNcG3q7uPX6TjVMnCVzAakcKzTLcS/qYShlJEIhVyGViAbm1Ap1d3TW5?= =?Windows-1252?Q?ee31L2WQwjQyENPtIEs37sNqFILwL6gQzYxh5JOa8OvtgCNI55zOCfos?= =?Windows-1252?Q?EfxOK+9lr6ko2dn3kPmb/JkvDUzD6AXU5I1wsSNNQvTmgLTS4NrgeZuL?= =?Windows-1252?Q?OhJT0U2wIY+5r6CtBzf3PqTLpPflMOCTeSQkh6+OZZtR0LaBdp/SjYkv?= =?Windows-1252?Q?55Lw/6mWvkhhPNXrRscaRWXfeacNRZMq1Oyejrccpqy1ppWK0Ie5VKla?= =?Windows-1252?Q?jXtw3WPTh08Z8RLcPaMoR73UX2ebVV+AIPlQUdri3pZuuufQg2h9qj3j?= =?Windows-1252?Q?lyLfLA8n12DytXkt8DfLMY3ZXiEcUnWUTl7rU5vpkUIfgqTtlHuxbP3a?= =?Windows-1252?Q?cdlkHSZIe3GarMsP7B+qGGYiGU95Sqx/UhR2YilyQYb1ELBNaGyY4cuV?= =?Windows-1252?Q?UbCapJ9VXmNI0LVki3uHzqEg2nqA2JHtdXud4zEIffi2FjvoMQItSjAI?= =?Windows-1252?Q?bHd+IoZ8CzubAbhkk0+Bcdr6E4C2r0Zzd4dt4zXDJtvWGb+pSeX9P4?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1691;6:erT7iOXZTCcf49ybXCu4AZkRixEwmTp/wVh72iLdrUKXxOuC6W3GNy+NUpGEc4P2UouSRbUNbwd1L4cDpMywCm8i/UUpCBu+skV+shDCKLXZZKTw8OKHpx+dOH0WmZS54uFtGieZdUFrZgxegAFy90wCk0DIs18Ya8oAN1DflL0ytWlJ7LbQ5S2zutO1tCbk9oDwfiZgg/jiSRHHNWPcBEqWZLuD6jeMrMGEZXm9orPWGunltbLlQF66x3VmZXgAn20zR9D5nj4zG9eX8YBx3T4cwaETYRqyfr0OZcIgK6AfkGEPj4eWevhbP3IsuQsKo5GdEPOrSLK+Qo1D62oMuA==;5:pkGiBoOc9fLoQdcgg9naPBgylZHJ8NRrXhJ+uUt3dV+Nng4zPJB7lj8DyoCLxqYnQP0kyOgd2loa//ZpjJ3cTOimU64sQ49dpxsMCDdIoySKzvHxnM7f3/Ob63vVTee7AuFpsWHwy+XlZ+i+HjetDM/B9Dewwb+pfOguFBF5e/M=;24:mMHRYmHN/QMpk/ARXfEerC4NDo3tVdFrMmAb922fagY3bUhiid4nwUN2G34lrCa3um6KmSO3tp1XtIvDOy+gZI3+V+4GHE7oBKq0BO40uLs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1691;7:iXCrzTUHc2lAGpPEgZTv6RPKWPxTG3eN4yIKPLoq0g2U2yqoKJSwNZKxJ1ZLw466+Cwy6qfA5T7bBbZW+IDJX9lSdLlktE+Jcy8bPUB3jTZ0V4iLv2MstA5D/rgBEPIjUG0jGVmCuJp00hM9X3H+f8bXjGG1A3ykNYytGyOB6JKkGmu0/GKtgVx+motXBDVwSjKsgARd3YGwh9QuFApY1NzgikL2zo4qg1nTzcqMaDggkJA47SYbs6XHYHK2IkoIlhehocXRB50rVpxQJp/G/PHAwgKfydL8ExGQgOgQH3oco04jjdS9gm9MLW2DC1KkThscD4KjrP7Kah8g5Xzau+KCeeZWPChCmuRd21FfZIw=;20:L76kQT6ETdxkD1kOOEiU7qp/dTS02ZaSUb/T3FK/hZNC7s1cOgXgnnga/in7NGIkOP6l809jXArYW5qm9hEnuNTlmBgV/V3qCMrdOkZLIGf9sZGcS4HEAjxBGvyB5tIgXBYkJ8+6SKotMVGDDxfbmoCX7UqV0JzF8muZ+PUZGDQSnzJo1bCQqNr7hL2B7IpxQPjTuxun3i9vvYl6N0qip6FdhHQROLxbyXmebsRXygO7OqUMxv7uTV0oXXwiLLTs X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2016 14:01:48.7346 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR02MB1691 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/01/2016 03:05 PM, Jens Axboe wrote: > +static void blk_mq_poll_hybrid_sleep(struct request_queue *q, > + struct request *rq) > +{ > + struct hrtimer_sleeper hs; > + ktime_t kt; > + > + if (!q->poll_nsec || test_bit(REQ_ATOM_POLL_SLEPT, &rq->atomic_flags)) > + return; > + > + set_bit(REQ_ATOM_POLL_SLEPT, &rq->atomic_flags); > + > + /* > + * This will be replaced with the stats tracking code, using > + * 'avg_completion_time / 2' as the pre-sleep target. > + */ > + kt = ktime_set(0, q->poll_nsec); > + > + hrtimer_init_on_stack(&hs.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); > + hrtimer_set_expires(&hs.timer, kt); > + > + hrtimer_init_sleeper(&hs, current); > + do { > + if (test_bit(REQ_ATOM_COMPLETE, &rq->atomic_flags)) > + break; > + set_current_state(TASK_INTERRUPTIBLE); > + hrtimer_start_expires(&hs.timer, HRTIMER_MODE_REL); > + if (hs.task) > + io_schedule(); > + hrtimer_cancel(&hs.timer); > + } while (hs.task && !signal_pending(current)); > + > + __set_current_state(TASK_RUNNING); > + destroy_hrtimer_on_stack(&hs.timer); > +} Hello Jens, Will avg_completion_time/2 be a good choice for a polling interval if an application submits requests of varying sizes, e.g. 4 KB and 64 KB? Can avg_completion_time be smaller than the context switch time? If so, do you think any other thread will be able to do any useful work after the timer has been started and before the timer has expired? Thanks, Bart.