Pavel Emelyanov wrote: > Andrea Righi wrote: >> Balbir Singh wrote: >>> * Andrea Righi <[EMAIL PROTECTED]> [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. Thanks, -Andrea -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/