2007-08-31 15:36:05

by Michal Piotrowski

[permalink] [raw]
Subject: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

Hi,

Here is something that might be useful for gamers and audio/video editors
http://www.stardust.webpages.pl/files/tools/deskopt/

You can easily tune CFS/CFQ scheduler params

sched_batch_wakeup_granularity_ns
sched_latency_ns
sched_min_granularity_ns
sched_runtime_limit_ns
sched_stat_granularity_ns
sched_wakeup_granularity_ns

back_seek_max
back_seek_penalty
fifo_expire_async
fifo_expire_sync
quantum
slice_async
slice_async_rq
slice_idle
slice_sync

+ nice levels

Results from Nexuiz benchmark

|-------------------------------------------------------------------------------------------|
| | CFS + CFQ | CFS + CFQ + DeskOpt * |
|-------------------------------------------------------------------------------------------|
| timedemo demos/demo2 | 41,395896833 fps | 41,460051233 fps |
| timedemo demos/demo2 + massive_intr 4 1000 | 18,343223633 fps | 37,814504933 fps |
| timedemo demos/demo2 + massive_intr 8 1000 | 9,334974533 fps | 37,376611267 fps |
|-------------------------------------------------------------------------------------------|

* default class for games

DeskOpt has many design flaws, but it works for me :)

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/


2007-08-31 17:41:08

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

On Fri, 31 Aug 2007 17:35:38 +0200
Michal Piotrowski <[email protected]> wrote:

> Hi,
>
> Here is something that might be useful for gamers and audio/video
> editors http://www.stardust.webpages.pl/files/tools/deskopt/
>


question is how many of the things they changed can we just make
default...

2007-08-31 18:07:50

by Michal Piotrowski

[permalink] [raw]
Subject: Re: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

On 31/08/2007, Arjan van de Ven <[email protected]> wrote:
> On Fri, 31 Aug 2007 17:35:38 +0200
> Michal Piotrowski <[email protected]> wrote:
>
> > Hi,
> >
> > Here is something that might be useful for gamers and audio/video
> > editors http://www.stardust.webpages.pl/files/tools/deskopt/
> >
>
>
> question is how many of the things they changed can we just make
> default...
>

Good question.

If we want to change the default settings, we need to carefully
benchmark all changes - it is not simple, because some things work
different on desktop/server/embedded.

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

2007-08-31 22:27:21

by Chris Snook

[permalink] [raw]
Subject: Re: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

Michal Piotrowski wrote:
> Hi,
>
> Here is something that might be useful for gamers and audio/video editors
> http://www.stardust.webpages.pl/files/tools/deskopt/
>
> You can easily tune CFS/CFQ scheduler params

I would think that gamers and AV editors would want to be using deadline
(or maybe even as), not cfq. How well does it work with other I/O
schedulers?

-- Chris

2007-08-31 23:13:56

by Michal Piotrowski

[permalink] [raw]
Subject: Re: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

On 01/09/2007, Chris Snook <[email protected]> wrote:
> Michal Piotrowski wrote:
> > Hi,
> >
> > Here is something that might be useful for gamers and audio/video editors
> > http://www.stardust.webpages.pl/files/tools/deskopt/
> >
> > You can easily tune CFS/CFQ scheduler params
>
> I would think that gamers and AV editors would want to be using deadline
> (or maybe even as), not cfq. How well does it work with other I/O
> schedulers?

Actually it does not support other i/o schedulers (early stage of
development ;).

"Linux supports io scheduling priorities and classes since 2.6.13 with
the CFQ io scheduler." (ionice man page)

So we can only tune
antic_expire est_time read_batch_expire read_expire
write_batch_expire write_expire
for anticipatory and
fifo_batch front_merges read_expire write_expire writes_starved
for deadline.

I'll have a look on it.

>
> -- Chris
>

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

2007-09-01 22:10:57

by Andi Kleen

[permalink] [raw]
Subject: Re: [ANNOUNCE] DeskOpt - on fly task, i/o scheduler optimization

Michal Piotrowski <[email protected]> writes:

> Here is something that might be useful for gamers and audio/video editors
> http://www.stardust.webpages.pl/files/tools/deskopt/

To make it double cool combine that with the generic genetic
optimizer for parameters that was posted a couple of months ago.

>
> You can easily tune CFS/CFQ scheduler params
>
> sched_batch_wakeup_granularity_ns
> sched_latency_ns
> sched_min_granularity_ns
> sched_runtime_limit_ns
> sched_stat_granularity_ns
> sched_wakeup_granularity_ns
>
> back_seek_max
> back_seek_penalty
> fifo_expire_async
> fifo_expire_sync
> quantum
> slice_async
> slice_async_rq
> slice_idle
> slice_sync
>

You should probably add the device queue length too. That seems
to often have a large impact on IO scheduling because on modern
long queue controllers the Linux IO scheduler often doesn't
have much to do because the device queue just eats it all up quickly.

-Andi