From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CAFD9C4345E for ; Sun, 26 Jul 2020 15:35:57 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8277720714 for ; Sun, 26 Jul 2020 15:35:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="CykWczfD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8277720714 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2D6808D0003; Sun, 26 Jul 2020 11:35:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 287CE6B0010; Sun, 26 Jul 2020 11:35:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 176068D0003; Sun, 26 Jul 2020 11:35:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0160.hostedemail.com [216.40.44.160]) by kanga.kvack.org (Postfix) with ESMTP id 0224D6B000E for ; Sun, 26 Jul 2020 11:35:56 -0400 (EDT) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id BDFEF184F445F for ; Sun, 26 Jul 2020 15:35:56 +0000 (UTC) X-FDA: 77080627512.01.cream79_5015dd226f59 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin01.hostedemail.com (Postfix) with ESMTP id 9CCB110058CB2 for ; Sun, 26 Jul 2020 15:04:02 +0000 (UTC) X-HE-Tag: cream79_5015dd226f59 X-Filterd-Recvd-Size: 12149 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf43.hostedemail.com (Postfix) with ESMTP for ; Sun, 26 Jul 2020 15:04:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=fgrmtzY2RTn3uqEl7NE2KYNoJXb5Vjc7RCDyRtLWKlU=; b=CykWczfDyPtUotuOuKPDdIuXBa Yfla4i/HN43Ko24+UeW/GEb+v9iMLUkS6Cnnof4Ak1EGSzCF0sc5gXLWw3hX9SSRwPMVm2Jca+MtY SrQWSNAC1px8i8UXskCjgLc3vqH8AJCgtNO5uTvxG6LVnRfAtWCkGkaNBMzFju/BjIbX6AZ/VKba5 7nAM2bCmpf8WrTBZyx4cFAIA/LbeFcFWz3JJXB3/PV5X13XLYkcWpWhFQqQ2WCZN3EeoXi8NuUf2n jeBlL2+B5ro2/cMFSZ++rBzQ2m5+PaWBNJSfYU2Bam2D28mUEximIjMGeVY2BwsCz+vlGXb1d9WVa 8myBKyzQ==; Received: from [2001:4bb8:18c:2acc:2375:88ff:9f84:118d] (helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jziBo-0005hA-G1; Sun, 26 Jul 2020 15:03:48 +0000 From: Christoph Hellwig To: Jens Axboe Cc: Song Liu , Hans de Goede , Richard Weinberger , Minchan Kim , linux-mtd@lists.infradead.org, dm-devel@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, drbd-dev@lists.linbit.com, linux-raid@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, Johannes Thumshirn Subject: [PATCH 08/14] block: add helper macros for queue sysfs entries Date: Sun, 26 Jul 2020 17:03:27 +0200 Message-Id: <20200726150333.305527-9-hch@lst.de> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200726150333.305527-1-hch@lst.de> References: <20200726150333.305527-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Queue-Id: 9CCB110058CB2 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Add two helpers macros to avoid boilerplate code for the queue sysfs entries. Signed-off-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn --- block/blk-sysfs.c | 248 +++++++++++----------------------------------- 1 file changed, 58 insertions(+), 190 deletions(-) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index cfbb039da8751f..9bb4e42fb73265 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -551,201 +551,69 @@ static ssize_t queue_dax_show(struct request_queue= *q, char *page) return queue_var_show(blk_queue_dax(q), page); } =20 -static struct queue_sysfs_entry queue_requests_entry =3D { - .attr =3D {.name =3D "nr_requests", .mode =3D 0644 }, - .show =3D queue_requests_show, - .store =3D queue_requests_store, -}; - -static struct queue_sysfs_entry queue_ra_entry =3D { - .attr =3D {.name =3D "read_ahead_kb", .mode =3D 0644 }, - .show =3D queue_ra_show, - .store =3D queue_ra_store, -}; - -static struct queue_sysfs_entry queue_max_sectors_entry =3D { - .attr =3D {.name =3D "max_sectors_kb", .mode =3D 0644 }, - .show =3D queue_max_sectors_show, - .store =3D queue_max_sectors_store, -}; +#define QUEUE_RO_ENTRY(_prefix, _name) \ +static struct queue_sysfs_entry _prefix##_entry =3D { \ + .attr =3D { .name =3D _name, .mode =3D 0444 }, \ + .show =3D _prefix##_show, \ +}; + +#define QUEUE_RW_ENTRY(_prefix, _name) \ +static struct queue_sysfs_entry _prefix##_entry =3D { \ + .attr =3D { .name =3D _name, .mode =3D 0644 }, \ + .show =3D _prefix##_show, \ + .store =3D _prefix##_store, \ +}; + +QUEUE_RW_ENTRY(queue_requests, "nr_requests"); +QUEUE_RW_ENTRY(queue_ra, "read_ahead_kb"); +QUEUE_RW_ENTRY(queue_max_sectors, "max_sectors_kb"); +QUEUE_RO_ENTRY(queue_max_hw_sectors, "max_hw_sectors_kb"); +QUEUE_RO_ENTRY(queue_max_segments, "max_segments"); +QUEUE_RO_ENTRY(queue_max_integrity_segments, "max_integrity_segments"); +QUEUE_RO_ENTRY(queue_max_segment_size, "max_segment_size"); +QUEUE_RW_ENTRY(elv_iosched, "scheduler"); + +QUEUE_RO_ENTRY(queue_logical_block_size, "logical_block_size"); +QUEUE_RO_ENTRY(queue_physical_block_size, "physical_block_size"); +QUEUE_RO_ENTRY(queue_chunk_sectors, "chunk_sectors"); +QUEUE_RO_ENTRY(queue_io_min, "minimum_io_size"); +QUEUE_RO_ENTRY(queue_io_opt, "optimal_io_size"); + +QUEUE_RO_ENTRY(queue_max_discard_segments, "max_discard_segments"); +QUEUE_RO_ENTRY(queue_discard_granularity, "discard_granularity"); +QUEUE_RO_ENTRY(queue_discard_max_hw, "discard_max_hw_bytes"); +QUEUE_RW_ENTRY(queue_discard_max, "discard_max_bytes"); +QUEUE_RO_ENTRY(queue_discard_zeroes_data, "discard_zeroes_data"); + +QUEUE_RO_ENTRY(queue_write_same_max, "write_same_max_bytes"); +QUEUE_RO_ENTRY(queue_write_zeroes_max, "write_zeroes_max_bytes"); +QUEUE_RO_ENTRY(queue_zone_append_max, "zone_append_max_bytes"); + +QUEUE_RO_ENTRY(queue_zoned, "zoned"); +QUEUE_RO_ENTRY(queue_nr_zones, "nr_zones"); +QUEUE_RO_ENTRY(queue_max_open_zones, "max_open_zones"); +QUEUE_RO_ENTRY(queue_max_active_zones, "max_active_zones"); + +QUEUE_RW_ENTRY(queue_nomerges, "nomerges"); +QUEUE_RW_ENTRY(queue_rq_affinity, "rq_affinity"); +QUEUE_RW_ENTRY(queue_poll, "io_poll"); +QUEUE_RW_ENTRY(queue_poll_delay, "io_poll_delay"); +QUEUE_RW_ENTRY(queue_wc, "write_cache"); +QUEUE_RO_ENTRY(queue_fua, "fua"); +QUEUE_RO_ENTRY(queue_dax, "dax"); +QUEUE_RW_ENTRY(queue_io_timeout, "io_timeout"); +QUEUE_RW_ENTRY(queue_wb_lat, "wbt_lat_usec"); =20 -static struct queue_sysfs_entry queue_max_hw_sectors_entry =3D { - .attr =3D {.name =3D "max_hw_sectors_kb", .mode =3D 0444 }, - .show =3D queue_max_hw_sectors_show, -}; - -static struct queue_sysfs_entry queue_max_segments_entry =3D { - .attr =3D {.name =3D "max_segments", .mode =3D 0444 }, - .show =3D queue_max_segments_show, -}; - -static struct queue_sysfs_entry queue_max_discard_segments_entry =3D { - .attr =3D {.name =3D "max_discard_segments", .mode =3D 0444 }, - .show =3D queue_max_discard_segments_show, -}; - -static struct queue_sysfs_entry queue_max_integrity_segments_entry =3D { - .attr =3D {.name =3D "max_integrity_segments", .mode =3D 0444 }, - .show =3D queue_max_integrity_segments_show, -}; - -static struct queue_sysfs_entry queue_max_segment_size_entry =3D { - .attr =3D {.name =3D "max_segment_size", .mode =3D 0444 }, - .show =3D queue_max_segment_size_show, -}; - -static struct queue_sysfs_entry queue_iosched_entry =3D { - .attr =3D {.name =3D "scheduler", .mode =3D 0644 }, - .show =3D elv_iosched_show, - .store =3D elv_iosched_store, -}; +#ifdef CONFIG_BLK_DEV_THROTTLING_LOW +QUEUE_RW_ENTRY(blk_throtl_sample, "throttle_sample_time"); +#endif =20 +/* legacy alias for logical_block_size: */ static struct queue_sysfs_entry queue_hw_sector_size_entry =3D { .attr =3D {.name =3D "hw_sector_size", .mode =3D 0444 }, .show =3D queue_logical_block_size_show, }; =20 -static struct queue_sysfs_entry queue_logical_block_size_entry =3D { - .attr =3D {.name =3D "logical_block_size", .mode =3D 0444 }, - .show =3D queue_logical_block_size_show, -}; - -static struct queue_sysfs_entry queue_physical_block_size_entry =3D { - .attr =3D {.name =3D "physical_block_size", .mode =3D 0444 }, - .show =3D queue_physical_block_size_show, -}; - -static struct queue_sysfs_entry queue_chunk_sectors_entry =3D { - .attr =3D {.name =3D "chunk_sectors", .mode =3D 0444 }, - .show =3D queue_chunk_sectors_show, -}; - -static struct queue_sysfs_entry queue_io_min_entry =3D { - .attr =3D {.name =3D "minimum_io_size", .mode =3D 0444 }, - .show =3D queue_io_min_show, -}; - -static struct queue_sysfs_entry queue_io_opt_entry =3D { - .attr =3D {.name =3D "optimal_io_size", .mode =3D 0444 }, - .show =3D queue_io_opt_show, -}; - -static struct queue_sysfs_entry queue_discard_granularity_entry =3D { - .attr =3D {.name =3D "discard_granularity", .mode =3D 0444 }, - .show =3D queue_discard_granularity_show, -}; - -static struct queue_sysfs_entry queue_discard_max_hw_entry =3D { - .attr =3D {.name =3D "discard_max_hw_bytes", .mode =3D 0444 }, - .show =3D queue_discard_max_hw_show, -}; - -static struct queue_sysfs_entry queue_discard_max_entry =3D { - .attr =3D {.name =3D "discard_max_bytes", .mode =3D 0644 }, - .show =3D queue_discard_max_show, - .store =3D queue_discard_max_store, -}; - -static struct queue_sysfs_entry queue_discard_zeroes_data_entry =3D { - .attr =3D {.name =3D "discard_zeroes_data", .mode =3D 0444 }, - .show =3D queue_discard_zeroes_data_show, -}; - -static struct queue_sysfs_entry queue_write_same_max_entry =3D { - .attr =3D {.name =3D "write_same_max_bytes", .mode =3D 0444 }, - .show =3D queue_write_same_max_show, -}; - -static struct queue_sysfs_entry queue_write_zeroes_max_entry =3D { - .attr =3D {.name =3D "write_zeroes_max_bytes", .mode =3D 0444 }, - .show =3D queue_write_zeroes_max_show, -}; - -static struct queue_sysfs_entry queue_zone_append_max_entry =3D { - .attr =3D {.name =3D "zone_append_max_bytes", .mode =3D 0444 }, - .show =3D queue_zone_append_max_show, -}; - -static struct queue_sysfs_entry queue_zoned_entry =3D { - .attr =3D {.name =3D "zoned", .mode =3D 0444 }, - .show =3D queue_zoned_show, -}; - -static struct queue_sysfs_entry queue_nr_zones_entry =3D { - .attr =3D {.name =3D "nr_zones", .mode =3D 0444 }, - .show =3D queue_nr_zones_show, -}; - -static struct queue_sysfs_entry queue_max_open_zones_entry =3D { - .attr =3D {.name =3D "max_open_zones", .mode =3D 0444 }, - .show =3D queue_max_open_zones_show, -}; - -static struct queue_sysfs_entry queue_max_active_zones_entry =3D { - .attr =3D {.name =3D "max_active_zones", .mode =3D 0444 }, - .show =3D queue_max_active_zones_show, -}; - -static struct queue_sysfs_entry queue_nomerges_entry =3D { - .attr =3D {.name =3D "nomerges", .mode =3D 0644 }, - .show =3D queue_nomerges_show, - .store =3D queue_nomerges_store, -}; - -static struct queue_sysfs_entry queue_rq_affinity_entry =3D { - .attr =3D {.name =3D "rq_affinity", .mode =3D 0644 }, - .show =3D queue_rq_affinity_show, - .store =3D queue_rq_affinity_store, -}; - -static struct queue_sysfs_entry queue_poll_entry =3D { - .attr =3D {.name =3D "io_poll", .mode =3D 0644 }, - .show =3D queue_poll_show, - .store =3D queue_poll_store, -}; - -static struct queue_sysfs_entry queue_poll_delay_entry =3D { - .attr =3D {.name =3D "io_poll_delay", .mode =3D 0644 }, - .show =3D queue_poll_delay_show, - .store =3D queue_poll_delay_store, -}; - -static struct queue_sysfs_entry queue_wc_entry =3D { - .attr =3D {.name =3D "write_cache", .mode =3D 0644 }, - .show =3D queue_wc_show, - .store =3D queue_wc_store, -}; - -static struct queue_sysfs_entry queue_fua_entry =3D { - .attr =3D {.name =3D "fua", .mode =3D 0444 }, - .show =3D queue_fua_show, -}; - -static struct queue_sysfs_entry queue_dax_entry =3D { - .attr =3D {.name =3D "dax", .mode =3D 0444 }, - .show =3D queue_dax_show, -}; - -static struct queue_sysfs_entry queue_io_timeout_entry =3D { - .attr =3D {.name =3D "io_timeout", .mode =3D 0644 }, - .show =3D queue_io_timeout_show, - .store =3D queue_io_timeout_store, -}; - -static struct queue_sysfs_entry queue_wb_lat_entry =3D { - .attr =3D {.name =3D "wbt_lat_usec", .mode =3D 0644 }, - .show =3D queue_wb_lat_show, - .store =3D queue_wb_lat_store, -}; - -#ifdef CONFIG_BLK_DEV_THROTTLING_LOW -static struct queue_sysfs_entry throtl_sample_time_entry =3D { - .attr =3D {.name =3D "throttle_sample_time", .mode =3D 0644 }, - .show =3D blk_throtl_sample_time_show, - .store =3D blk_throtl_sample_time_store, -}; -#endif - static struct attribute *queue_attrs[] =3D { &queue_requests_entry.attr, &queue_ra_entry.attr, @@ -755,7 +623,7 @@ static struct attribute *queue_attrs[] =3D { &queue_max_discard_segments_entry.attr, &queue_max_integrity_segments_entry.attr, &queue_max_segment_size_entry.attr, - &queue_iosched_entry.attr, + &elv_iosched_entry.attr, &queue_hw_sector_size_entry.attr, &queue_logical_block_size_entry.attr, &queue_physical_block_size_entry.attr, @@ -786,7 +654,7 @@ static struct attribute *queue_attrs[] =3D { &queue_poll_delay_entry.attr, &queue_io_timeout_entry.attr, #ifdef CONFIG_BLK_DEV_THROTTLING_LOW - &throtl_sample_time_entry.attr, + &blk_throtl_sample_time_entry.attr, #endif NULL, }; --=20 2.27.0