From patchwork Thu Oct 11 07:09:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Le Moal X-Patchwork-Id: 10636187 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 8EB8369B1 for ; Thu, 11 Oct 2018 07:10:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 768912AE79 for ; Thu, 11 Oct 2018 07:10:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6A7442AEFF; Thu, 11 Oct 2018 07:10:10 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,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 0CB9C2AE79 for ; Thu, 11 Oct 2018 07:10:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727233AbeJKOgF (ORCPT ); Thu, 11 Oct 2018 10:36:05 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:12787 "EHLO esa1.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726781AbeJKOgE (ORCPT ); Thu, 11 Oct 2018 10:36:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1539241808; x=1570777808; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=2igmNZIVsiAoe/emtdTPnMIZoU0CN22a2cmRIalyUb0=; b=CwMTyEpabpoT5CAXv7z1mwTkqlO1pLnGxU4E0CQMmO4zQnYpGP9yorMz aL2vGDBDIPmlaQ6OSnCHClQYUBniFrG9+N/VJO4n2o/kgFNH7229/xzbo 7wse8INw7iqrYUGPraKsK/K4S/jRXFGvIu6iiOu11XkiY5DkkthlYTv4p BsAjYhPw+RjA0Wf1NpOdr2kQxKjik6JpzyrJSx4NBI9cNfqexDBlpRJIi K1OWdZOvFQq4/7CFmXys+dpg6oNHHpD43oTgSOEanEkWbvCVC3EvCpGnv e/a866XBJ67hEGi1K5DjFNSDDpbLc+a0kEmtgsBGygVdEXtT3Hq4HbvPi Q==; X-IronPort-AV: E=Sophos;i="5.54,367,1534780800"; d="scan'208";a="196047585" Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 11 Oct 2018 15:10:08 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP; 10 Oct 2018 23:55:07 -0700 Received: from washi.fujisawa.hgst.com ([10.149.53.254]) by uls-op-cesaip02.wdc.com with ESMTP; 11 Oct 2018 00:10:08 -0700 From: Damien Le Moal To: linux-block@vger.kernel.org, Jens Axboe , linux-scsi@vger.kernel.org, "Martin K . Petersen" , dm-devel@redhat.com, Mike Snitzer Cc: Christoph Hellwig , Matias Bjorling Subject: [PATCH v2 09/11] block: Expose queue nr_zones in sysfs Date: Thu, 11 Oct 2018 16:09:50 +0900 Message-Id: <20181011070952.13248-10-damien.lemoal@wdc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181011070952.13248-1-damien.lemoal@wdc.com> References: <20181011070952.13248-1-damien.lemoal@wdc.com> 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 Expose through sysfs the nr_zones field of a zoned block device request queue. This represents the total number of zones of the device calculated using the known disk capacity and zone size. Exposing this value helps in debugging disk issues as well as facilitating scripts based use of the disk (e.g. blktests). Signed-off-by: Damien Le Moal --- block/blk-sysfs.c | 11 +++++++++++ include/linux/blkdev.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 3772671cf2bc..f7060a938bf9 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -300,6 +300,11 @@ static ssize_t queue_zoned_show(struct request_queue *q, char *page) } } +static ssize_t queue_nr_zones_show(struct request_queue *q, char *page) +{ + return queue_var_show(q->nr_zones, page); +} + static ssize_t queue_nomerges_show(struct request_queue *q, char *page) { return queue_var_show((blk_queue_nomerges(q) << 1) | @@ -637,6 +642,11 @@ static struct queue_sysfs_entry queue_zoned_entry = { .show = queue_zoned_show, }; +static struct queue_sysfs_entry queue_nr_zones_entry = { + .attr = {.name = "nr_zones", .mode = 0444 }, + .show = queue_nr_zones_show, +}; + static struct queue_sysfs_entry queue_nomerges_entry = { .attr = {.name = "nomerges", .mode = 0644 }, .show = queue_nomerges_show, @@ -727,6 +737,7 @@ static struct attribute *default_attrs[] = { &queue_write_zeroes_max_entry.attr, &queue_nonrot_entry.attr, &queue_zoned_entry.attr, + &queue_nr_zones_entry.attr, &queue_nomerges_entry.attr, &queue_rq_affinity_entry.attr, &queue_iostats_entry.attr, diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index c24969b1741b..23ab53d2d4ca 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -593,7 +593,6 @@ struct request_queue { struct queue_limits limits; -#ifdef CONFIG_BLK_DEV_ZONED /* * Zoned block device information for request dispatch control. * nr_zones is the total number of zones of the device. This is always @@ -612,6 +611,7 @@ struct request_queue { * blk_mq_unfreeze_queue(). */ unsigned int nr_zones; +#ifdef CONFIG_BLK_DEV_ZONED unsigned long *seq_zones_bitmap; unsigned long *seq_zones_wlock; #endif /* CONFIG_BLK_DEV_ZONED */