lkml.org 
[lkml]   [2009]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 9/9] ext3: do not throttle metadata and journal IO
    On Tue, 21 Apr 2009 22:49:06 +0200
    Andrea Righi <righi.andrea@gmail.com> wrote:
    > yep! right. Anyway, it's not completely wrong to account dirty pages in
    > this way. The dirty pages actually belong to cgroup A and providing per
    > cgroup upper limits of dirty pages could help to equally distribute
    > dirty pages, that are hard/slow to reclaim, among cgroups.
    >
    > But this is definitely another problem.
    >
    Hmm, my motivation for dirty accounting in memcg is for supporting dirty_ratio
    to do smooth page reclaiming and to kick background-write-out.


    > And it doesn't help for the problem described by Ted, expecially for the
    > IO controller. The only way I see to correctly handle that case is to
    > limit the rate of dirty pages per cgroup, accounting the dirty activity
    > to the cgroup that firstly touched the page (and not the owner as
    > intended by the memory controller).
    >
    Owner of the page should know dirty ratio, too.

    > And this should be probably strictly connected to the IO controller. If
    > we throttle or delay the dispatching/submission of some IO requests
    > without throttling the dirty pages rate a cgroup could completely waste
    > its own available memory with dirty (hard and slow to reclaim) pages.
    >
    > That is in part the approach I used in io-throttle v12, adding a hook in
    > balance_dirty_pages_ratelimited_nr() to throttle the current task when
    > cgroup's IO limit are exceeded. Argh!
    >
    > So, another proposal could be to re-add in io-throttle v14 the old hook
    > also in balance_dirty_pages_ratelimited_nr().
    >
    > In this way io-throttle would:
    >
    > - use page_cgroup infrastructure and page_cgroup->flags to encode the
    > cgroup id that firstly dirtied a generic page
    > - account and opportunely throttle sync and writeback IO requests in
    > submit_bio()
    > - at the same time throttle the tasks in
    > balance_dirty_pages_ratelimited_nr() if the cgroup they belong has
    > exhausted the IO BW (or quota, share, etc. in case of proportional BW
    > limit)
    >

    IMHO, io-controller should just work as I/O subsystem as bdi. Now, per-bdi dirty_ratio
    is suppoted and it seems to work well.

    Can't we write a function like bdi_writeout_fraction() ?;
    It will be a simple choice.

    Thanks,
    -Kame



    \
     
     \ /
      Last update: 2009-04-22 02:37    [W:0.026 / U:31.784 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site