Messages in this thread | | | Date | Thu, 24 Jan 2008 12:05:43 +0300 | From | Pavel Emelyanov <> | Subject | Re: [PATCH] cgroup: limit block I/O bandwidth |
| |
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.
> __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.
> -Andrea >
| |