From: Andrea Righi <righiandr@users.sourceforge.net>
To: Pavel Emelyanov <xemul@openvz.org>
Cc: Naveen Gupta <ngupta@google.com>,
Jens Axboe <jens.axboe@oracle.com>,
Paul Menage <menage@google.com>,
Dhaval Giani <dhaval@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Balbir Singh <balbir@linux.vnet.ibm.com>
Subject: Re: [PATCH] cgroup: limit block I/O bandwidth
Date: Thu, 24 Jan 2008 14:48:01 +0100 (MET) [thread overview]
Message-ID: <47989711.3070708@users.sourceforge.net> (raw)
In-Reply-To: <479854E7.5080404@openvz.org>
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.
Thanks,
-Andrea
next prev parent reply other threads:[~2008-01-24 13:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-18 22:39 [PATCH] cgroup: limit block I/O bandwidth Naveen Gupta
2008-01-19 11:17 ` Andrea Righi
2008-01-20 13:45 ` Andrea Righi
2008-01-20 14:32 ` Jens Axboe
2008-01-20 14:58 ` Balbir Singh
2008-01-20 15:41 ` Andrea Righi
2008-01-20 16:06 ` Jens Axboe
2008-01-20 23:59 ` Andrea Righi
2008-01-22 19:02 ` Naveen Gupta
2008-01-22 23:11 ` Andrea Righi
2008-01-23 1:17 ` Naveen Gupta
2008-01-23 15:23 ` Andrea Righi
2008-01-23 15:38 ` Balbir Singh
2008-01-23 20:55 ` Andrea Righi
2008-01-24 9:05 ` Pavel Emelyanov
2008-01-24 13:48 ` Andrea Righi [this message]
2008-01-24 13:50 ` Balbir Singh
-- strict thread matches above, loose matches on Subject: below --
2008-01-18 11:41 Andrea Righi
2008-01-18 12:36 ` Dhaval Giani
2008-01-18 12:41 ` Paul Menage
2008-01-18 13:02 ` Andrea Righi
2008-01-18 15:50 ` Andrea Righi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47989711.3070708@users.sourceforge.net \
--to=righiandr@users.sourceforge.net \
--cc=balbir@linux.vnet.ibm.com \
--cc=dhaval@linux.vnet.ibm.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=ngupta@google.com \
--cc=xemul@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.