From patchwork Thu Nov 8 16:06:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 10674557 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2136815E9 for ; Thu, 8 Nov 2018 16:06:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 102572DC32 for ; Thu, 8 Nov 2018 16:06:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0402B2DC51; Thu, 8 Nov 2018 16:06:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8ACB62DC32 for ; Thu, 8 Nov 2018 16:06:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727304AbeKIBmY (ORCPT ); Thu, 8 Nov 2018 20:42:24 -0500 Received: from mail-it1-f171.google.com ([209.85.166.171]:35332 "EHLO mail-it1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726700AbeKIBmY (ORCPT ); Thu, 8 Nov 2018 20:42:24 -0500 Received: by mail-it1-f171.google.com with SMTP id v11so2415430itj.0 for ; Thu, 08 Nov 2018 08:06:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id; bh=4OcIkgFLy0GwcVNdnjXz1KAZi1mMRK8luqYUT+6EVJc=; b=r3FO5GYbTU73llTCdINRmzFCxMVELWJT5CBsXIwveGm35H2lAJRxHMcm/O7f1eW0Lt F2hPT4RNZl1gvF/PeSlA7VJOwEVcRA+2XXjDqX7s1et4ii+aak0UTLIAW3S3jHK0AbU/ hSBlp+0exdVVrWziH13IAt1/7wggheM/7y2VuE2Ls+1pz7PWqsPZW+oFl5e3NoEkjfdk bW1WL0YikDUQMf6tK2gzhq1HzSoYyA9jR1OBw0FK1uwlzF7TdymxfQbgG55OQiE/PV/5 pNF4EMFLNcaUBmIQDC540TPdq6+kkMqoj6J88KIQxVGQuDJ85hTiOC8Yn7ROpm8KUWzN WkDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=4OcIkgFLy0GwcVNdnjXz1KAZi1mMRK8luqYUT+6EVJc=; b=JgGtsrL+pdKB50MY9H25R0Xf73ROfL11Kz6BthazIFGcJMLiekDL1q9AqKDHDD6QXi S7HXCNYQplXmIlhCU69Vckld8i0aB0BYeuCfSdpbZi57JROLFnAh3XltRc392upiDADR UaewC8hj38cTbk39GF/y5XGN/WDm3EHwADGojF1I1izTmE3dweDWFQ0Bb5AOvZSg9xAt T2gRh8esXhHL7lVy3krmXF542Z6vYsliqhF4l5WLkDCbQoy7AaK5ZvNbrshkXpaWPAdC 7pMt9MGWG5iCAxZadBnPFwtD3C+Oung7G5fduJ547Et4kPlrhp1/CkreFXETZkZ0Vr5T XR8g== X-Gm-Message-State: AGRZ1gJTuu632/NfqDkGP/OKoEfKZI7Fy2edlNL2GUWZNdKJtqtGwLS/ 17D0D6KMAjYc0i4ANa6bZusTXglEVBg= X-Google-Smtp-Source: AJdET5fdmrPBNjQQwjTZM0RLTaj9k/o8QLraQjLNOS27/BNnkpoFkxZqFHTWBUqALpF1bg2yj3x1HA== X-Received: by 2002:a02:29cb:: with SMTP id p194-v6mr4678150jap.102.1541693173564; Thu, 08 Nov 2018 08:06:13 -0800 (PST) Received: from x1.thefacebook.com ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id g8-v6sm1821959iof.11.2018.11.08.08.06.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Nov 2018 08:06:11 -0800 (PST) From: Jens Axboe To: linux-block@vger.kernel.org Subject: [PATCHSET v2 0/2] Add queue_is_busy helper Date: Thu, 8 Nov 2018 09:06:06 -0700 Message-Id: <20181108160609.27568-1-axboe@kernel.dk> X-Mailer: git-send-email 2.17.1 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP DM currently uses atomic inc/dec to maintain a busy count of IO on a given device. For the dm-mq path, we can replace this with helper that just checks the state of the tags on the device. First patch is a prep patch that allows the iteration helpers to return true/false, like we support internally in sbitmap. For a busy check we don't care about how many requests are busy, just if some are or not. Hence we can stop iterating tags as soon as we find one that is allocated. Changes since v1: - Remember to check if the queue matches, otherwise we could be returning false positive for shared tag sets. block/blk-mq-debugfs.c | 4 +++- block/blk-mq-tag.c | 4 ++-- block/blk-mq.c | 42 +++++++++++++++++++++++++++++++++++++----- include/linux/blk-mq.h | 6 ++++-- 4 files changed, 46 insertions(+), 10 deletions(-)