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

Commit f924ba70 authored by Jens Axboe's avatar Jens Axboe
Browse files

Merge branch 'for-4.11/block' into for-4.11/rq-refactor



Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parents 7a308bb3 400f73b2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -8604,10 +8604,10 @@ S: Maintained
F:	drivers/net/ethernet/netronome/

NETWORK BLOCK DEVICE (NBD)
M:	Markus Pargmann <mpa@pengutronix.de>
M:	Josef Bacik <jbacik@fb.com>
S:	Maintained
L:	linux-block@vger.kernel.org
L:	nbd-general@lists.sourceforge.net
T:	git git://git.pengutronix.de/git/mpa/linux-nbd.git
F:	Documentation/blockdev/nbd.txt
F:	drivers/block/nbd.c
F:	include/uapi/linux/nbd.h
+12 −0
Original line number Diff line number Diff line
@@ -147,6 +147,18 @@ config BLK_WBT_MQ
	Multiqueue currently doesn't have support for IO scheduling,
	enabling this option is recommended.

config BLK_DEBUG_FS
	bool "Block layer debugging information in debugfs"
	default y
	depends on DEBUG_FS
	---help---
	Include block layer debugging information in debugfs. This information
	is mostly useful for kernel developers, but it doesn't incur any cost
	at runtime.

	Unless you are building a kernel for a tiny system, you should
	say Y here.

menu "Partition Types"

source "block/partitions/Kconfig"
+50 −0
Original line number Diff line number Diff line
@@ -63,6 +63,56 @@ config DEFAULT_IOSCHED
	default "cfq" if DEFAULT_CFQ
	default "noop" if DEFAULT_NOOP

config MQ_IOSCHED_DEADLINE
	tristate "MQ deadline I/O scheduler"
	default y
	---help---
	  MQ version of the deadline IO scheduler.

config MQ_IOSCHED_NONE
	bool
	default y

choice
	prompt "Default single-queue blk-mq I/O scheduler"
	default DEFAULT_SQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with a single queue.

	config DEFAULT_SQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_SQ_NONE
		bool "None"

endchoice

config DEFAULT_SQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_SQ_DEADLINE
	default "none" if DEFAULT_SQ_NONE

choice
	prompt "Default multi-queue blk-mq I/O scheduler"
	default DEFAULT_MQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with multiple queues.

	config DEFAULT_MQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_MQ_NONE
		bool "None"

endchoice

config DEFAULT_MQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_MQ_DEADLINE
	default "none" if DEFAULT_MQ_NONE

endmenu

endif
+3 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ obj-$(CONFIG_BLOCK) := bio.o elevator.o blk-core.o blk-tag.o blk-sysfs.o \
			blk-flush.o blk-settings.o blk-ioc.o blk-map.o \
			blk-exec.o blk-merge.o blk-softirq.o blk-timeout.o \
			blk-lib.o blk-mq.o blk-mq-tag.o blk-stat.o \
			blk-mq-sysfs.o blk-mq-cpumap.o ioctl.o \
			blk-mq-sysfs.o blk-mq-cpumap.o blk-mq-sched.o ioctl.o \
			genhd.o scsi_ioctl.o partition-generic.o ioprio.o \
			badblocks.o partitions/

@@ -18,6 +18,7 @@ obj-$(CONFIG_BLK_DEV_THROTTLING) += blk-throttle.o
obj-$(CONFIG_IOSCHED_NOOP)	+= noop-iosched.o
obj-$(CONFIG_IOSCHED_DEADLINE)	+= deadline-iosched.o
obj-$(CONFIG_IOSCHED_CFQ)	+= cfq-iosched.o
obj-$(CONFIG_MQ_IOSCHED_DEADLINE)	+= mq-deadline.o

obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
obj-$(CONFIG_BLK_CMDLINE_PARSER)	+= cmdline-parser.o
@@ -25,3 +26,4 @@ obj-$(CONFIG_BLK_DEV_INTEGRITY) += bio-integrity.o blk-integrity.o t10-pi.o
obj-$(CONFIG_BLK_MQ_PCI)	+= blk-mq-pci.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
+18 −4
Original line number Diff line number Diff line
@@ -1223,6 +1223,9 @@ int blkcg_activate_policy(struct request_queue *q,
	if (blkcg_policy_enabled(q, pol))
		return 0;

	if (q->mq_ops)
		blk_mq_freeze_queue(q);
	else
		blk_queue_bypass_start(q);
pd_prealloc:
	if (!pd_prealloc) {
@@ -1261,6 +1264,9 @@ int blkcg_activate_policy(struct request_queue *q,

	spin_unlock_irq(q->queue_lock);
out_bypass_end:
	if (q->mq_ops)
		blk_mq_unfreeze_queue(q);
	else
		blk_queue_bypass_end(q);
	if (pd_prealloc)
		pol->pd_free_fn(pd_prealloc);
@@ -1284,7 +1290,11 @@ void blkcg_deactivate_policy(struct request_queue *q,
	if (!blkcg_policy_enabled(q, pol))
		return;

	if (q->mq_ops)
		blk_mq_freeze_queue(q);
	else
		blk_queue_bypass_start(q);

	spin_lock_irq(q->queue_lock);

	__clear_bit(pol->plid, q->blkcg_pols);
@@ -1304,6 +1314,10 @@ void blkcg_deactivate_policy(struct request_queue *q,
	}

	spin_unlock_irq(q->queue_lock);

	if (q->mq_ops)
		blk_mq_unfreeze_queue(q);
	else
		blk_queue_bypass_end(q);
}
EXPORT_SYMBOL_GPL(blkcg_deactivate_policy);
Loading