2005-11-22 11:53:56

by Lukas Hejtmanek

[permalink] [raw]
Subject: ioscheduler and 2.6 kernels

Hello,

I have a question about ioschedulers in current 2.6 kernels. Is there an option
to build iorequest queues per process? I would like to have the queue for each
process and pick up request in round robin manner, which results in more
interactive environment.

--
Luk?? Hejtm?nek


2005-11-22 11:57:57

by Michal Schmidt

[permalink] [raw]
Subject: Re: ioscheduler and 2.6 kernels

Lukas Hejtmanek wrote:
> Hello,
>
> I have a question about ioschedulers in current 2.6 kernels. Is there an option
> to build iorequest queues per process? I would like to have the queue for each
> process and pick up request in round robin manner, which results in more
> interactive environment.

Isn't this exactly what the CFQ scheduler does?
Michal


2005-11-22 12:19:30

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: ioscheduler and 2.6 kernels

On Tue, Nov 22, 2005 at 12:56:58PM +0100, Michal Schmidt wrote:
> >I have a question about ioschedulers in current 2.6 kernels. Is there an
> >option
> >to build iorequest queues per process? I would like to have the queue for
> >each
> >process and pick up request in round robin manner, which results in more
> >interactive environment.
>
> Isn't this exactly what the CFQ scheduler does?

Friend of me tried all the schedulers and he thinks, that all behave basicaly
the same. His testbed is to extract tar archive with lots small files and in
parallel to run xterm, which takes serious time. He wonder why.

For me it seems to be ok. Thanks.

--
Luk?? Hejtm?nek

2005-11-22 12:43:31

by Jens Axboe

[permalink] [raw]
Subject: Re: ioscheduler and 2.6 kernels

On Tue, Nov 22 2005, Lukas Hejtmanek wrote:
> On Tue, Nov 22, 2005 at 12:56:58PM +0100, Michal Schmidt wrote:
> > >I have a question about ioschedulers in current 2.6 kernels. Is there an
> > >option
> > >to build iorequest queues per process? I would like to have the queue for
> > >each
> > >process and pick up request in round robin manner, which results in more
> > >interactive environment.
> >
> > Isn't this exactly what the CFQ scheduler does?
>
> Friend of me tried all the schedulers and he thinks, that all behave basicaly
> the same. His testbed is to extract tar archive with lots small files and in
> parallel to run xterm, which takes serious time. He wonder why.

Your friend has to realize that writeout doesn't typically happen in the
context of the process dirtying the data. CFQ will set aside a special
queue(s) for async writeout, though.

But another major interactivity problem he may see is that if you are
dirtying a lot of memory, other processes doing reads may get stuck in
page reclaim when allocating memory (eg getting a new page cache page,
either directly or perhaps through readahead). Then processes X has to
wait for async queue Z to flush out memory, thus becoming dependent on
each other for interactiveness. The io scheduler knows nothing about
this, so it can't really prevent it from happening.

--
Jens Axboe