Re: RFC: I/O bandwidth controller (was Re: Too many I/O controller patches)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Fernando Luis
Date: Wednesday, August 6, 2008 - 7:44 pm

On Wed, 2008-08-06 at 22:12 +0530, Balbir Singh wrote:
As Dave pointed out I just think that we should allow each disk to be
treated separately. To avoid the administration nightmare you mention
adding block device grouping capabilities should suffice to solve most
of the issues.

That is a really good question. The I/O tracking patches split the
memory controller in two functional parts: (1) page tracking and (2)
memory accounting/cgroup policy enforcement. By doing so the memory
controller specific code can be separated from the rest, which
admittedly, will not benefit the memory controller a great deal but,
hopefully, we can get cleaner code that is easier to maintain.

The important thing, though, is that with this separation the page
tracking bits can be easily reused by any subsystem that needs to keep
track of pages, and the I/O controller is certainly one such candidate.
Synchronous I/O is easy to deal with because everything is done in the
context of the task that generated the I/O, but buffered I/O and
synchronous I/O are problematic. However with the observation that the
owner of an I/O request happens to be the owner the of the pages the I/O
buffers of that request reside in, it becomes clear that pdflush and
friends could use that information to determine who the originator of
the I/O is and the I/O request accordingly.

Going back to your question, with the current I/O tracking patches I/O
controller would be bound to the page tracking functionality of cgroups
(page_cgroup) not the memory controller. We would not even need to
compile the memory controller. The dependency on cgroups would still be
there though.

As an aside, I guess that with some effort we could get rid of this
dependency by providing some basic tracking capabilities even when the
cgroups infrastructure is not being used. By doing so traditional I/O
schedulers such as CFQ could benefit from proper I/O tracking
capabilities without using cgroups. Of course if the kernel has cgroups
support compiled in the cgroups I/O tracking would be used instead (this
idea was inpired by CFS' group scheduling, which works both with and
without cgroups support). I am currently trying to implement this.
 

Yes, makes sense.

Thank you!

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/7] dm-ioband: Patch of device-mapper driver, Ryo Tsuruta, (Mon Aug 4, 1:52 am)
[PATCH 3/7] bio-cgroup: Introduction, Ryo Tsuruta, (Mon Aug 4, 1:57 am)
[PATCH 5/7] bio-cgroup: Remove a lot of ifdefs, Ryo Tsuruta, (Mon Aug 4, 1:59 am)
[PATCH 6/7] bio-cgroup: Implement the bio-cgroup, Ryo Tsuruta, (Mon Aug 4, 2:00 am)
Too many I/O controller patches, Dave Hansen, (Mon Aug 4, 10:20 am)
Re: Too many I/O controller patches, Andrea Righi, (Mon Aug 4, 11:22 am)
Re: Too many I/O controller patches, Balbir Singh, (Mon Aug 4, 11:34 am)
Re: Too many I/O controller patches, Dave Hansen, (Mon Aug 4, 12:02 pm)
Re: Too many I/O controller patches, Andrea Righi, (Mon Aug 4, 1:42 pm)
Re: Too many I/O controller patches, Andrea Righi, (Mon Aug 4, 1:44 pm)
Re: Too many I/O controller patches, Dave Hansen, (Mon Aug 4, 1:50 pm)
RE: Too many I/O controller patches, Satoshi UCHIDA, (Mon Aug 4, 7:50 pm)
Re: Too many I/O controller patches, Paul Menage, (Mon Aug 4, 10:55 pm)
Re: Too many I/O controller patches, Balbir Singh, (Mon Aug 4, 11:03 pm)
Re: Too many I/O controller patches, Hirokazu Takahashi, (Mon Aug 4, 11:16 pm)
Re: Too many I/O controller patches, Hirokazu Takahashi, (Mon Aug 4, 11:28 pm)
Re: Too many I/O controller patches, Andrea Righi, (Tue Aug 5, 2:27 am)
Re: Too many I/O controller patches, Andrea Righi, (Tue Aug 5, 2:28 am)
Re: Too many I/O controller patches, Andrea Righi, (Tue Aug 5, 2:31 am)
Re: Too many I/O controller patches, Hirokazu Takahashi, (Tue Aug 5, 3:01 am)
Re: [PATCH 4/7] bio-cgroup: Split the cgroup memory subsys ..., Hirokazu Takahashi, (Tue Aug 5, 3:35 am)
Re: Too many I/O controller patches, Hirokazu Takahashi, (Tue Aug 5, 5:01 am)
Re: Too many I/O controller patches, Ryo Tsuruta, (Tue Aug 5, 6:17 am)
Re: Too many I/O controller patches, Dave Hansen, (Tue Aug 5, 9:20 am)
Re: Too many I/O controller patches, Dave Hansen, (Tue Aug 5, 9:25 am)
Re: Too many I/O controller patches, KAMEZAWA Hiroyuki, (Tue Aug 5, 7:44 pm)
Re: Too many I/O controller patches, Balbir Singh, (Tue Aug 5, 8:30 pm)
Re: RFC: I/O bandwidth controller, Ryo Tsuruta, (Tue Aug 5, 11:18 pm)
Re: RFC: I/O bandwidth controller, Fernando Luis , (Tue Aug 5, 11:41 pm)
Re: Too many I/O controller patches, Hirokazu Takahashi, (Tue Aug 5, 11:48 pm)
Re: [PATCH 4/7] bio-cgroup: Split the cgroup memory subsys ..., KAMEZAWA Hiroyuki, (Wed Aug 6, 12:54 am)
Re: [PATCH 4/7] bio-cgroup: Split the cgroup memory subsys ..., Hirokazu Takahashi, (Wed Aug 6, 4:43 am)
Re: RFC: I/O bandwidth controller, Dave Hansen, (Wed Aug 6, 8:48 am)
Re: RFC: I/O bandwidth controller (was Re: Too many I/O co ..., Fernando Luis , (Wed Aug 6, 7:44 pm)
Re: RFC: I/O bandwidth controller, Fernando Luis , (Wed Aug 6, 9:38 pm)
Re: [PATCH 4/7] bio-cgroup: Split the cgroup memory subsys ..., Hirokazu Takahashi, (Thu Aug 7, 12:25 am)
Re: RFC: I/O bandwidth controller, Hirokazu Takahashi, (Thu Aug 7, 1:30 am)
Re: [PATCH 4/7] bio-cgroup: Split the cgroup memory subsys ..., Hirokazu Takahashi, (Thu Aug 7, 1:45 am)
Re: RFC: I/O bandwidth controller, Hirokazu Takahashi, (Thu Aug 7, 11:21 pm)
Re: [PATCH 6/7] bio-cgroup: Implement the bio-cgroup, Takuya Yoshikawa, (Fri Aug 8, 12:10 am)
Re: RFC: I/O bandwidth controller, Ryo Tsuruta, (Fri Aug 8, 12:20 am)
Re: RFC: I/O bandwidth controller, Fernando Luis , (Fri Aug 8, 1:10 am)
Re: [PATCH 6/7] bio-cgroup: Implement the bio-cgroup, Ryo Tsuruta, (Fri Aug 8, 1:30 am)
Re: [PATCH 6/7] bio-cgroup: Implement the bio-cgroup, Takuya Yoshikawa, (Fri Aug 8, 2:42 am)
Re: RFC: I/O bandwidth controller, Ryo Tsuruta, (Fri Aug 8, 3:05 am)
Re: RFC: I/O bandwidth controller, Hirokazu Takahashi, (Fri Aug 8, 4:39 am)
Re: [PATCH 6/7] bio-cgroup: Implement the bio-cgroup, Ryo Tsuruta, (Fri Aug 8, 4:41 am)
Re: RFC: I/O bandwidth controller, Hirokazu Takahashi, (Fri Aug 8, 7:31 am)
Re: RFC: I/O bandwidth controller (was Re: Too many I/O co ..., David Collier-Brown, (Mon Aug 11, 9:35 am)
Re: RFC: I/O bandwidth controller, Fernando Luis , (Mon Aug 11, 10:35 pm)