<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/include/linux/elevator.h, branch v4.12-rc2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kobert.dev/pm24.git/atom?h=v4.12-rc2</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom?h=v4.12-rc2'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2017-05-04T14:24:40Z</updated>
<entry>
<title>blk-mq-debugfs: allow schedulers to register debugfs attributes</title>
<updated>2017-05-04T14:24:40Z</updated>
<author>
<name>Omar Sandoval</name>
<email>osandov@fb.com</email>
</author>
<published>2017-05-04T14:24:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=d332ce091813d11a46144354baa72b755833392f'/>
<id>urn:sha1:d332ce091813d11a46144354baa72b755833392f</id>
<content type='text'>
This provides the infrastructure for schedulers to expose their internal
state through debugfs. We add a list of queue attributes and a list of
hctx attributes to struct elevator_type and wire them up when switching
schedulers.

Signed-off-by: Omar Sandoval &lt;osandov@fb.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;

Add missing seq_file.h header in blk-mq-debugfs.h

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>block: Remove elevator_change()</title>
<updated>2017-05-02T13:52:08Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bart.vanassche@sandisk.com</email>
</author>
<published>2017-05-01T15:58:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c0332694903a37cf8ecdc9102d5c9e09cf8643d0'/>
<id>urn:sha1:c0332694903a37cf8ecdc9102d5c9e09cf8643d0</id>
<content type='text'>
Since commit 84253394927c ("remove the mg_disk driver") removed the
only caller of elevator_change(), also remove the elevator_change()
function itself.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Markus Trippelsdorf &lt;markus@trippelsdorf.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq-sched: make completed_request() callback more useful</title>
<updated>2017-04-14T20:06:57Z</updated>
<author>
<name>Omar Sandoval</name>
<email>osandov@fb.com</email>
</author>
<published>2017-04-14T08:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c05f8525f67b7d6489b0502211d4ed35622d9beb'/>
<id>urn:sha1:c05f8525f67b7d6489b0502211d4ed35622d9beb</id>
<content type='text'>
Currently, this callback is called right after put_request() and has no
distinguishable purpose. Instead, let's call it before put_request() as
soon as I/O has completed on the request, before we account it in
blk-stat. With this, Kyber can enable stats when it sees a latency
outlier and make sure the outlier gets accounted.

Signed-off-by: Omar Sandoval &lt;osandov@fb.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq-sched: provide hooks for initializing hardware queue data</title>
<updated>2017-04-07T18:45:41Z</updated>
<author>
<name>Omar Sandoval</name>
<email>osandov@fb.com</email>
</author>
<published>2017-04-05T19:01:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=ee056f98126170ca8b16b9a4a6e20aae7c5c184e'/>
<id>urn:sha1:ee056f98126170ca8b16b9a4a6e20aae7c5c184e</id>
<content type='text'>
Schedulers need to be informed when a hardware queue is added or removed
at runtime so they can allocate/free per-hardware queue data. So,
replace the blk_mq_sched_init_hctx_data() helper, which only makes sense
at init time, with .init_hctx() and .exit_hctx() hooks.

Signed-off-by: Omar Sandoval &lt;osandov@fb.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq-sched: fix crash in switch error path</title>
<updated>2017-04-07T14:56:48Z</updated>
<author>
<name>Omar Sandoval</name>
<email>osandov@fb.com</email>
</author>
<published>2017-04-07T14:52:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=54d5329d425650fafaf90660a139c771d2d49cae'/>
<id>urn:sha1:54d5329d425650fafaf90660a139c771d2d49cae</id>
<content type='text'>
In elevator_switch(), if blk_mq_init_sched() fails, we attempt to fall
back to the original scheduler. However, at this point, we've already
torn down the original scheduler's tags, so this causes a crash. Doing
the fallback like the legacy elevator path is much harder for mq, so fix
it by just falling back to none, instead.

Signed-off-by: Omar Sandoval &lt;osandov@fb.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: pass bio to blk_mq_sched_get_rq_priv</title>
<updated>2017-02-10T16:09:59Z</updated>
<author>
<name>Paolo Valente</name>
<email>paolo.valente@linaro.org</email>
</author>
<published>2017-02-07T17:24:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=f1ba82616c3368e1ae9e64ef29cf3edc1be0860d'/>
<id>urn:sha1:f1ba82616c3368e1ae9e64ef29cf3edc1be0860d</id>
<content type='text'>
bio is used in bfq-mq's get_rq_priv, to get the request group. We could
pass directly the group here, but I thought that passing the bio was
more general, giving the possibility to get other pieces of information
if needed.

Signed-off-by: Paolo Valente &lt;paolo.valente@linaro.org&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>block: optionally merge discontiguous discard bios into a single request</title>
<updated>2017-02-08T20:43:08Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2017-02-08T13:46:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=1e739730c5b9ea80a2f25e9cf6e1025d47e3d8ed'/>
<id>urn:sha1:1e739730c5b9ea80a2f25e9cf6e1025d47e3d8ed</id>
<content type='text'>
Add a new merge strategy that merges discard bios into a request until the
maximum number of discard ranges (or the maximum discard size) is reached
from the plug merging code.  I/O scheduler merging is not wired up yet
but might also be useful, although not for fast devices like NVMe which
are the only user for now.

Note that for now we don't support limiting the size of each discard range,
but if needed that can be added later.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>block: enumify ELEVATOR_*_MERGE</title>
<updated>2017-02-08T20:43:06Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2017-02-08T13:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=34fe7c05400663e01e23cddd1fea68bb7a2b3d29'/>
<id>urn:sha1:34fe7c05400663e01e23cddd1fea68bb7a2b3d29</id>
<content type='text'>
Switch these constants to an enum, and make let the compiler ensure that
all callers of blk_try_merge and elv_merge handle all potential values.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq-sched: change -&gt;dispatch_requests() to -&gt;dispatch_request()</title>
<updated>2017-01-27T15:20:35Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@fb.com</email>
</author>
<published>2017-01-26T19:40:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c13660a08c8b3bb49def4374bfd414aaaa564662'/>
<id>urn:sha1:c13660a08c8b3bb49def4374bfd414aaaa564662</id>
<content type='text'>
When we invoke dispatch_requests(), the scheduler empties everything
into the passed in list. This isn't always a good thing, since it
means that we remove items that we could have potentially merged
with.

Change the function to dispatch single requests at the time. If
we do that, we can backoff exactly at the point where the device
can't consume more IO, and leave the rest with the scheduler for
better merging and future dispatch decision making.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
Reviewed-by: Omar Sandoval &lt;osandov@fb.com&gt;
Tested-by: Hannes Reinecke &lt;hare@suse.com&gt;
</content>
</entry>
<entry>
<title>blk-mq-sched: add framework for MQ capable IO schedulers</title>
<updated>2017-01-17T17:04:20Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@fb.com</email>
</author>
<published>2017-01-17T13:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=bd166ef183c263c5ced656d49ef19c7da4adc774'/>
<id>urn:sha1:bd166ef183c263c5ced656d49ef19c7da4adc774</id>
<content type='text'>
This adds a set of hooks that intercepts the blk-mq path of
allocating/inserting/issuing/completing requests, allowing
us to develop a scheduler within that framework.

We reuse the existing elevator scheduler API on the registration
side, but augment that with the scheduler flagging support for
the blk-mq interfce, and with a separate set of ops hooks for MQ
devices.

We split driver and scheduler tags, so we can run the scheduling
independently of device queue depth.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
Reviewed-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Omar Sandoval &lt;osandov@fb.com&gt;
</content>
</entry>
</feed>
