From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752342AbcHHQgB (ORCPT ); Mon, 8 Aug 2016 12:36:01 -0400 Received: from sf1.bxl.stone.is ([87.238.167.36]:36358 "EHLO sf1.bxl.stone.is" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752208AbcHHQf6 (ORCPT ); Mon, 8 Aug 2016 12:35:58 -0400 X-Greylist: delayed 4177 seconds by postgrey-1.27 at vger.kernel.org; Mon, 08 Aug 2016 12:35:57 EDT Subject: Re: [RFD] I/O scheduling in blk-mq To: Paolo , Jens Axboe , Tejun Heo , Christoph Hellwig , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Ulf Hansson , Linus Walleij , broonie@kernel.org References: <42e6f39b-7b47-963f-69b8-2cf61e889339@linaro.org> From: Bart Van Assche Message-ID: <3f7cbbcf-7ba3-5753-8e08-7035ef56f32f@acm.org> Date: Mon, 8 Aug 2016 08:26:05 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <42e6f39b-7b47-963f-69b8-2cf61e889339@linaro.org> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-PPP-Message-ID: <20160808152609.106057.86674@vz23.stone-is.net> X-PPP-Vhost: bartvanassche.be X-Filter-ID: s0sct1PQhAABKnZB5plbIYrcAt68paBzxGNV4bZScc8DDDH9IcRzs4ldqK5vEMwbuZt+PpRPW1h0 yigPev+a+8eZ3Tg+WoOdU7Vh+1+LjzChGlK8KytWyUz/U0lN1CYaPzPv/5Fhd6FY2Ju/GCj8GCpc 38ucnWOYJSZDJcN5djkEpAbuJEdJAynB+nMH4gPBEjs8Lq9HfByY8p3KnI9WXjCBJ6Th3p5XreIh /h0kEhEgYLr4T0L4nY3qM7unRtlfRpEhmZIrJVxCl3rl1DdBu8oaa9wVrs6OFBlBJS2AKz+f5qqq EZ6Fqq2MkbcInbJDZpHWfC27v3iH2IdwIhr/XNsLx238JXd8QsFUL8BLk+8YiJkl6UcdrFGd9SyC xDXqSpoD4m8g7xNTa5Kga4+S1d1L7QT/XIXtOdrspocTd3f9EwrU5aBPK1DU3Vy8TwG+A4evP6lK stneJfF+ky/AwN2EtnO599mJPiBeyWjRjtHm68YcXsUUzyP1AIFRvQ+tvCrJPmnnTHzVkpybMK7Z TWo8EU2oCOGfZFiy6iB6gGBC12VWk6c5Z0nSw6PPbl0dtLYmRAI/hDtgakdon0KVfMEuDNAevdGj Xo3xLryrUGSE8h2J1jskqdB9zE44MqRu9v6rsx2F1iD9nKhYUPdLXtKT4GmMqXd8zT7U5kPNx+pf ZNvAEvbBRUcHleAJnwBtj4hVGdmGYFZhgTTRVTCm6/Qu5kljZcPH/2Bmc4wS7CwRlUKjtofPEQ88 NY2iyMdag8MVN/qzVXjdRKJxRgfpS98j7SCZJvJZbWJsPUDBKpJzHDeqqFz43py4SDhdaHkWWpqy jFVfZOQAkyS3Of0UFbWnmoi+4LdM6dVWq5tbnTkZLh69ZHxMZx84uWEFqsnqzOaeKD98+/TIQufb RBoQDg== X-Report-Abuse-To: spam@sf1.bxl.stone.is X-Originating-IP: 87.238.162.216 X-SpamExperts-Domain: stone.is X-SpamExperts-Username: 87.238.162.216 Authentication-Results: bxl.stone.is; auth=pass smtp.auth=87.238.162.216@stone.is X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.27) X-Recommended-Action: accept Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/08/16 07:09, Paolo wrote: > 2) To provide per-process service guarantees, an I/O scheduler must > create per-process internal queues. BFQ and CFQ use I/O contexts to > achieve this goal. Is something like that (or exactly the same) > available also in blk-mq? If so, do you have any suggestion, or link to > documentation/code on how to use what is available in blk-mq? Hello Paolo, I/O contexts are, by definition, data structures that are shared by multiple I/O queues. blk-mq reaches high performance by keeping each per-CPU queue independent. This means that using I/O contexts in a blk-mq I/O scheduler would introduce a contention point and probably also a performance bottleneck. So I would appreciate it if multiqueue schedulers would avoid constructs similar to I/O contexts. Thanks, Bart.