From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752792AbdATO2f (ORCPT ); Fri, 20 Jan 2017 09:28:35 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:33674 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752124AbdATO2c (ORCPT ); Fri, 20 Jan 2017 09:28:32 -0500 Date: Fri, 20 Jan 2017 07:28:26 -0700 From: Jens Axboe To: Paolo Valente CC: , Linux-Kernal , Subject: Re: [PATCH 7/8] mq-deadline: add blk-mq adaptation of the deadline IO scheduler Message-ID: <20170120142826.GB18162@kernel.dk> References: <1481933536-12844-1-git-send-email-axboe@fb.com> <1481933536-12844-8-git-send-email-axboe@fb.com> <2E4B3957-783C-41D4-A1BD-C329F6BDA65D@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <2E4B3957-783C-41D4-A1BD-C329F6BDA65D@linaro.org> X-Originating-IP: [192.168.54.13] X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-01-20_11:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 20 2017, Paolo Valente wrote: > > > Il giorno 17 dic 2016, alle ore 01:12, Jens Axboe ha scritto: > > > > This is basically identical to deadline-iosched, except it registers > > as a MQ capable scheduler. This is still a single queue design. > > > > Jens, > no spin_lock_irq* in the code. So, also request dispatches are > guaranteed to never be executed in IRQ context? I'm asking this > question to understand whether I'm missing something that, even in > BFQ, would somehow allow me to not disable irqs in critical sections, > even if there is the slice_idle-expiration handler. Be patient with > my ignorance. Yes, dispatches will never happen from IRQ context. blk-mq was designed so we didn't have to use irq disabling locks. That said, certain parts of the API can be called from IRQ context. put_request and the completion parts, for instance. But blk-mq doesn't need to grab any locks there, and neither does mq-deadline. This might be different from bfq. lockdep can be a big help there. -- Jens Axboe