All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <righi.andrea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.org,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	agk-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org,
	xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
	fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org,
	balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Subject: Re: dm-ioband + bio-cgroup benchmarks
Date: Fri, 19 Sep 2008 22:28:40 +0200	[thread overview]
Message-ID: <48D40B78.6060709@gmail.com> (raw)
In-Reply-To: <20080919131019.GA3606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

Vivek Goyal wrote:
> On Fri, Sep 19, 2008 at 08:20:31PM +0900, Hirokazu Takahashi wrote:
>>> To avoid creation of stacking another device (dm-ioband) on top of every
>>> device we want to subject to rules, I was thinking of maintaining an
>>> rb-tree per request queue. Requests will first go into this rb-tree upon
>>> __make_request() and then will filter down to elevator associated with the
>>> queue (if there is one). This will provide us the control of releasing
>>> bio's to elevaor based on policies (proportional weight, max bandwidth
>>> etc) and no need of stacking additional block device.
>> I think it's a bit late to control I/O requests there, since process
>> may be blocked in get_request_wait when the I/O load is high.
>> Please imagine the situation that cgroups with low bandwidths are
>> consuming most of "struct request"s while another cgroup with a high
>> bandwidth is blocked and can't get enough "struct request"s.
>>
>> It means cgroups that issues lot of I/O request can win the game.
>>
> 
> Ok, this is a good point. Because number of struct requests are limited
> and they seem to be allocated on first come first serve basis, so if a
> cgroup is generating lot of IO, then it might win.
> 
> But dm-ioband will face the same issue. Essentially it is also a request
> queue and it will have limited number of request descriptors. Have you 
> modified the logic somewhere for allocation of request descriptors to the
> waiting processes based on their weights? If yes, the logic probably can
> be implemented here too.

Maybe throttling dirty page ratio in memory could help to avoid this problem.
I mean, if a cgroup is exceeding the i/o limits do ehm... something.. also at
the balance_dirty_pages() level.

-Andrea

WARNING: multiple messages have this Message-ID (diff)
From: Andrea Righi <righi.andrea@gmail.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	ryov@valinux.co.jp, linux-kernel@vger.kernel.org,
	dm-devel@redhat.com, containers@lists.linux-foundation.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xensource.com, fernando@oss.ntt.co.jp,
	balbir@linux.vnet.ibm.com, xemul@openvz.org, agk@sourceware.org,
	jens.axboe@oracle.com
Subject: Re: dm-ioband + bio-cgroup benchmarks
Date: Fri, 19 Sep 2008 22:28:40 +0200	[thread overview]
Message-ID: <48D40B78.6060709@gmail.com> (raw)
In-Reply-To: <20080919131019.GA3606@redhat.com>

Vivek Goyal wrote:
> On Fri, Sep 19, 2008 at 08:20:31PM +0900, Hirokazu Takahashi wrote:
>>> To avoid creation of stacking another device (dm-ioband) on top of every
>>> device we want to subject to rules, I was thinking of maintaining an
>>> rb-tree per request queue. Requests will first go into this rb-tree upon
>>> __make_request() and then will filter down to elevator associated with the
>>> queue (if there is one). This will provide us the control of releasing
>>> bio's to elevaor based on policies (proportional weight, max bandwidth
>>> etc) and no need of stacking additional block device.
>> I think it's a bit late to control I/O requests there, since process
>> may be blocked in get_request_wait when the I/O load is high.
>> Please imagine the situation that cgroups with low bandwidths are
>> consuming most of "struct request"s while another cgroup with a high
>> bandwidth is blocked and can't get enough "struct request"s.
>>
>> It means cgroups that issues lot of I/O request can win the game.
>>
> 
> Ok, this is a good point. Because number of struct requests are limited
> and they seem to be allocated on first come first serve basis, so if a
> cgroup is generating lot of IO, then it might win.
> 
> But dm-ioband will face the same issue. Essentially it is also a request
> queue and it will have limited number of request descriptors. Have you 
> modified the logic somewhere for allocation of request descriptors to the
> waiting processes based on their weights? If yes, the logic probably can
> be implemented here too.

Maybe throttling dirty page ratio in memory could help to avoid this problem.
I mean, if a cgroup is exceeding the i/o limits do ehm... something.. also at
the balance_dirty_pages() level.

-Andrea

  parent reply	other threads:[~2008-09-19 20:28 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-18 12:04 dm-ioband + bio-cgroup benchmarks Ryo Tsuruta
2008-09-18 13:15 ` Vivek Goyal
2008-09-18 14:37   ` Andrea Righi
     [not found]   ` <20080918131554.GB20640-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-18 14:37     ` Andrea Righi
2008-09-19  6:12     ` Hirokazu Takahashi
2008-09-19 11:20     ` Hirokazu Takahashi
2008-09-18 14:37   ` Andrea Righi
     [not found]     ` <48D267B5.20402-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-18 15:06       ` Vivek Goyal
2008-09-18 15:06     ` Vivek Goyal
2008-09-18 15:06       ` Vivek Goyal
2008-09-18 15:18       ` Andrea Righi
2008-09-18 15:18         ` Andrea Righi
2008-09-18 16:20         ` Vivek Goyal
2008-09-18 16:20           ` Vivek Goyal
2008-09-18 19:54           ` Andrea Righi
2008-09-18 19:54           ` Andrea Righi
     [not found]           ` <20080918162010.GJ20640-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-18 19:54             ` Andrea Righi
     [not found]         ` <48D2715A.6060002-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-18 16:20           ` Vivek Goyal
2008-09-19  3:34           ` [dm-devel] " Hirokazu Takahashi
2008-09-19  3:34         ` Hirokazu Takahashi
2008-09-19  3:34         ` Hirokazu Takahashi
2008-09-19  3:34           ` Hirokazu Takahashi
2008-09-20  4:27           ` KAMEZAWA Hiroyuki
2008-09-20  5:18             ` Balbir Singh
     [not found]               ` <48D48789.8000606-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-09-20  9:25                 ` KAMEZAWA Hiroyuki
2008-09-20  9:25               ` KAMEZAWA Hiroyuki
2008-09-20  9:25               ` KAMEZAWA Hiroyuki
2008-09-20  5:18             ` Balbir Singh
     [not found]             ` <20080920132703.e74c8f89.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-09-20  5:18               ` Balbir Singh
     [not found]           ` <20080919.123405.91829935.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-20  4:27             ` KAMEZAWA Hiroyuki
2008-09-24 11:04             ` [Xen-devel] " Balbir Singh
2008-09-20  4:27           ` KAMEZAWA Hiroyuki
2008-09-24 11:04           ` [Xen-devel] " Balbir Singh
2008-09-24 11:07             ` Re: [dm-devel] " Balbir Singh
2008-09-24 11:07               ` [Xen-devel] " Balbir Singh
2008-09-26 10:54               ` Hirokazu Takahashi
2008-09-26 10:54                 ` [Xen-devel] " Hirokazu Takahashi
2008-09-26 10:54               ` Hirokazu Takahashi
     [not found]               ` <661de9470809240407m7f50b6dav897fef3b37295bb2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-26 10:54                 ` Hirokazu Takahashi
     [not found]             ` <661de9470809240404i62300942o15337ecec335fe22-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-24 11:07               ` Balbir Singh
2008-09-24 11:07             ` Balbir Singh
2008-09-24 11:04           ` Balbir Singh
2008-09-18 15:18       ` Andrea Righi
     [not found]       ` <20080918150634.GH20640-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-18 15:18         ` Andrea Righi
2008-09-19  6:12   ` Hirokazu Takahashi
2008-09-19  6:12   ` Hirokazu Takahashi
2008-09-19  6:12     ` Hirokazu Takahashi
2008-09-19 13:12     ` Vivek Goyal
2008-09-19 13:12     ` Vivek Goyal
     [not found]     ` <20080919.151221.49666828.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-19 13:12       ` Vivek Goyal
2008-09-19 11:20   ` Hirokazu Takahashi
2008-09-19 11:20   ` Hirokazu Takahashi
2008-09-19 11:20     ` Hirokazu Takahashi
     [not found]     ` <20080919.202031.86647893.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-19 13:10       ` Vivek Goyal
2008-09-19 13:10     ` Vivek Goyal
2008-09-19 20:28       ` Andrea Righi
     [not found]       ` <20080919131019.GA3606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-19 20:28         ` Andrea Righi [this message]
2008-09-19 20:28           ` Andrea Righi
2008-09-22  9:45           ` Hirokazu Takahashi
2008-09-22  9:45             ` Hirokazu Takahashi
     [not found]           ` <48D40B78.6060709-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-22  9:45             ` Hirokazu Takahashi
2008-09-22  9:45           ` Hirokazu Takahashi
2008-09-22  9:36         ` Hirokazu Takahashi
2008-09-22  9:36       ` Hirokazu Takahashi
2008-09-22  9:36         ` Hirokazu Takahashi
     [not found]         ` <20080922.183651.62951479.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-22 14:30           ` Vivek Goyal
2008-09-22 14:30         ` Vivek Goyal
2008-09-22 14:30         ` Vivek Goyal
2008-09-24  8:29           ` Hirokazu Takahashi
2008-09-24  8:29             ` Hirokazu Takahashi
2008-09-24 14:03             ` Vivek Goyal
2008-09-24 14:03               ` Vivek Goyal
     [not found]               ` <20080924140355.GB547-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-26 16:11                 ` Andrea Righi
2008-09-26 16:11               ` Andrea Righi
2008-09-26 17:11                 ` Andrea Righi
2008-09-26 17:11                 ` Andrea Righi
2008-09-26 17:30                   ` Andrea Righi
2008-09-26 17:30                   ` Andrea Righi
2008-09-29 12:07                   ` Hirokazu Takahashi
2008-09-29 12:07                   ` Hirokazu Takahashi
2008-09-29 12:07                     ` Hirokazu Takahashi
2008-09-29 12:13                     ` Pavel Emelyanov
     [not found]                     ` <20080929.210729.117112710.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-29 12:13                       ` Pavel Emelyanov
2008-09-29 12:13                     ` Pavel Emelyanov
     [not found]                   ` <48DD17A9.9080607-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-26 17:30                     ` Andrea Righi
2008-09-29 12:07                     ` Hirokazu Takahashi
     [not found]                 ` <48DD09AD.2010200-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-26 17:11                   ` Andrea Righi
2008-09-26 16:11               ` Andrea Righi
2008-09-24 14:03             ` Vivek Goyal
     [not found]             ` <20080924.172937.72827863.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-24 14:03               ` Vivek Goyal
2008-09-24  8:29           ` Hirokazu Takahashi
     [not found]           ` <20080922143042.GA19222-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-24  8:29             ` Hirokazu Takahashi
2008-09-24 10:18             ` Hirokazu Takahashi
2008-09-24 10:34             ` Hirokazu Takahashi
2008-09-24 10:18           ` Hirokazu Takahashi
2008-09-24 10:18           ` Hirokazu Takahashi
2008-09-24 10:18             ` Hirokazu Takahashi
2008-09-24 14:52             ` Vivek Goyal
2008-09-24 14:52               ` Vivek Goyal
2008-09-26 12:42               ` Hirokazu Takahashi
     [not found]               ` <20080924145202.GC547-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-26 12:42                 ` Hirokazu Takahashi
2008-09-26 12:42               ` Hirokazu Takahashi
2008-09-26 12:42                 ` Hirokazu Takahashi
2008-09-24 14:52             ` Vivek Goyal
     [not found]             ` <20080924.191803.100102323.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-24 14:52               ` Vivek Goyal
2008-09-24 10:34           ` Hirokazu Takahashi
2008-09-24 10:34             ` Hirokazu Takahashi
     [not found]             ` <20080924.193414.22923673.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-24 12:38               ` Balbir Singh
2008-09-24 14:53               ` Vivek Goyal
2008-09-24 12:38             ` Balbir Singh
2008-09-24 12:38             ` Balbir Singh
2008-09-24 14:53             ` Vivek Goyal
2008-09-24 14:53               ` Vivek Goyal
2008-09-26 13:04               ` Hirokazu Takahashi
     [not found]               ` <20080924145331.GD547-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-26 13:04                 ` Hirokazu Takahashi
2008-09-26 13:04               ` Hirokazu Takahashi
2008-09-26 13:04                 ` Hirokazu Takahashi
2008-09-26 15:56                 ` Andrea Righi
2008-09-26 15:56                   ` Andrea Righi
     [not found]                   ` <48DD0617.3050403-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-29 10:40                     ` Hirokazu Takahashi
2008-09-29 10:40                   ` Hirokazu Takahashi
2008-09-29 10:40                   ` Hirokazu Takahashi
2008-09-29 10:40                     ` Hirokazu Takahashi
2008-09-26 15:56                 ` Andrea Righi
     [not found]                 ` <20080926.220418.83079316.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-26 15:56                   ` Andrea Righi
2008-09-24 14:53             ` Vivek Goyal
2008-09-24 10:34           ` Hirokazu Takahashi
2008-09-22  9:36       ` Hirokazu Takahashi
2008-09-19 13:10     ` Vivek Goyal
2008-09-18 13:15 ` Vivek Goyal
2008-09-19  8:49 ` Takuya Yoshikawa
     [not found]   ` <48D36794.6010002-gVGce1chcLdL9jVzuh4AOg@public.gmane.org>
2008-09-19 11:31     ` Ryo Tsuruta
2008-09-19 11:31   ` Ryo Tsuruta
2008-09-19 11:31   ` Ryo Tsuruta
2008-09-19 11:31     ` Ryo Tsuruta
     [not found] ` <20080918.210418.226794540.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-18 13:15   ` Vivek Goyal
2008-09-19  8:49   ` Takuya Yoshikawa
2008-09-19  8:49 ` Takuya Yoshikawa
  -- strict thread matches above, loose matches on Subject: below --
2008-09-18 12:04 Ryo Tsuruta
2008-09-18 12:04 Ryo Tsuruta

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=48D40B78.6060709@gmail.com \
    --to=righi.andrea-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=agk-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org \
    --cc=balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org \
    --cc=jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
    --cc=xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.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.