From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968522AbdEWP1f (ORCPT ); Tue, 23 May 2017 11:27:35 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:15653 "EHLO esa2.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967269AbdEWP1W (ORCPT ); Tue, 23 May 2017 11:27:22 -0400 X-IronPort-AV: E=Sophos;i="5.38,382,1491235200"; d="scan'208";a="116757926" Authentication-Results: spf=fail (sender IP is 63.163.107.21) smtp.mailfrom=wdc.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=wdc.com; X-AuditID: 0ac94369-ddfff7000001b0eb-54-592454bcede6 Date: Tue, 23 May 2017 08:26:51 -0700 From: Adam Manzanares To: Jan Kara CC: , , , , , , , Subject: Re: [RFC PATCH] fs: block dev aio request priority support Message-ID: <20170523152651.GA7568@hgst.com> References: <1495473573-3343-1-git-send-email-adam.manzanares@wdc.com> <20170523084607.GG1230@quack2.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: <20170523084607.GG1230@quack2.suse.cz> User-Agent: Mutt/1.5.24 (2015-08-30) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42LhOum8SHd/iEqkwe5XWhZd/7awWLyYEmUx e3ozk8WHf38YLaZMa2K02Py9g81iz96TLBaXd81hszj/9zirA6fHhqlNbB6bPk1i91jb/pLZ 48yCI+wenzfJeWx68pYpgC2KyyYlNSezLLVI3y6BK+PX0qlMBXc0K3r2X2FpYJyp0MXIySEh YCKxrGcGUxcjF4eQwFImiSP/VkA52xglfk96zghTdfdkIzNEYiqjxMMb+5lAEiwCqhLvV/ay gdhsAvoSXxf9YwexRQSkJWYdW8kC0sAscJdR4lDHMxaQhLCAs8TyV51gU3kFdCR+rHwPZgsJ 5Et8av/AChEXlDg58wlQPQdQs6bE+l36EKa0xPJ/HCAVnALGEp2/7oJViAqoSLw6WA+ySULg IavEy+UXmCAmqkjM/7CbcQKj8CwkQ2chDJ2FMHQBI/MqRrHczJzi3PTUAkNTveLEvJTM4my9 5PzcTYyQSMrcwXj3ifchRgEORiUe3gQHlUgh1sSy4srcQ4wSHMxKIrxGXkAh3pTEyqrUovz4 otKc1OJDjNIcLErivOdkpkYICaQnlqRmp6YWpBbBZJk4OKUaGIuDtTJMZjdOuC13iv33w6Ri q54m42krDVXiFl75yKBz5tWRS6kTY6KOBWquK1FmevtP/fvlRZNfXV/4YIHrPaPMuprX6nHP Xu2oCIjyXrLzvrLZzn8dz4OOVxW9TpTfdaximmpq+7EZpQa9cr5il5f+zU/ucFs+fUPaMnOu KRkiO+onmb/7Y6LEUpyRaKjFXFScCADKuIonoAIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphluLIzCtJLcpLzFFi42Lh2siRorsnRCXSYOEMKYuuf1tYLF5MibKY Pb2ZyeLDvz+MFlOmNTFabP7ewWaxZ+9JFovLu+awWZz/e5zVgdNjw9QmNo9Nnyaxe6xtf8ns cWbBEXaPz5vkPDY9ecsUwBbFZZOSmpNZllqkb5fAlfFr6VSmgjuaFT37r7A0MM5U6GLk5JAQ MJG4e7KRuYuRi0NIYCqjxMutS5hBEiwCqhLvV/aygdhsAvoSXxf9YwexRQSkJWYdW8kC0sAs cJZRYsOiPWAJYQFnieWvOhlBbF4BHYkfK9+D2UIC+RKf2j+wQsQFJU7OfMICYjMLqEv8mXcJ aBkHkC0tsfwfB0iYU8BYovPXXRaQsKiAisSrg/UTGPlmIWmehaR5FkLzAkbmVYxiuZk5xbnp mQWGRnrFiXkpmcXZesn5uZsYweHMGbWD8fpE80OMTBycUg2Mq52V3AIniJUFfky7sW+GxokF P4UdcyY0XdhrYFJqNov3kOW9nzd6T7DZG5/Uzvx0/XX9k9lvX548f2n97Zcnm50sVvGxhn// +MDdb/oxndBHRewnTi6ayVY9a3W48uFp+43ymPdbFJyN4D3eFdR/UknERIeprHf3BgFJ71MK f3MUhSfZrCp2UWIpzkg01GIuKk4EAEhGnc8XAgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(39850400002)(39400400002)(39450400003)(39410400002)(39840400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(24454002)(199003)(377424004)(9170700003)(77096006)(55016002)(53936002)(9686003)(2906002)(50466002)(8676002)(6306002)(81166006)(54906002)(6246003)(8936002)(356003)(50986999)(54356999)(4001350100001)(7696004)(83506001)(38730400002)(85426001)(305945005)(189998001)(110136004)(76176999)(478600001)(47776003)(36756003)(4326008)(1076002)(86362001)(2950100002)(6916009)(5660300001)(23676002)(72206003)(229853002)(105606002)(966005)(33656002)(106466001)(18370500001);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR04MB0368;H:milsmgep15.sandisk.com;FPR:;SPF:Fail;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN1NAM04FT017;1:TlhGGeXE5NF647oo0plMxHhJnXKdNlcb8ziYpccR8+XhxPVDZZR2T5xHYPyGaNhhQDmWNcGCafx5rkrwB2as2vbmWt8gdGDYe5bLLSW6roh8NL1kFa9b9feZYKa8T9C4FOQBo7G8gG62Z3rCmvJXfiTtWkL21lUQ+yuyIMaZ3AQSUsbsIrGHjXHLH2rgYyDJBxf/BA4mPyadbR3haM9XCrR3NhdjYph+ujphzzSRKYx21GBzSrsYePLo3A5aOE7NMm+gZ+nGMyGWCt9F6uJx+e4XWRjCo5hGgVSiTpnSixM7M4hwgOx2ft6zjHkMVtcOFiRGidJ7L+HpqBCySHF1xI5JGXl4CnwQSlSTShcu2gTfE3Hmw7/M3wNAf62VLfworxMx/723nwDL3d4tXOcYCHbbf1ZBJk29GV1WlBWU0Dtonq9P4h9852xEpEpsKiBx0453Dpt7cLdfRmvNiWD+rzlNCma7kOZRZOlY7TN42PRUiXErWNby6gq0A44d8rSfj6mSF/AH7/8hiLWa83l8Dj2eZtK6Klteq3dIjhrrI4I= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR04MB0368: X-MS-Office365-Filtering-Correlation-Id: a9fe4e40-4c95-4650-bb6c-08d4a1f0261f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254075)(201703131423075)(201703031133081);SRVR:MWHPR04MB0368; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;3:F+mjudO/N949EK7cRGGVK/v/cS+G1iIviJk1r92Kdym5Z1oUUZP5aFBo5Vq7LIeqNjr+RRW0aWwuWh3PUm++Zdq31EZ2UNt/qebrsuCYLXVrM9z+RmjLqQvONnI+PGrzEnTYYCFFWsGerKTp2mI7DV5h1kuBomB7XjxrHbEF0PoR7+/s8yTBZbWOVYqCajF0L3XW2h8lpEV6cm5MQtbZ6/4ML1gM/iJ/l6ohCNG3ArWWGDDIEMIPRFFzDwPV18VObQwxwGr2wfO7A5FL7BwKIHUP+aCUp0velxyKXQ8xhcXAQOsxOk4yBMBf8E3f4H1qHypzCJKjg7g+U881//Kxm/QVCGyqY+pk/e8utt1dRg3YbqLuPOqrZ6NxIyeM1qdM/447q/ifSpaykK6xE3JqfLtkQN6f6H2AHVqK494uolEi68I06rY8HglA3wwyqxD6j1d9VWcoULmngbPncD1MKg== X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;25:szJKXvTJpfnZQl2V16peU2yKFpelZ1GawLMajhBlODTK0CA/bcypnj+rzt34V80UcOghRXREr5TVIvMd0n6KkYQMWivF7u0b9AcND52XmY7WxRlOEBUXmonXYGocRhyYiS1TcbNShivqlIh2lpya3T7cmkoFLku+S7uWVEOLtbv97jH6KsiJr5A69bNtGTpNSTY7R1IEqMFoVcQfuaMoEn/wlWqk0phdk5nYokWq3joJC07IDIEijwiMkRTGKahdQctiEFlz8SqzeQIgVW7JR5Jom+W2u2FvA0DHJdHVFnW8kmFTc5z+xK+104r5kSi/CKrg/tUwkBjzUdUcXA5X9EZ3+2GLMaUUXTN+Ua9YLovavhRT3CewhKkgbExbBOHJXbffnGRvmkBtcojwtoMQW02HarV1lNtMzYr7hFYiHQ0IsAO86K69YuP85heiSjSsPXQwWgN5XqF8HaxdFVNAlN9iWzhu4U+/vorOvUpLKgw=;31:MKHvBNzs51s+T0Z3RvAjuxzJ8IxZ7edoFNeQExYl4svP5qF4OneDZdEWP1hwgH4e/zMvGcupSrU4isg/oh/Tbza6cDVhIAzkuwOmIqWh7hq0cdNgAExSfvYXgEUK1uS1SWjc+8bRBVvvyzuEeUsodxgX0D6Kf1AXMcR4H6cM4hxIIJ50w+vVOsynj4XGVAjAlMyjE/iMO6BNfifvDWeS2bQSFNko9BP/M01wDu4wMqyGU84KD/wctCldW7qfUs/nH6V+uuVulxjxDO+CnZdmyQ== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;20:Rf3chdTaa7PjFMMldJT9YLO4gT4gwlhBGq1C/WovBYiK0kIgxpcfeeT1fMzWYSBW2GARQq1P5mEFj1m7Nd6WbSf44T4ikch+3pyf/medVRUjOqY7fjQj4nhaRglvMwfplZNHiXqo3vBYioxW5ocVCaO81I6bm8HmS3OJCRa2dzAJLFaKmE+St2zdJjiJs6NSgEsZPn2TI2jRycICKXiq/kBl7QebF1+HLabr6zWaatYrWvfvUT0ugVoccDy2fIB6DN7n1INbgJPP4urNR86WxCJuY15PQWNM9jPH4kNJOf187Y37j2vLaZGc5QHyab94bxl4RSDLWicLmDuAyEz95oNEtIwHwoJGlZlZWrj/bPsW46E0w65+7ys5Qg4ICX+SBpdD/I/NHOC0cCQnbgXON0SVD9fQkay/i/E+F1wglJtApHVC6vLvyfwG5kOGJktg4VyweP9KnCN+lOrzHNVlbK1Lv0PJhqbrIWViyOtPQxfjDEsnTSRDVLxbZOsdcXMH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(93006095)(93003095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123558100)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148);SRVR:MWHPR04MB0368;BCL:0;PCL:0;RULEID:;SRVR:MWHPR04MB0368; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;4:AxTTKX+tP43j/jqN9RBzwzqs8s380VTVeWz0plC8j+FrUTQdI4TYUsOf6buB9u2ek/HlxnU6EGVtHijfIqtc5ROKwTXvYVAEJJ6Uz/vNAjj5tK3nkVQQ44sz/y361cXiHsW1Y2AeVWFglWMapkCMcEgMa/MAyxoY/LUqLkKq72aujJ42NlITueGdwI+cqUykkwPEOHE6s+ux+R4vy2hORjROeUnpYAE166ynvWi3fOCPyoUIlqb61C6HoWbEjjl45wBGwoCGuj3RiHGOvuJ+51DFjf6wuGjaEuVbRSTId4UKOLzAHf5Hvgw5EGva7eNW/Uej1Z1oeQVbPVFZS6zNY78JfS5SrIyo4YmBklEXxbEyTaIcQdb7qPhEruKyFHjkXUNLs50i8tIKBS4aPklXEQts0EvrLV/IMdpdAP/IcNNg6sAo56+AVcj4bynS0tLm+FM8XpemQ0wiyDyTWpstqhJ5jmnTcbYQCxQtoIgwnF8okGZITZhCWs4BX+ZRBERxSOOfgjhr+TfGUSF5BbZHi6tnSmgGEJt49idHwFRWYwyfBKigdc0JxUcLQcrzHnGjltBrWuKyo+3OWoFHN3NJ+Tq43Y6ie7RRaCTSzc5js2//yOQ3OPe/qa30bLU1M9blNSTZiVMF1NU0pE4xwmb8CdXv8rUsBGcGeUMdswqDtnyPuGQuqRl/1vy6h/zGI/XTphjrKu34Ov1bfVObQYzqZv7ljo1Kow8iFTfODCO0N3lzFgEw4PVDj9Oau0Vl+iDP3SArqfwj8trSR86W3CsMOV/Gge4i55X0Jo/3Y6KW2S5/hbVKNC91uEh2Bfe4wvO2rNoqN7tZXHVxNZLTtkwvkqsu85FvDlseG5GRxgA3/5eZQKK5wuzJmeII//1upaSE X-Forefront-PRVS: 0316567485 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjA0TUIwMzY4OzIzOmZ2L2pXeElaelpBM08rN3RxVkowRHJ1STU3?= =?utf-8?B?Q2FjWUEzT0VWM2l1Rk5OYk1QeWFlSnZsc250UFc4Q2VNRjBRT1N1Zk1TWmU5?= =?utf-8?B?U1VMb043MnJwbmVVQ1ZZTzZ6V2NqcjV5MkpYUUpScit6dGFxMDBFOXVjanBE?= =?utf-8?B?ZCtQcTI0cG9kRFpxT1NDVEVSS0ZlNWs0eC82NTB1WVk5MDVrdnQ1TEs5MUx1?= =?utf-8?B?QjZkZ1V0N0FwcVk3NytQcUVtQW4vWmdzZEl5SGRma29IY1ZnRjFiNVZxOTRJ?= =?utf-8?B?UTZyNmtrT2dPRXBjTDRRUHBZS0JZdjN1WHVtcnpaQk5XRzRaS083anoyY1hC?= =?utf-8?B?UXVBL3UxdnBxQ2ZlL0J1RGttaXBncUZCT1o1TDJ5dFhtODhRSWJqcml0c1Nm?= =?utf-8?B?QnZQUCt1bytGL0pzNWx6NXhBQ2NHUEJ1V2VIQlRuTFAwbFpyeENtVjRIYXV2?= =?utf-8?B?ckwrVWhIOTE5N21SYTZnVWp4dzlJRlIzdy8zNUZwRzdQUWNRSExVZVdHSlVS?= =?utf-8?B?bTNoUm16OXFOSkpVaFZXOG5qSnhkd2pQUkN5dFpJNkxSdmR2UVppN3BNTVR4?= =?utf-8?B?SlRYaDF5N1YvQ1g3UjdxSkh4bElCN3UzbkhHT3J6RENQaVVvdDd5VlZvZ09H?= =?utf-8?B?R1BUQ0xMZ1BTQmgyYnBtTkJTVURGTDFXTk8rTHRlcThpZ2VXVXcweFlReC9Z?= =?utf-8?B?dWFIbXFKVFQvbEZzWDdKRmxLZkVaTzRiZ1cwWkFlYTJndXhJaC94enM2OTY4?= =?utf-8?B?aGxJUFJJMlZlU2VWQS9zak9kYTczb2hveFJlKzV1SktES29Bb0lqSUNJQXR1?= =?utf-8?B?UWFWMmhRQm8vUGtQZ0R2RDh3N1czUHI3N2s2bHlsMmJhaVJNSVVMZkdVb29h?= =?utf-8?B?bjQwVWtSN3N1ajVsVytXV0IzU3llWElqMWNpS01sTDdXdmQ0N0ZIK1Y0Tk1l?= =?utf-8?B?OHltV1drd1FEWUJyVmJpV3lYV3R2dVdmLytJck9DdVdvekNWK0hsZEtVbGVE?= =?utf-8?B?MURxMkREZEFORnR6TWRtM0k5cjNQZHROVVUvVzR5czJydllRc0VvUklQelM5?= =?utf-8?B?Q1RlejBGcTdITXFoMkZtdXpaVDNjNW1yV1BKZG9LdmtDcEdweXhBeXZUSFJF?= =?utf-8?B?WnB1Z2ZKZ1d4bTM5Yy96QWVDVVZVT2N0NVNHUGRyc2piV1dWb3Z3R0VLY1h0?= =?utf-8?B?QnAwMFB0LzMvblZtNXFqc3BTZXNjYU1UTFZqcjhNbUJFUmxBRCtGMmpMdndM?= =?utf-8?B?VU5KcldZc2ZKdDA4MTFseWdBUVlJMmtuZ2Z5WEp2Sjg3bXFNNStrWnBtRmV5?= =?utf-8?B?SmhteEwvY1JIQzA4NFBtbXAzanN0ZXIycXVuUmVoWDJVbTFieU54Nkl1NU5P?= =?utf-8?B?QVQvalEwdFlhMUpFMDRsSzRQTlFsdkdvdml1RE5YTnBBY2tmdkx3L3RvR04v?= =?utf-8?B?dUZXYVBBbVY3UDVvZjM1RGxITEtESTNjSHZzOW9UcllMU3k1U0l0eGhxTk9o?= =?utf-8?B?K0REZHRuaDVSM2lqK2Q3SGRaOGZEWU9CQjNuK0kySHNTSTZHa1pUYVQ4NTlQ?= =?utf-8?B?QVlaZ3V2NkxhdWo3eW5SeGcvdkdNNzVPTFhTTmJhY0F2dC91czNzdGhIeWNR?= =?utf-8?B?eFVmRUpwWlJtZGhHZXMxU1J5cWhtN21LaU5iZ3RBWmNrZEQyOElPbDc1S0NC?= =?utf-8?B?Y2ZUQ25NT29iMVk5dmRtRkF6QTBCd1h5TFUwU3ZYSis3My9DUU50ajErZk01?= =?utf-8?B?Nm1nc2phNFZ2MFFVajdnUjdjSHdSdld0WXk2aEVaeVNNd2I1aEd6R1Rid1Ew?= =?utf-8?B?czJiVFBkN01yNHkrd01TYkgrZmpteUdIdmJ6RkdyZXJvalJYNng5THMzZlM0?= =?utf-8?Q?PEHkJoKyWW4=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;6:HPIGss5lr0r3erPmH4uo2rd8xv7YV7fo8G25DtDdN1Mb7INgO+N5pDjR61UtSSnTPvPDvCueEe07k7o89omSqXaGNt7ILpYHoD6n8F/N58Wv+4Qldmt9u1SrZmjNfCAejaKjwQ7o8mdBM9wYf5PsFC+mqRWU/nyQ7YgwIibTdnVbgWztHCSwhKgr8qazRo+eupa0fWFJj4tYd1/r2Qul2n4MvbswVaAtXx6yvKx6lIDD0czL0gHa0k4yRIkLJdJnf67DLxfF8cxnwTZs7aK5yJ2DsfBY6g86ZV4nzE5wluhR8NEIB8c16VPvR49M6MRIf7EMRZHMGKCXoacL+ni4l+Q1ZqegbGsS47BknefGRL1bURnM7wPzGHVFUoZ0+avUGYA+BwTHBVlICPtPbklvQp6O0nHjeKcG9poD4AhB6mtXqoGqKuJLKU1pNIEfSX4zIdmu6tk7AGDFQ9Ik4gYpiZJMu8ogweoQME4tbIh6zhNRuyJnQhIywVG1v3AI5M3ZlJyIFb7uPok/fCAHtl3PgM1KO2WLcANi9VDSlrXkIK0=;5:FBC9q6wf/5xC6dJ5/u0iinx1nspmUkDg2PKin1oMLCM2M1XfNHEKCOAGNabfBykSemrBR80CwnQm7ufCZFzjL7q1zpVsyuiUhd3dhy4vyPCg/pqQ3dG+6V44JKhcAks/Oiu4vOtp8Ce5fwgY90s4oA==;24:ZEhKEgQShAtwNlt3m3qQpQ4RcKVKFEVNgYX4KOi6KcCQvsBQqVRIxr6WoFhdQ/rDQQTjstp/jkzBMzWlZ3LXLrNtRs06xsmy8kM1TIRCqbg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0368;7:bSPGNLSJE1fonh+9B90P71+OEtK4JIC+44fGk2LTP2HWbqNsGJ6arBPr3xhzjIV/+p6FEdWxz9kSHVqz1dJTbNFLUSshvm11Xz5Uvi1+iNuloUb+ZHaHxbH4GM+KHG1/WjRXJ0S4FxPFkkob6DBMvunxugnRH1u1KbW+kSebKd/bY0okJsunhZGoTiDi6laWTdr26vvEsBJ4fJROcruItub5QVwUn265ZXT6Ujz0a9Cz91zw1N/817imxKSaFyxKIsWsLBMG5ZoIy9nQy8p4tpQJhyxi6tzKYHKmZAG0njyg3toHAu4ogskq8h00tztLJXD5foM0rFYwQ45UbjEzlg==;20:rZpb2BkRnS1Z1IDTKCUo0164WyWzuyaufexvxr5Fzwk4ZmQmIsWd2RZ+vcp/vpc+ykU2LGHE9BkRIuQoXYgQVS8AWyHGB5lPQvlBwOsIrKMZ/fNXBx+V2g9U/FPLYt1R7s+5h39lN9v196zla9q2SbfhxLmpRSEMoEVuQRNEIVY= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2017 15:26:56.2099 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86;Ip=[63.163.107.21];Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0368 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The 05/23/2017 10:46, Jan Kara wrote: > On Mon 22-05-17 10:19:33, adam.manzanares@wdc.com wrote: > > From: Adam Manzanares > > > > Map the aio_reqprio to the bio priority field at > > the point the bio is created from the aio iocb. > > > > The aio_reqprio field of iocb is used as a kernel IO class and priority > > iff the IOCB_FLAG_IOPRIO flag is set on the iocb. > > > > Late last year device IO priority support was introduced to reduce application > > tail latency when iopriority information was set on the process [1]. This > > patch mapped iopriority information to block io requests. This information > > could be leveraged by device drivers to build device specific prioritized > > commands. > > > > The iopriority is set on the iocontext which is a structure associated with > > a process. There exists a system call to set this iopriority information on > > a process, but I believe it would be useful to also have a mechanism to set > > priority on a per io command basis. > > > > The aio iocb has a field for the request priority which is currently not used > > within the kernel. This patch leverages this field to pass a per command > > iopriority value to devices. This work leverages the work in the previously > > referenced patch [1]. When the bio is generated from the iocb we copy the > > iocb iopriority information into the bio, which is eventually turned into a > > request which also gets a copy of the iopriority information. > > > > To demonstrate how to use this feature I modified fio to use the new aio > > feature. The modification to fio can be found at [2] and the new options > > are cmndprioclass and cmndprio. > > > > [1] https://lkml.org/lkml/2016/12/6/495 > > [2] https://github.com/nmtadam/fio/tree/cmnd-prio.v2 > > > > Signed-off-by: Adam Manzanares > > Using aio_flags is problematic because we never checked this for containing > only expected flags. So userspace may be leaving this flag set > unintentionally and currently it doesn't have any adverse effects. So it > was decided to use a reserved word in struct iocb for new flags. And > Goldwyn already did this as a part of his series [1] together with other IO > flags. If you want, you can lobby for merging this particular patch earlier > :). Thanks for pointing this patch out, I missed it. I will base my work off of this patch given that adding new flags to aio_flags is problematic. > > Honza > > [1] https://patchwork.kernel.org/patch/9722865/ > > > > --- > > fs/aio.c | 9 +++++++++ > > fs/block_dev.c | 1 + > > include/linux/fs.h | 1 + > > include/uapi/linux/aio_abi.h | 6 ++++++ > > 4 files changed, 17 insertions(+) > > > > diff --git a/fs/aio.c b/fs/aio.c > > index f52d925..a75a279 100644 > > --- a/fs/aio.c > > +++ b/fs/aio.c > > @@ -1568,6 +1568,15 @@ static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, > > req->common.ki_pos = iocb->aio_offset; > > req->common.ki_complete = aio_complete; > > req->common.ki_flags = iocb_flags(req->common.ki_filp); > > + if (iocb->aio_flags & IOCB_FLAG_IOPRIO) > > + /* > > + * If the IOCB_FLAG_IOPRIO flag of aio_flags is set, > > + * then the aio_reqprio is interpreted as a I/O > > + * scheduling class and priority. This is then set > > + * on the bio that is created from this request, which > > + * enables the priority to be passed to device drivers. > > + */ > > + req->common.ki_ioprio = iocb->aio_reqprio; > > > > if (iocb->aio_flags & IOCB_FLAG_RESFD) { > > /* > > diff --git a/fs/block_dev.c b/fs/block_dev.c > > index 2eca00e..20d18db 100644 > > --- a/fs/block_dev.c > > +++ b/fs/block_dev.c > > @@ -360,6 +360,7 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages) > > bio->bi_iter.bi_sector = pos >> 9; > > bio->bi_private = dio; > > bio->bi_end_io = blkdev_bio_end_io; > > + bio->bi_ioprio = iocb->ki_ioprio; > > > > ret = bio_iov_iter_get_pages(bio, iter); > > if (unlikely(ret)) { > > diff --git a/include/linux/fs.h b/include/linux/fs.h > > index 866c955..83135f0 100644 > > --- a/include/linux/fs.h > > +++ b/include/linux/fs.h > > @@ -276,6 +276,7 @@ struct kiocb { > > void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); > > void *private; > > int ki_flags; > > + u16 ki_ioprio; /* See linux/ioprio.h */ > > }; > > > > static inline bool is_sync_kiocb(struct kiocb *kiocb) > > diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h > > index bb2554f..415980d 100644 > > --- a/include/uapi/linux/aio_abi.h > > +++ b/include/uapi/linux/aio_abi.h > > @@ -54,6 +54,12 @@ enum { > > */ > > #define IOCB_FLAG_RESFD (1 << 0) > > > > +/* > > + * IOCB_FLAG_IOPRIO - Set if the "aio_reqprio" member of the "struct iocb" > > + * is interpreted as an I/O scheduling class and priority > > + */ > > +#define IOCB_FLAG_IOPRIO (1 << 1) > > + > > /* read() from /dev/aio returns these structures. */ > > struct io_event { > > __u64 data; /* the data field from the iocb */ > > -- > > 2.7.4 > > > -- > Jan Kara > SUSE Labs, CR