linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Documentation on CFQ iosched parameters
@ 2008-09-22 15:15 Martin Steigerwald
  2008-09-23  3:15 ` Aaron Carroll
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Steigerwald @ 2008-09-22 15:15 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-fsdevel, Jens Axboe

[-- Attachment #1: Type: text/plain, Size: 1593 bytes --]


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

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Documentation on CFQ iosched parameters
  2008-09-22 15:15 Documentation on CFQ iosched parameters Martin Steigerwald
@ 2008-09-23  3:15 ` Aaron Carroll
  2008-09-23  9:00   ` Jens Axboe
  2008-09-23  9:26   ` Martin Steigerwald
  0 siblings, 2 replies; 5+ messages in thread
From: Aaron Carroll @ 2008-09-23  3:15 UTC (permalink / raw)
  To: Martin Steigerwald; +Cc: linux-kernel, linux-fsdevel, Jens Axboe

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.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Documentation on CFQ iosched parameters
  2008-09-23  3:15 ` Aaron Carroll
@ 2008-09-23  9:00   ` Jens Axboe
  2008-09-23  9:26   ` Martin Steigerwald
  1 sibling, 0 replies; 5+ messages in thread
From: Jens Axboe @ 2008-09-23  9:00 UTC (permalink / raw)
  To: Aaron Carroll; +Cc: Martin Steigerwald, linux-kernel, linux-fsdevel

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Documentation on CFQ iosched parameters
  2008-09-23  3:15 ` Aaron Carroll
  2008-09-23  9:00   ` Jens Axboe
@ 2008-09-23  9:26   ` Martin Steigerwald
  2008-09-23  9:32     ` Jens Axboe
  1 sibling, 1 reply; 5+ messages in thread
From: Martin Steigerwald @ 2008-09-23  9:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-fsdevel, Jens Axboe, Aaron Carroll

[-- Attachment #1: Type: text/plain, Size: 1790 bytes --]

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

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Documentation on CFQ iosched parameters
  2008-09-23  9:26   ` Martin Steigerwald
@ 2008-09-23  9:32     ` Jens Axboe
  0 siblings, 0 replies; 5+ messages in thread
From: Jens Axboe @ 2008-09-23  9:32 UTC (permalink / raw)
  To: Martin Steigerwald; +Cc: linux-kernel, linux-fsdevel, Aaron Carroll

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-09-23  9:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-22 15:15 Documentation on CFQ iosched parameters Martin Steigerwald
2008-09-23  3:15 ` Aaron Carroll
2008-09-23  9:00   ` Jens Axboe
2008-09-23  9:26   ` Martin Steigerwald
2008-09-23  9:32     ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).