Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753585AbcKHP0I (ORCPT ); Tue, 8 Nov 2016 10:26:08 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:53802 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752174AbcKHP0G (ORCPT ); Tue, 8 Nov 2016 10:26:06 -0500 Subject: Re: [PATCH 6/8] block: add scalable completion tracking of requests To: Jan Kara References: <1478034531-28559-1-git-send-email-axboe@fb.com> <1478034531-28559-7-git-send-email-axboe@fb.com> <20161108133007.GP32353@quack2.suse.cz> CC: , , , , From: Jens Axboe Message-ID: Date: Tue, 8 Nov 2016 08:25:52 -0700 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: <20161108133007.GP32353@quack2.suse.cz> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: BLUPR14CA0038.namprd14.prod.outlook.com (10.163.77.176) To CY4PR15MB1191.namprd15.prod.outlook.com (10.172.177.13) X-MS-Office365-Filtering-Correlation-Id: 10157f8f-68ce-4c73-2967-08d407eb8a2a X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1191;2:iqRng2GuLA5KZ2qGg+UspgKcp/Zjwj0Pv+xusxBReZoTTwA9gfttCfCacfm/k3J5secelohOWHu+lY1VRdfiHxnnN6rk2OBKaMBkcY38dckIoHnxSu3z0vYWG9cniXCZIG2ad+JNfGTquF85RnHBA03Kyf6rcYvA00JisVJu9vmOsq6Nafoji9GcxOVF6m1S+MVb/w5JU5pP6HPFUE13Ww==;3:uezhU8Kus5orBsqtNpLNgbjnk9HJpWAcNJAK0TIp7ntAKBhBrxIR2ROPnMgcM+Hd+PZBaxvSlRcj7JFjMGR4daOH0q7alqdbqkJRVDIFUM1yGR3IxRIf40e6SyqBCuhTRt68xPB4mRzc64VZEGXEyA==;25:G8/JAT5w8NwMyxjU3pF4+joCCg2voSKW7x2QQKG7TpqED6Tb1NDT5JDXJA9wUL7Pu2NR7Smw06VtNou9NLMDNsFFYG9XXMWNUh6FF6cfnQbJFypsluuj+lAR+zNjFk++/OjKqswBbHB7atynsAugNKYAOSZNelWUgx8hvRkqEP48fOPCOgsr5kR8yVVyH+Lt/iWn0HeCTCV642TbNZbMxMPLosvQrXWSRtQQFT0FPjMW9P/cSiTyDNXcLCLH57yiyH2pTv1Cn6UfgN5naCkcALh9iBFp5cO2eMa8/PNLnDfPHqAltq8CAjbyKH2UZzHSWlQli/nZ3uzYvpQ4HnYv/EAvwYozbXAkknwiYPOQ/xiHXGQPSPQUOPu1f8SrS2gMGyn6vv12CHno90NGSOzaSogbyKC2ulP500kJHxW3fut6xWjkrA0VUIZojvjN5rTF X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR15MB1191; X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1191;31:XgAk3w8hOAWJcgGZpLOaAzoPDix7MSAawlaHk26q4fBjwxU5nj29GAQq6IiJ7iP5xPhsnKHElbPALpGI2Ai6xbox9jM8wG7AhJYubQite73F7duqnqMTyCYwNiBIZzNerH6+7dBAGWRo8OD7TRWv6rksyQL2CDcxARnVvpB8YGmMA4ICCfHjClvBvJbVclCI1XlYSi3x0ImgiceV/aMk3jJPlb7+mQx+Jyst5gup6DYvAIBaVCsgF5CZ8CrETk5jgQ69pLCrDHJADGIV9pImgA==;20:wIh3VZ520ZzzxInFiYQouRUuacRVPyTTs60tBmO7kBfCwPPzrZQuGh9hoMELxHOtPlW8jb8dJlohw1/Ikt0cK+uRrE7sw/mcgHjIH4qgW3M67q1bFjm+9+evCtUPfzFJzxzFk1yGlBFdlHsHHlRltA5a1wRU1ps8/syYCT6McWU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72170088055959)(35073007944872)(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:CY4PR15MB1191;BCL:0;PCL:0;RULEID:;SRVR:CY4PR15MB1191; X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1191;4:dIE3nNmF+qybpQN0TgSCBGaiY7TTrgCwOFEM6FiOtO/Tqtek2WDXdwX6QJHe7sKoBjZltxeW70t3BGL1/EBh3e6gt+vnSzp227Gg3rW7PnGCoitbxVN7CrcwE81wmzafhjz2jse9DkKOWC8uaR/xICWlq0AyyHUN5d3THgnnBM24oeUnZvGtcEYfxo7rgDPGWFSiUjKzj5NySzDf7ik/marYJvvkxCO5JhmJM0jT29gsCFMYsOBGmMAzI1aJaNnDbpvYT1KErz+QJz2Bd05PaqnJFfzEl9FdTBWnaO7yarafgsAp8B9b92Q5xnmBmqw5+Qzl959TZ1z9ysskEY7Udo93Vf9jkacSobjbE6rl4d6dPuM8r9ELxsrwBdIHD290VrbCW1cTmr69/PwWObqh2b5acWtQRhSX+6RDse08IVBWfCfUwGnQuLzYDrMSrdI+KtVK1kKj2+jEWwlMHKqtBOLsnPmXeZwLEpxclAe4U95mzz5eTxhV3R5yEpQ63Oaoi0m7Udd/6cfdZgtOUYjUjQ== X-Forefront-PRVS: 01208B1E18 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377454003)(189002)(377424004)(24454002)(199003)(50986999)(66066001)(65956001)(586003)(65806001)(92566002)(2906002)(36756003)(105586002)(23746002)(50466002)(110136003)(189998001)(6666003)(2950100002)(230700001)(86362001)(64126003)(83506001)(3846002)(31696002)(6916009)(47776003)(6116002)(117156001)(5660300001)(97736004)(76176999)(54356999)(4326007)(81166006)(4001350100001)(81156014)(33646002)(77096005)(31686004)(8676002)(42186005)(101416001)(106356001)(65826007)(68736007)(7736002)(305945005)(7846002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR15MB1191;H:[192.168.1.153];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY4PR15MB1191;23:/x1FH2V6Vys397G9ZGEl4D5O95PMMpwtnRH6w?= =?Windows-1252?Q?9nnUOoIm8RLawuEE6sHPma+qXRlfMXnBTqGdPulNojPPXtzOrKK+wqAr?= =?Windows-1252?Q?Ppp9oKJjMUHR6Uf6zATmu/pcMY7FVfWiTwnbTunofYGYTKxql1TwrdT7?= =?Windows-1252?Q?NsYW6uzilKFE90fgeXpxRVckoVZguJU/AMXPMLTTjwAC8cdlFN2ojG3U?= =?Windows-1252?Q?vRIuGUseUTM93P6R4IaM8QxpynGJZnV+TIwTMZ4hoNCHKGtNNLmhMzRi?= =?Windows-1252?Q?4oFdJ/ez6SwaoRddrBDVmXeMzfKY+K/HU81utinBqDuALesQyP5zMmJo?= =?Windows-1252?Q?tvrV1l+xdVqDg8pBc11vlKsnN54a66SkiLY9fwcrlGSKrf6sxNo5HLsJ?= =?Windows-1252?Q?eOZC3F7Q96TwZ7czOXAmZ3MgAc/yE5G6NpEsVcA9sZh0KSzoYkrwD/VB?= =?Windows-1252?Q?h9jr2tLDnPgj3tHdta5UiJrJpFui3zmTtu6o5SV/N78nxJrINACOi5Ml?= =?Windows-1252?Q?XNfUSolVJRv/g36kJUajOGD+x/+s4LMJByZHo69jDkSL1xFMzAVqWmM5?= =?Windows-1252?Q?AMp8tNLrNmlwMVnCYiOYoR8deIqZmSn1pPr6RaFUk7kDk6Pi+DKeYsYe?= =?Windows-1252?Q?KdB72/+flyQMuTYiyRis+ELCO6aS7Eu0nokJFIVuJlA+3GWOnjZ0HdGo?= =?Windows-1252?Q?DdDbeLdRGaKq+cuUUhDu4IC53KiCI40kZI9pDD6S2taQoWCyD299/oni?= =?Windows-1252?Q?u1s6G0DXvkQFipkpJ5GWQJ8APIXzyaTOLW858ZwAG8aLeD0kwZ9sE+UR?= =?Windows-1252?Q?v9ZUcXc+8Uu0WbC1mLPNywKdWTnOvidSGJCYI2U0iSBr7zp67fPu34UZ?= =?Windows-1252?Q?F0JLMZWGHxeSH932PTGUd7zu+H5BaoMptZGpKWYFncelN4TQcJ9EaswL?= =?Windows-1252?Q?RAzCSJINjopGdOQeXlZ1VHNxqnDu8sS5m7Bgu57WYoArk3PSsOhWEmhS?= =?Windows-1252?Q?6afDWnF/z+8UbIcBDU6xSfKtJoMjNygQubkt0u/+8JoAP92AdeffpiNM?= =?Windows-1252?Q?teAd8OOvQqFNQ+lw4Uz9TM3zM52SNwtzlA6B33QVTDnOIRJG4runddpO?= =?Windows-1252?Q?RCNr2c5BNNtJfcjezFfOTW+b8Kst7cX82sKtMz8K7KKyPsDkk8DKDhC/?= =?Windows-1252?Q?XDksKcNDrDHEalOZbB0rc1fYb94oGTQ0efGE0PKlGGadCKWnXQKR4Ugr?= =?Windows-1252?Q?/ig046QEtAquzHquS0H3PCgCuiCN46bqHBRikCdGqZB/+ThagIWmwpTC?= =?Windows-1252?Q?bYQ3pz3Gd7jVZbBbVzQ0lXc3z+R4ahnTO8jORiMZaG1uBcOVYnsg81e3?= =?Windows-1252?Q?r+4JM1L82Mpwcw6FKFoahmLXuqu9zgveJ7g92y2Eh4MGnolq1nWEHQ?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1191;6:+wJlQooB52E4telQRCR2RHiucj4sEJuCYFzu/JXcYoyzNzen02IbsznKzRnhen+MASKz+yDU/ghRdQmDV0LHx2yeca+zNKf3PYeutuw0hyGdztQfjtRoHrvpk/F8dQ4jlh56SEZNpOZuezRkUbfChcV7tmJbHguBxaryjhqf/xIIf98KtSjvkmhUT4FVTPC8iLLyfQzm9fV7n12n9YU4APtkcapNWdMjv1PfM7199Aky4Lwfs9k2tb83/BT4DMXQHocEX6EcDOipz51HuPVG90gT9MP7Q5RUoRi58JrHll8xooHAZclz3lCESOv8HlWD;5:qTaja9ORB0GVQiTY0Q5LQfYFAsMPwL3Ppd1FPRS5wg7crqjrRMSS1hcMkXCR+psE+WQQuZSKKo3Lio4XVX+AYZ2kE4Ju4lCo08kbkspy6i217mduPycfLG7SEIj1y5taoDTOSGPf9galnOAM3dVnJA==;24:6iuEPCsXBw8eJm5M7Is4mTAzVfatCo7pKQ5RhsBn5JhP69x/yuW6Kh0HXKi/WjRvcmpiTeXEpg9/XuG0yLrmMbXs7QzVYAi9FRoWIkpwKwc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR15MB1191;7:n7KYatHrrSkvrVI3qJePKV91P0ULQhXYrTEiVp98H5EHCpP3OqHfwfW51B69oEBzoBHqnv74lde5FYSJFRBJyLbfw6fWvaQldYRVcc7pmqq+2Pr478g+Cd2idAF3YT4KElA5+1nKOYVY8EbGKEU/KMTR4Ng+tctxXsBfhkwlcwX+dgTtcmTaT7I6DdsUoKZakfjiTtAFpCWb7D26CVe+AW9guY/cP81qo5cWq+ONDCcWlDOXYICrLPMBPjfWRmtDje+vff3p9FbQFtepK5htCMXkt4eaKdFAv1Jbe9UuzXLuRgv/HYy9qPBrgLi7vz89oAsA6CULkmOYdbmaYWRsLcvsJSsTGU4cBdB57s/L6bI=;20:Y+ogKdv5tfYoHnZTpY9SjU23LaS4Az0h5iytfljfgq8zyQGNjdg2UfHFIjvgyCvFL66vTjt5C/k8jKOJYJ4++PQd7itPizziiJupLZrTbgoLtlERDRU7y3gyD+LAJxclZhEMoseUV3jYss5ylzhV1dpKdoD448Oq2B/wxGE7riI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2016 15:25:56.6406 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1191 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-11-08_05:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2556 Lines: 55 On 11/08/2016 06:30 AM, Jan Kara wrote: > On Tue 01-11-16 15:08:49, Jens Axboe wrote: >> For legacy block, we simply track them in the request queue. For >> blk-mq, we track them on a per-sw queue basis, which we can then >> sum up through the hardware queues and finally to a per device >> state. >> >> The stats are tracked in, roughly, 0.1s interval windows. >> >> Add sysfs files to display the stats. >> >> Signed-off-by: Jens Axboe > > This patch looks mostly good to me but I have one concern: You track > statistics in a fixed 134ms window, stats get cleared at the beginning of > each window. Now this can interact with the writeback window and latency > settings which are dynamic and settable from userspace - so if the > writeback code observation window gets set larger than the stats window, > things become strange since you'll likely miss quite some observations > about read latencies. So I think you need to make sure stats window is > always larger than writeback window. Or actually, why do you have something > like stats window and don't leave clearing of statistics completely to the > writeback tracking code? That's a good point, and there actually used to be a comment to that effect in the code. I think the best solution here would be to make the stats code mask available somewhere, and allow a consumer of the stats to request a larger window. Similarly, we could make the stat window be driven by the consumer, as you suggest. Currently there are two pending submissions that depend on the stats code. One is this writeback series, and the other one is the hybrid polling code. The latter does not really care about the window size as such, since it has no monitoring window of its own, and it wants the auto-clearing as well. I don't mind working on additions for this, but I'd prefer if we could layer them on top of the existing series instead of respinning it. There's considerable test time on the existing patchset. Would that work for you? Especially collapsing the stats and wbt windows would require some re-architecting. > Also as a side note - nobody currently uses the mean value of the > statistics. It may be faster to track just sum and count so that mean can > be computed on request which will be presumably much more rare than current > situation where we recompute the mean on each batch update. Actually, that > way you could get rid of the batching as well I assume. That could be opt-in as well. The poll code uses it. And fwiw, it is exposed through sysfs as well. -- Jens Axboe