[lkml]   [2008]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 0/8] I/O bandwidth controller and BIO tracking
    On Thu, 13 Nov 2008 12:10:19 +0900 (JST)
    Ryo Tsuruta <> wrote:

    > Hi everyone,
    > This is a new release of dm-ioband and bio-cgroup. With this release,
    > the overhead of bio-cgroup is significantly reduced and the accuracy
    > of block I/O tracking is much improved. These patches are for
    > 2.6.28-rc2-mm1.

    From my point of view, a way to record bio_cgroup_id to page_cgroup is quite neat
    and nice.

    My concern is "bio_cgroup_id". It's provided only for bio_cgroup.
    In this summer, I tried to add swap_cgroup_id only for mem+swap controller but
    commenters said "please provide "id and lookup" in cgroup layer, it should be useful."
    And I agree them. (and postponed it ;)

    Could you try "id" in cgroup layer ? How do you think, Paul and others ?

    That's my only concern and if I/O controller people decides to live with
    this bio tracking infrastracture,
    page -> page_cgroup -> bio_cgroup_id
    I have no objections. And enqueue necessary changes to my queue.


    > Enjoy it!
    > dm-ioband
    > =========
    > Dm-ioband is an I/O bandwidth controller implemented as a
    > device-mapper driver, which gives specified bandwidth to each job
    > running on the same block device. A job is a group of processes
    > or a virtual machine such as KVM or Xen.
    > I/O throughput on dm-ioband is excellent not only on SATA storage
    > but on SDD, which as good as the one without dm-ioband.
    > Changes from the previous release:
    > - Fix a bug that create_workqueue() is called during spin lock
    > when creating a new ioband group.
    > - A new tunable parameter "carryover" is added, which specifies
    > how many tokens an ioband group can keep for the future use
    > when the group isn't so active.
    > TODO:
    > - Other policies to schedule BIOs.
    > - Policies which fits SSD.
    > e.g.)
    > - Guarantee response time.
    > - Guarantee throughput.
    > - Policies which fits Highend Storage or hardware raid storage.
    > - Some LUNs may share the same bandwidth.
    > - Support WRITE_BARRIER when the device-mapper layer supports it.
    > - Implement the algorithm of dm-ioband in the block I/O layer
    > experimentally.
    > bio-cgroup
    > ==========
    > Bio-cgroup is a BIO tracking mechanism, which is implemented on the
    > cgroup memory subsystem. With the mechanism, it is able to determine
    > which cgroup each of bio belongs to, even when the bio is one of
    > delayed-write requests issued from a kernel thread such as pdflush.
    > Changes from the previous release:
    > - This release is a new implementation.
    > - This is based on the new design of the cgroup memory controller
    > framework, which pre-allocates all cgroup-page data structures to
    > reduce the overhead.
    > - The overhead to trace block I/O requests is much smaller than that
    > of the previous one. This is done by making every page have the id
    > of its corresponding bio-cgroup instead of the pointer to it and
    > most of spin-locks and atomic operations are gone.
    > - This implementation uses only 4 bytes per page for I/O tracking
    > while the previous version uses 12 bytes on a 32 bit machine and 24
    > bytes on a 64 bit machine.
    > - The accuracy of I/O tracking is improved that it can trace I/O
    > requests even when the processes which issued these requests get
    > moved into another bio-cgroup.
    > - Support bounce buffers tracking. They will have the same bio-cgroup
    > owners as the original I/O requests.
    > TODO:
    > - Support to track I/O requests that will be generated in Linux
    > kernel, such as those of RAID0 and RAID5.
    > A list of patches
    > =================
    > The following is a list of patches:
    > [PATCH 0/8] I/O bandwidth controller and BIO tracking
    > [PATCH 1/8] dm-ioband: Introduction
    > [PATCH 2/8] dm-ioband: Source code and patch
    > [PATCH 3/8] dm-ioband: Document
    > [PATCH 4/8] bio-cgroup: Introduction
    > [PATCH 5/8] bio-cgroup: The new page_cgroup framework
    > [PATCH 6/8] bio-cgroup: The body of bio-cgroup
    > [PATCH 7/8] bio-cgroup: Page tracking hooks
    > [PATCH 8/8] bio-cgroup: Add a cgroup support to dm-ioband
    > Please see the following site for more information:
    > Linux Block I/O Bandwidth Control Project
    > Thanks,
    > Ryo Tsuruta

     \ /
      Last update: 2008-11-13 07:33    [W:0.027 / U:30.064 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site