Messages in this thread | | | Date | Thu, 24 Jan 2008 19:20:20 +0530 | From | Balbir Singh <> | Subject | Re: [PATCH] cgroup: limit block I/O bandwidth |
| |
* Andrea Righi <righiandr@users.sourceforge.net> [2008-01-24 14:48:01]:
> Pavel Emelyanov wrote: > > Andrea Righi wrote: > >> Balbir Singh wrote: > >>> * Andrea Righi <righiandr@users.sourceforge.net> [2008-01-23 16:23:59]: > >>> > >>>> Probably tracking who dirtied the pages would be the best approach, but > >>>> we want also to reduce the overhead of this tracking. So, we should find > >>>> a smart way to track which cgroup dirtied the pages and then only when > >>>> the i/o scheduler dispatches the write requests of those pages, account > >>>> the i/o operations to the opportune cgroup. In this way throttling could > >>>> be done probably in __set_page_dirty() as well. > >>>> > >>> I think the OpenVZ controller works that way. > >> Well... looking at the code it seems that OpenVZ doesn't use this > >> strategy, instead performs UBC-based I/O accounting looking at the > > > > We do track the task (well - the beancounter) who made the page > > dirty and then use this context for async write scheduling. > > Interesting... now I see that task_io_account_write() takes a > "struct page *" as argument and the "struct page" has the beancounter > pointer. > > > > >> __set_page_dirty*() for writes and submit_bio() for reads. Then, > >> independently from accounting data, it uses per-UBC i/o priority model > >> that is mapped directly on the CFQ i/o priority model. > > > > Vasisly Tarasov (out I/O guru ;)) has already prepared an RFC patchset > > for Jens with group scheduler (for sync requests only) and is going to > > send it this or next week. > > > > Very good! I look forward for this patchset. >
Excellent! Can't wait to test it.
> Thanks, > -Andrea
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
| |