lkml.org 
[lkml]   [2009]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: Block IO Controller V4
From
Hi Vivek,
On Mon, Nov 30, 2009 at 3:59 AM, Vivek Goyal <vgoyal@redhat.com> wrote:
> Hi Jens,
> [snip]
> TODO
> ====
> - Direct random writers seem to be very fickle in terms of workload
>  classification. They seem to be switching between sync-idle and sync-noidle
>  workload type in a little unpredictable manner. Debug and fix it.
>

Are you still experiencing erratic behaviour after my patches were
integrated in for-2.6.33?

> - Support async IO control (buffered writes).
I was thinking about this.
Currently, writeback can either be issued by a kernel daemon (when
actual dirty ratio is > background dirty ratio, but < dirty_ratio) or
from various processes, if the actual dirty ratio is > dirty ratio.
Could the writeback issued in the context of a process be marked as sync?
In this way:
* normal writeback when system is not under pressure will run in the
root group, without interferring with sync workload
* the writeback issued when we have high dirty ratio will have more
priority, so the system will return in a normal condition quicker.
* your code will work out of the box, in fact processes with lower
weight will complete less I/O, therefore they will be slowed down more
than higher weight ones.

>
>  Buffered writes is a beast and requires changes at many a places to solve the
>  problem and patchset becomes huge. Hence first we plan to support only sync
>  IO in control then work on async IO too.
>
>  Some of the work items identified are.
>
>        - Per memory cgroup dirty ratio
>        - Possibly modification of writeback to force writeback from a
>          particular cgroup.
>        - Implement IO tracking support so that a bio can be mapped to a cgroup.
>        - Per group request descriptor infrastructure in block layer.
>        - At CFQ level, implement per cfq_group async queues.
>
>  In this patchset, all the async IO goes in system wide queues and there are
>  no per group async queues. That means we will see service differentiation
>  only for sync IO only. Async IO willl be handled later.
>
> - Support for higher level policies like max BW controller.
> - Support groups of RT class also.

Thanks,
Corrado
--
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/

\
 
 \ /
  Last update: 2009-11-30 16:37    [W:1.235 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site