Mailing List Archive

Documentation on CFQ iosched parameters
Please CC to me unless you answer to linux-fsdevel as well. I am not
subscribed to linux-kernel.


Hi!

I am searching documentation about CFQ io scheduler. I can't find it in linux
2.6.26 Documentation directory.

I found about these in german[1]:

back_seek_max:16384
back_seek_penalty:2
fifo_expire_async:250
fifo_expire_sync:123
quantum:4

But I am completely missing about these:

slice_async:40
slice_async_rq:2
slice_idle:6
slice_sync:100

AFAIR there has been a documentation file somewhere, but I can't find it:

ms@mango> grep -ir "cfq" * ~/lokal/Kernel/linux-2.6.26/Documentation/block
00-INDEX: - Block io priorities (in CFQ scheduler)
ioprio.txt:With the introduction of cfq v3 (aka cfq-ts or time sliced cfq),
basic io
ioprio.txt:with cfq; other io schedulers do not support io priorities thus
far.
ioprio.txt:CFQ implements three generic scheduling classes that determine how
io is
switching-sched.txt:'noop', 'as' and 'cfq' (the default) are also available.
IO schedulers are
switching-sched.txt:for instance, to set the CFQ scheduler for the system
default, but
switching-sched.txt:noop anticipatory deadline [cfq]
switching-sched.txt:noop [anticipatory] deadline cfq

(unlike as-iosched.txt)

I am willing to write that documentation if someone explain these to me so
that I understand them ;-).

[1]
http://www.linux-magazin.de/heft_abo/ausgaben/2005/04/kern_technik/(offset)/4

Ciao,
--
Martin Steigerwald - team(ix) GmbH - http://www.teamix.de
gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90
Re: Documentation on CFQ iosched parameters [ In reply to ]
Martin Steigerwald wrote:
> Hi!
>
> I am searching documentation about CFQ io scheduler. I can't find it in linux
> 2.6.26 Documentation directory.
>
> I found about these in german[1]:
>
> back_seek_max:16384
> back_seek_penalty:2
> fifo_expire_async:250
> fifo_expire_sync:123
> quantum:4
>
> But I am completely missing about these:
>
> slice_async:40

Base length of an asynchronous queue timeslice (that is, how long the
queue has to dispatch requests each round). The actual timeslice
length is scaled by the I/O priority.

> slice_async_rq:2

The base number of requests per round for asynchronous queues. Like
slice_async, the actual maximum is a function of slice_async_rq and I/O
priority.

> slice_idle:6

How long to wait for processes to produce more I/O before switching
queues. This is for anticipation of sequential I/O, and more even disk
time distribution for processes doing back to back synchronous I/Os.

> slice_sync:100

Same as slice_async, but for synchronous requests.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: Documentation on CFQ iosched parameters [ In reply to ]
On Tue, Sep 23 2008, Aaron Carroll wrote:
> Martin Steigerwald wrote:
> >Hi!
> >
> >I am searching documentation about CFQ io scheduler. I can't find it in
> >linux 2.6.26 Documentation directory.
> >
> >I found about these in german[1]:
> >
> >back_seek_max:16384
> >back_seek_penalty:2
> >fifo_expire_async:250
> >fifo_expire_sync:123
> >quantum:4
> >
> >But I am completely missing about these:
> >
> >slice_async:40
>
> Base length of an asynchronous queue timeslice (that is, how long the
> queue has to dispatch requests each round). The actual timeslice
> length is scaled by the I/O priority.
>
> >slice_async_rq:2
>
> The base number of requests per round for asynchronous queues. Like
> slice_async, the actual maximum is a function of slice_async_rq and I/O
> priority.
>
> >slice_idle:6
>
> How long to wait for processes to produce more I/O before switching
> queues. This is for anticipation of sequential I/O, and more even disk
> time distribution for processes doing back to back synchronous I/Os.
>
> >slice_sync:100
>
> Same as slice_async, but for synchronous requests.

Nothing further to add, Aaron nailed them.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: Documentation on CFQ iosched parameters [ In reply to ]
Am Dienstag, 23. September 2008 schrieb Aaron Carroll:
> Martin Steigerwald wrote:
> > Hi!
> >
> > I am searching documentation about CFQ io scheduler. I can't find it in
> > linux 2.6.26 Documentation directory.
> >
> > I found about these in german[1]:
> >
> > back_seek_max:16384
> > back_seek_penalty:2
> > fifo_expire_async:250
> > fifo_expire_sync:123
> > quantum:4
> >
> > But I am completely missing about these:
> >
> > slice_async:40
>
> Base length of an asynchronous queue timeslice (that is, how long the
> queue has to dispatch requests each round). The actual timeslice
> length is scaled by the I/O priority.

[...]

Thanks. As I do not find documentation about CFQ at all, I think I need to
create a new file from scratch... how about
Documentation/block/cfq-iosched.txt?

For that I need some more information about CFQ. I found the following
resources:

- CFQ V3 aka CFQ TS: http://lwn.net/Articles/143474/,
http://lwn.net/Articles/114770/ and posts by Jens,
http://lwn.net/Articles/113869/

- CFQ V2: Post by Jens, http://lwn.net/Articles/101029/

- CFQ: Post by Jens, http://lwn.net/Articles/22429/

- Documentation/block/as-iosched.txt / deadline-iosched.txt (as for how an IO
scheduler can be documented)

Would that be what I should read in order to write such an documentation?

How about the relevance of CFQ and CFQ v2 stuff? What of it would be good to
mention? I would like to limit documentation to what is still relevant for
the current implementation of the IO scheduler. Should I mention its
inheritance from SFQ - maybe in a small introduction and historic overview?

Ciao,
--
Martin Steigerwald - team(ix) GmbH - http://www.teamix.de
gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90
Re: Documentation on CFQ iosched parameters [ In reply to ]
On Tue, Sep 23 2008, Martin Steigerwald wrote:
> Am Dienstag, 23. September 2008 schrieb Aaron Carroll:
> > Martin Steigerwald wrote:
> > > Hi!
> > >
> > > I am searching documentation about CFQ io scheduler. I can't find it in
> > > linux 2.6.26 Documentation directory.
> > >
> > > I found about these in german[1]:
> > >
> > > back_seek_max:16384
> > > back_seek_penalty:2
> > > fifo_expire_async:250
> > > fifo_expire_sync:123
> > > quantum:4
> > >
> > > But I am completely missing about these:
> > >
> > > slice_async:40
> >
> > Base length of an asynchronous queue timeslice (that is, how long the
> > queue has to dispatch requests each round). The actual timeslice
> > length is scaled by the I/O priority.
>
> [...]
>
> Thanks. As I do not find documentation about CFQ at all, I think I need to
> create a new file from scratch... how about
> Documentation/block/cfq-iosched.txt?

That would be great!

> For that I need some more information about CFQ. I found the following
> resources:
>
> - CFQ V3 aka CFQ TS: http://lwn.net/Articles/143474/,
> http://lwn.net/Articles/114770/ and posts by Jens,
> http://lwn.net/Articles/113869/
>
> - CFQ V2: Post by Jens, http://lwn.net/Articles/101029/
>
> - CFQ: Post by Jens, http://lwn.net/Articles/22429/

You can mention the links for v1 and v2, but as they have even little
historic relevance, don't spend more time on that.

> - Documentation/block/as-iosched.txt / deadline-iosched.txt (as for how an IO
> scheduler can be documented)
>
> Would that be what I should read in order to write such an documentation?

Yes

> How about the relevance of CFQ and CFQ v2 stuff? What of it would be good to
> mention? I would like to limit documentation to what is still relevant for
> the current implementation of the IO scheduler. Should I mention its
> inheritance from SFQ - maybe in a small introduction and historic overview?

Even the very first CFQ posted used per-process queues, so there's
really very little inheritance from SFQ at all. So I don't think it's
particularly interesting to mention. But if you want, go ahead :-)


--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/