<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/block/elevator.c, branch v4.19</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.19</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.19'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2018-09-27T01:57:24Z</updated>
<entry>
<title>block: fix deadline elevator drain for zoned block devices</title>
<updated>2018-09-27T01:57:24Z</updated>
<author>
<name>Damien Le Moal</name>
<email>damien.lemoal@wdc.com</email>
</author>
<published>2018-09-27T01:55:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=854f31ccdd7964c9c2e68da234a3a8aedb51cf6b'/>
<id>urn:sha1:854f31ccdd7964c9c2e68da234a3a8aedb51cf6b</id>
<content type='text'>
When the deadline scheduler is used with a zoned block device, writes
to a zone will be dispatched one at a time. This causes the warning
message:

deadline: forced dispatching is broken (nr_sorted=X), please report this

to be displayed when switching to another elevator with the legacy I/O
path while write requests to a zone are being retained in the scheduler
queue.

Prevent this message from being displayed when executing
elv_drain_elevator() for a zoned block device. __blk_drain_queue() will
loop until all writes are dispatched and completed, resulting in the
desired elevator queue drain without extensive modifications to the
deadline code itself to handle forced-dispatch calls.

Signed-off-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Fixes: 8dc8146f9c92 ("deadline-iosched: Introduce zone locking support")
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: remove unnecessary condition check</title>
<updated>2018-08-28T01:16:06Z</updated>
<author>
<name>Chengguang Xu</name>
<email>cgxu519@gmx.com</email>
</author>
<published>2018-08-27T23:31:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=62d2a1940709198a522a43ff8be8b8f6b3654dec'/>
<id>urn:sha1:62d2a1940709198a522a43ff8be8b8f6b3654dec</id>
<content type='text'>
kmem_cache_destroy() can handle NULL pointer correctly, so there is
no need to check e-&gt;icq_cache before calling kmem_cache_destroy().

Signed-off-by: Chengguang Xu &lt;cgxu519@gmx.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>blk-mq: init hctx sched after update ctx and hctx mapping</title>
<updated>2018-08-21T15:02:55Z</updated>
<author>
<name>Jianchao Wang</name>
<email>jianchao.w.wang@oracle.com</email>
</author>
<published>2018-08-21T07:15:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d48ece209f82c9ce07be942441b53d3fa3664936'/>
<id>urn:sha1:d48ece209f82c9ce07be942441b53d3fa3664936</id>
<content type='text'>
Currently, when update nr_hw_queues, IO scheduler's init_hctx will
be invoked before the mapping between ctx and hctx is adapted
correctly by blk_mq_map_swqueue. The IO scheduler init_hctx (kyber)
may depend on this mapping and get wrong result and panic finally.
A simply way to fix this is that switch the IO scheduler to 'none'
before update the nr_hw_queues, and then switch it back after
update nr_hw_queues. blk_mq_sched_init_/exit_hctx are removed due
to nobody use them any more.

Signed-off-by: Jianchao Wang &lt;jianchao.w.wang@oracle.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: split the blk-mq case from elevator_init</title>
<updated>2018-06-01T13:38:21Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-05-31T17:11:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=131d08e122eaabae028378c0b4da688eb044c6af'/>
<id>urn:sha1:131d08e122eaabae028378c0b4da688eb044c6af</id>
<content type='text'>
There is almost no shared logic, which leads to a very confusing code
flow.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: move sysfs_lock into elevator_init</title>
<updated>2018-06-01T13:38:19Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-05-31T17:11:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=acddf3b308f6b6e23653de02e1abf98f402f1f12'/>
<id>urn:sha1:acddf3b308f6b6e23653de02e1abf98f402f1f12</id>
<content type='text'>
Both callers take just around so function call, so move it in.
Also remove the now pointless blk_mq_sched_init wrapper.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: remove the always unused name argument to elevator_init</title>
<updated>2018-06-01T13:38:17Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-05-31T17:11:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ddb7253254fee6922764043101f8b28b6a00595d'/>
<id>urn:sha1:ddb7253254fee6922764043101f8b28b6a00595d</id>
<content type='text'>
Reported-by: Damien Le Moal &lt;Damien.LeMoal@wdc.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: unexport elevator_init/exit</title>
<updated>2018-06-01T13:38:16Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-05-31T17:11:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a8a275c9c2fb6bc9b45ad3e4187469726e2af7d1'/>
<id>urn:sha1:a8a275c9c2fb6bc9b45ad3e4187469726e2af7d1</id>
<content type='text'>
These are only used by the block core.  Also move the declarations to
block/blk.h.

Reported-by: Damien Le Moal &lt;Damien.LeMoal@wdc.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: move initialization of elevator-related fields to blk_alloc_queue_node</title>
<updated>2018-06-01T13:38:14Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-05-31T17:11:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cbf62af3537a5a735594983a87112a8cd08480a3'/>
<id>urn:sha1:cbf62af3537a5a735594983a87112a8cd08480a3</id>
<content type='text'>
No point in doing this in elevator_init.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reported-by: Damien Le Moal &lt;Damien.LeMoal@wdc.com&gt;
Reviewed-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: Document scheduler modification locking requirements</title>
<updated>2018-01-18T19:54:42Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bart.vanassche@wdc.com</email>
</author>
<published>2018-01-17T19:48:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=14a23498ba97683c6790b1bcd8b2cdfe9ad99797'/>
<id>urn:sha1:14a23498ba97683c6790b1bcd8b2cdfe9ad99797</id>
<content type='text'>
This patch does not change any functionality.

Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Bart Van Assche &lt;bart.vanassche@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>block: Unexport elv_register_queue() and elv_unregister_queue()</title>
<updated>2018-01-18T19:54:41Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bart.vanassche@wdc.com</email>
</author>
<published>2018-01-17T19:48:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=83d016ac86428dbca8a62d3e4fdc29e3ea39e535'/>
<id>urn:sha1:83d016ac86428dbca8a62d3e4fdc29e3ea39e535</id>
<content type='text'>
These two functions are only called from inside the block layer so
unexport them.

Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Bart Van Assche &lt;bart.vanassche@wdc.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
</feed>
