[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.
> - 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.
> - 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.088 / U:1.976 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site