Loading MAINTAINERS +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading block/Kconfig +12 −0 Original line number Diff line number Diff line Loading @@ -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" Loading block/Kconfig.iosched +50 −0 Original line number Diff line number Diff line Loading @@ -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 block/Makefile +3 −1 Original line number Diff line number Diff line Loading @@ -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/ Loading @@ -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 Loading @@ -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 block/blk-cgroup.c +18 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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); Loading @@ -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 Loading
MAINTAINERS +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading
block/Kconfig +12 −0 Original line number Diff line number Diff line Loading @@ -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" Loading
block/Kconfig.iosched +50 −0 Original line number Diff line number Diff line Loading @@ -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
block/Makefile +3 −1 Original line number Diff line number Diff line Loading @@ -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/ Loading @@ -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 Loading @@ -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
block/blk-cgroup.c +18 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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); Loading @@ -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