Re: [PATCH 3/9] bio-cgroup controller

From: Ryo Tsuruta
Date: Fri Apr 17 2009 - 03:22:22 EST


Hi,

From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
Date: Fri, 17 Apr 2009 11:24:33 +0900

> On Fri, 17 Apr 2009 10:49:43 +0900
> Takuya Yoshikawa <yoshikawa.takuya@xxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/