From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751412AbdAYIqj (ORCPT ); Wed, 25 Jan 2017 03:46:39 -0500 Received: from mail-wm0-f49.google.com ([74.125.82.49]:37465 "EHLO mail-wm0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751260AbdAYIqi (ORCPT ); Wed, 25 Jan 2017 03:46:38 -0500 Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: [PATCHSET v4] blk-mq-scheduling framework From: Paolo Valente In-Reply-To: Date: Wed, 25 Jan 2017 09:46:29 +0100 Cc: Jens Axboe , linux-block@vger.kernel.org, Linux-Kernal , Omar Sandoval , Linus Walleij , Ulf Hansson , Mark Brown Message-Id: <15FC1715-D77C-4E31-811B-60898C0C6DAA@linaro.org> References: <1481933536-12844-1-git-send-email-axboe@fb.com> <7A8A5078-E9B8-4EBF-BAB1-9E8EEBF3A043@linaro.org> <37570439-97C8-4009-B143-C5E78789A137@linaro.org> <2028A64C-40E5-403D-B5E9-05863E94B4C5@linaro.org> <59b134de-5d2d-5f16-3118-bdc16bc6e36b@fb.com> <22EDFDE7-71FF-4265-8DDE-B141D3FD26B2@linaro.org> To: Jens Axboe X-Mailer: Apple Mail (2.3124) 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 v0P8kiKF016878 > Il giorno 23 gen 2017, alle ore 18:42, Jens Axboe ha scritto: > > On 01/23/2017 10:04 AM, Paolo Valente wrote: >> >>> Il giorno 18 gen 2017, alle ore 17:21, Jens Axboe ha scritto: >>> >>> On 01/18/2017 08:14 AM, Paolo Valente wrote: >>>> according to the function blk_mq_sched_put_request, the >>>> mq.completed_request hook seems to always be invoked (if set) for a >>>> request for which the mq.put_rq_priv is invoked (if set). >>> >>> Correct, any request that came out of blk_mq_sched_get_request() >>> will always have completed called on it, regardless of whether it >>> had IO started on it or not. >>> >> >> It seems that some request, after being dispatched, happens to have no >> mq.put_rq_priv invoked on it now or then. Is it expected? If it is, >> could you point me to the path through which the end of the life of >> such a request is handled? > > I'm guessing that's a flush request. I added RQF_QUEUED to check for > that, if RQF_QUEUED is set, you know it has come from your get_request > handler. > Exactly, the completion-without-put_rq_priv pattern seems to occur only for requests coming from the flusher, precisely because they have the flag RQF_ELVPRIV unset. Just to understand: why is this flag unset for these requests, if they do have private elevator (bfq) data attached? What am I misunderstanding? Just to be certain: this should be the only case where the completed_request hook is invoked while the put_rq_priv is not, right? Thanks, Paolo > I'm assuming that is it, let me know. > > -- > Jens Axboe >