Messages in this thread | | | Date | Fri, 17 Apr 2009 16:22:01 +0900 (JST) | Subject | Re: [PATCH 3/9] bio-cgroup controller | From | Ryo Tsuruta <> |
| |
Hi,
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Date: Fri, 17 Apr 2009 11:24:33 +0900
> On Fri, 17 Apr 2009 10:49:43 +0900 > Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> wrote: > > > Hi, > > > > I have a few question. > > - I have not yet fully understood how your controller are using > > bio_cgroup. If my view is wrong please tell me. > > > > o In my view, bio_cgroup's implementation strongly depends on > > page_cgoup's. Could you explain for what purpose does this > > functionality itself should be implemented as cgroup subsystem? > > Using page_cgoup and implementing tracking APIs is not enough? > > I'll definitely do "Nack" to add full bio-cgroup members to page_cgroup. > Now, page_cgroup is 40bytes(in 64bit arch.) And all of them are allocated at > boot time as memmap. (and add member to struct page is much harder ;) > > IIUC, feature for "tracking bio" is just necesary for pages for I/O. > So, I think it's much better to add misc. information to struct bio not to the page. > But, if people want to add "small hint" to struct page or struct page_cgroup > for tracking buffered I/O, I'll give you help as much as I can. > Maybe using "unused bits" in page_cgroup->flags is a choice with no overhead.
In the case where the bio-cgroup data is allocated dynamically, - Sometimes quite a large amount of memory get marked dirty. In this case it requires more kernel memory than that of the current implementation. - The operation is expansive due to memory allocations and exclusive controls by such as spinlocks.
In the case where the bio-cgroup data is allocated by delayed allocation, - It makes the operation complicated and expensive, because sometimes a bio has to be created in the context of other processes, such as aio and swap-out operation.
I'd prefer a simple and lightweight implementation. bio-cgroup only needs 4bytes unlike memory controller. The reason why bio-cgroup chose this approach is to minimize the overhead.
Thanks, Ryo Tsuruta
| |