Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937672AbdDSPna (ORCPT ); Wed, 19 Apr 2017 11:43:30 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:13371 "EHLO esa1.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965432AbdDSPnY (ORCPT ); Wed, 19 Apr 2017 11:43:24 -0400 X-IronPort-AV: E=Sophos;i="5.37,221,1488816000"; d="scan'208";a="114070045" From: Bart Van Assche To: "paolo.valente@linaro.org" CC: "linux-kernel@vger.kernel.org" , "aherrmann@suse.com" , "linux-block@vger.kernel.org" , "axboe@kernel.dk" Subject: Re: bfq-mq performance comparison to cfq Thread-Topic: bfq-mq performance comparison to cfq Thread-Index: AQHSsdm2Eefag5Pjc0GpWkttf0cWdaHMUjWAgACRbYA= Date: Wed, 19 Apr 2017 15:43:21 +0000 Message-ID: <1492616599.2543.2.camel@sandisk.com> References: <20170410090538.GA11473@suselix.suse.de> <82BCEB46-8D05-42DA-AE06-3426895A7842@linaro.org> <1491837330.4199.1.camel@sandisk.com> <4C1ABADD-6751-45E4-8DA1-ACA5A9E1379D@linaro.org> In-Reply-To: <4C1ABADD-6751-45E4-8DA1-ACA5A9E1379D@linaro.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=sandisk.com; x-originating-ip: [63.163.107.100] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CY1PR0401MB1533;7:K8i7KPijOsf0g5caPaV5iOwQqfIdCAEyPm+wrwJKKOlT32WJZkb5qDkfDg0Y7pX+RHM0SCbpL1pY9TEQLXIb4n27cK9eQK69YvC8hxpZMgc1dc8uWCQl83ZV8rWo+CIAfoLzkgiWGr/pZN9FBiLInGAcadqdHNu1WuX0jich4sqYP6TKjfYc03SoWsPZzOji5QW0h+c3njOniEdM3ysTTSW80z9LJJe+18l61eGqgqlBwsPHVPxjeQaYICMCZ9qfk4wgvgqhiqI+cckGMYY2NuPZUdf6gQgiDHFdnsYrp4eRa19CSjRS9FCIKdGhS6cqmHaTUTfXa38ukt9n3GzBzw==;20:0wAbIEpI2CX/qiS0Sero1wF6JKq8W5108QQ6WN7ymP8fAm0Nu25eTSzPjkoSwmm6fu0hqiqLrfa7KsGRoq4Jxhz8+NUAALfO0H4Sm4EO+I+eA90cL2YMrB8JgZf/t19AmRz2L0NF6qdLQ+ebak4sBNpVk+AP+fJnJZ0rv7BcO48= x-ms-office365-filtering-correlation-id: ed33df09-6766-4f98-37ed-08d4873acef5 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081);SRVR:CY1PR0401MB1533; wdcipoutbound: EOP-TRUE x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(20558992708506)(278428928389397)(42932892334569); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123555025)(20161123564025)(6072148);SRVR:CY1PR0401MB1533;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0401MB1533; x-forefront-prvs: 028256169F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(39450400003)(39860400002)(39850400002)(39400400002)(39410400002)(39840400002)(377424004)(24454002)(305945005)(122556002)(2351001)(33646002)(3846002)(6116002)(102836003)(86362001)(66066001)(5660300001)(8936002)(81166006)(8676002)(93886004)(2900100001)(76176999)(54356999)(50986999)(103116003)(36756003)(4326008)(38730400002)(2950100002)(6436002)(6512007)(5640700003)(2501003)(229853002)(110136004)(25786009)(99286003)(6246003)(2906002)(53936002)(3280700002)(6506006)(54906002)(3660700001)(6916009)(6486002)(77096006)(189998001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0401MB1533;H:CY1PR0401MB1536.namprd04.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-ID: <8CD0622994819D4FB1BD398E28244F05@namprd04.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2017 15:43:21.3580 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0401MB1533 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v3JFhml9020050 Content-Length: 2094 Lines: 37 On Wed, 2017-04-19 at 09:02 +0200, Paolo Valente wrote: > > Il giorno 19 apr 2017, alle ore 07:01, Bart Van Assche ha scritto: > > What API was used by the Android application to tell the I/O scheduler > > to optimize for latency? Do you think that it would be sufficient if the > > application uses the ioprio_set() system call to set the I/O priority to > > IOPRIO_CLASS_RT? > > That's exactly the hack we are using in our prototype. However, it > can only be a temporary hack, because it mixes two slightly different > concepts: 1) the activation of weight raising and other mechanisms for > reducing latency for the target app, 2) the assignment of a different > priority class, which (cleanly) means just that processes in a lower > priority class will be served only when the processes of the target > app have no pending I/O request. Finding a clean boosting API would > be one of the main steps to turn our prototype into a usable solution. Hello Paolo, Sorry but I do not agree that you call this use of I/O priorities a hack. I also do not agree that I/O requests submitted by processes in a lower priority class will only be served by the I/O scheduler when there are no pending requests in a higher class. It wouldn't be that hard to modify I/O schedulers that support I/O priorities to avoid the starvation you referred to. What I expect that will happen is that sooner or later a Linux distributor will start receiving bug reports about the heuristics for detecting interactive and streaming applications and that the person who will work on that bug report will realize that it will be easier to remove those heuristics from BFQ and to modify streaming applications and the software that starts interactive applications (e.g. a window manager) to use a higher I/O priority. Please also note that what I described above may require to introduce additional I/O priorities in the Linux kernel next to the existing I/O priorities RT, BE and NONE and that this may require to map multiple of these priorities onto the same drive priority. Bart.