Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a5ac984 authored by Bart Van Assche's avatar Bart Van Assche Committed by Jens Axboe
Browse files

block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n



Exclude zoned block device members from struct request_queue for
CONFIG_BLK_DEV_ZONED == n. Avoid breaking the build by only building
the code that uses these struct request_queue members if
CONFIG_BLK_DEV_ZONED != n.

Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
Cc: Matias Bjorling <mb@lightnvm.io>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7c8542b7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -177,6 +177,10 @@ config BLK_DEBUG_FS
	Unless you are building a kernel for a tiny system, you should
	say Y here.

config BLK_DEBUG_FS_ZONED
       bool
       default BLK_DEBUG_FS && BLK_DEV_ZONED

config BLK_SED_OPAL
	bool "Logic for interfacing with Opal enabled SEDs"
	---help---
+1 −0
Original line number Diff line number Diff line
@@ -34,4 +34,5 @@ obj-$(CONFIG_BLK_MQ_RDMA) += blk-mq-rdma.o
obj-$(CONFIG_BLK_DEV_ZONED)	+= blk-zoned.o
obj-$(CONFIG_BLK_WBT)		+= blk-wbt.o
obj-$(CONFIG_BLK_DEBUG_FS)	+= blk-mq-debugfs.o
obj-$(CONFIG_BLK_DEBUG_FS_ZONED)+= blk-mq-debugfs-zoned.o
obj-$(CONFIG_BLK_SED_OPAL)	+= sed-opal.o
+24 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2017 Western Digital Corporation or its affiliates.
 *
 * This file is released under the GPL.
 */

#include <linux/blkdev.h>
#include "blk-mq-debugfs.h"

int queue_zone_wlock_show(void *data, struct seq_file *m)
{
	struct request_queue *q = data;
	unsigned int i;

	if (!q->seq_zones_wlock)
		return 0;

	for (i = 0; i < q->nr_zones; i++)
		if (test_bit(i, q->seq_zones_wlock))
			seq_printf(m, "%u\n", i);

	return 0;
}
+0 −15
Original line number Diff line number Diff line
@@ -206,21 +206,6 @@ static ssize_t queue_write_hint_store(void *data, const char __user *buf,
	return count;
}

static int queue_zone_wlock_show(void *data, struct seq_file *m)
{
	struct request_queue *q = data;
	unsigned int i;

	if (!q->seq_zones_wlock)
		return 0;

	for (i = 0; i < q->nr_zones; i++)
		if (test_bit(i, q->seq_zones_wlock))
			seq_printf(m, "%u\n", i);

	return 0;
}

static const struct blk_mq_debugfs_attr blk_mq_debugfs_queue_attrs[] = {
	{ "poll_stat", 0400, queue_poll_stat_show },
	{ "requeue_list", 0400, .seq_ops = &queue_requeue_list_seq_ops },
+9 −0
Original line number Diff line number Diff line
@@ -80,4 +80,13 @@ static inline void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hc
}
#endif

#ifdef CONFIG_BLK_DEBUG_FS_ZONED
int queue_zone_wlock_show(void *data, struct seq_file *m);
#else
static inline int queue_zone_wlock_show(void *data, struct seq_file *m)
{
	return 0;
}
#endif

#endif
Loading