1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-26 18:43:33 -05:00
No description
Find a file
Jens Axboe 21c6e939a9 blk-mq: unify hctx delay_work and run_work
The only difference between ->run_work and ->delay_work, is that
the latter is used to defer running a queue. This is done by
marking the queue stopped, and scheduling ->delay_work to run
sometime in the future. While the queue is stopped, direct runs
or runs through ->run_work will not run the queue.

If we combine the handlers, then we need to handle two things:

1) If a delayed/stopped run is scheduled, then we should not run
   the queue before that has been completed.
2) If a queue is delayed/stopped, the handler needs to restart
   the queue. Normally a run of a queue with the stopped bit set
   would be a no-op.

Case 1 is handled by modifying a currently pending queue run
to the deadline set by the caller of blk_mq_delay_queue().
Subsequent attempts to queue a queue run will find the work
item already pending, and direct runs will see a stopped queue
as before.

Case 2 is handled by adding a new bit, BLK_MQ_S_START_ON_RUN,
that tells the work handler that it should clear a stopped
queue and run the handler.

Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-28 08:11:43 -06:00
arch Merge branch 'regset' (PTRACE_SETREGSET data leakage) 2017-03-29 08:55:25 -07:00
block blk-mq: unify hctx delay_work and run_work 2017-04-28 08:11:43 -06:00
certs
crypto
Documentation block, bfq: improve responsiveness 2017-04-19 08:30:26 -06:00
drivers nbd: fix use after free on module unload 2017-04-28 08:04:01 -06:00
firmware
fs block: get rid of blk_integrity_revalidate() 2017-04-21 14:17:27 -06:00
include blk-mq: unify hctx delay_work and run_work 2017-04-28 08:11:43 -06:00
init
ipc
kernel block: remove the errors field from struct request 2017-04-20 12:16:10 -06:00
lib sbitmap: add sbitmap_get_shallow() operation 2017-04-14 14:06:52 -06:00
mm bdi: Drop 'parent' argument from bdi_register[_va]() 2017-04-20 12:09:55 -06:00
net net: off by one in inet6_pton() 2017-04-14 14:08:54 -06:00
samples
scripts
security
sound ALSA: hda - Adding a group of pin definition to fix headset problem 2017-03-23 09:39:55 +01:00
tools Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-03-23 11:29:49 -07:00
usr
virt KVM: pci-assign: do not map smm memory slot pages in vt-d page tables 2017-03-28 10:08:54 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: bfq: Add Paolo as maintainer for the BFQ I/O scheduler 2017-04-28 07:38:28 -06:00
Makefile Linux 4.11-rc4 2017-03-26 14:15:16 -07:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.