From: Andrea Righi <arighi@develer.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>,
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Greg Thelen <gthelen@google.com>,
Wu Fengguang <fengguang.wu@intel.com>,
Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
Ryo Tsuruta <ryov@valinux.co.jp>,
Hirokazu Takahashi <taka@valinux.co.jp>,
Jens Axboe <axboe@kernel.dk>,
Andrew Morton <akpm@linux-foundation.org>,
containers@lists.linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 0/5] blk-throttle: writeback and swap IO control
Date: Wed, 23 Feb 2011 09:32:06 +0100 [thread overview]
Message-ID: <20110223083206.GA2174@linux.develer.com> (raw)
In-Reply-To: <20110223000358.GM28269@redhat.com>
On Tue, Feb 22, 2011 at 07:03:58PM -0500, Vivek Goyal wrote:
> > I think we should accept to have an inode granularity. We could redesign
> > the writeback code to work per-cgroup / per-page, etc. but that would
> > add a huge overhead. The limit of inode granularity could be an
> > acceptable tradeoff, cgroups are supposed to work to different files
> > usually, well.. except when databases come into play (ouch!).
>
> Agreed. Granularity of per inode level might be accetable in many
> cases. Again, I am worried faster group getting stuck behind slower
> group.
>
> I am wondering if we are trying to solve the problem of ASYNC write throttling
> at wrong layer. Should ASYNC IO be throttled before we allow task to write to
> page cache. The way we throttle the process based on dirty ratio, can we
> just check for throttle limits also there or something like that.(I think
> that's what you had done in your initial throttling controller implementation?)
Right. This is exactly the same approach I've used in my old throttling
controller: throttle sync READs and WRITEs at the block layer and async
WRITEs when the task is dirtying memory pages.
This is probably the simplest way to resolve the problem of faster group
getting blocked by slower group, but the controller will be a little bit
more leaky, because the writeback IO will be never throttled and we'll
see some limited IO spikes during the writeback. However, this is always
a better solution IMHO respect to the current implementation that is
affected by that kind of priority inversion problem.
I can try to add this logic to the current blk-throttle controller if
you think it is worth to test it.
-Andrea
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Righi <arighi@develer.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>,
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Greg Thelen <gthelen@google.com>,
Wu Fengguang <fengguang.wu@intel.com>,
Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
Ryo Tsuruta <ryov@valinux.co.jp>,
Hirokazu Takahashi <taka@valinux.co.jp>,
Jens Axboe <axboe@kernel.dk>,
Andrew Morton <akpm@linux-foundation.org>,
containers@lists.linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 0/5] blk-throttle: writeback and swap IO control
Date: Wed, 23 Feb 2011 09:32:06 +0100 [thread overview]
Message-ID: <20110223083206.GA2174@linux.develer.com> (raw)
In-Reply-To: <20110223000358.GM28269@redhat.com>
On Tue, Feb 22, 2011 at 07:03:58PM -0500, Vivek Goyal wrote:
> > I think we should accept to have an inode granularity. We could redesign
> > the writeback code to work per-cgroup / per-page, etc. but that would
> > add a huge overhead. The limit of inode granularity could be an
> > acceptable tradeoff, cgroups are supposed to work to different files
> > usually, well.. except when databases come into play (ouch!).
>
> Agreed. Granularity of per inode level might be accetable in many
> cases. Again, I am worried faster group getting stuck behind slower
> group.
>
> I am wondering if we are trying to solve the problem of ASYNC write throttling
> at wrong layer. Should ASYNC IO be throttled before we allow task to write to
> page cache. The way we throttle the process based on dirty ratio, can we
> just check for throttle limits also there or something like that.(I think
> that's what you had done in your initial throttling controller implementation?)
Right. This is exactly the same approach I've used in my old throttling
controller: throttle sync READs and WRITEs at the block layer and async
WRITEs when the task is dirtying memory pages.
This is probably the simplest way to resolve the problem of faster group
getting blocked by slower group, but the controller will be a little bit
more leaky, because the writeback IO will be never throttled and we'll
see some limited IO spikes during the writeback. However, this is always
a better solution IMHO respect to the current implementation that is
affected by that kind of priority inversion problem.
I can try to add this logic to the current blk-throttle controller if
you think it is worth to test it.
-Andrea
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-02-23 8:32 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-22 17:12 [PATCH 0/5] blk-throttle: writeback and swap IO control Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 17:12 ` [PATCH 1/5] blk-cgroup: move blk-cgroup.h in include/linux/blk-cgroup.h Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 17:12 ` [PATCH 2/5] blk-cgroup: introduce task_to_blkio_cgroup() Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 17:12 ` [PATCH 3/5] page_cgroup: make page tracking available for blkio Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 20:01 ` Jonathan Corbet
2011-02-22 20:01 ` Jonathan Corbet
2011-02-22 21:57 ` Vivek Goyal
2011-02-22 21:57 ` Vivek Goyal
2011-02-22 23:01 ` Andrea Righi
2011-02-22 23:01 ` Andrea Righi
2011-02-22 23:06 ` Vivek Goyal
2011-02-22 23:06 ` Vivek Goyal
[not found] ` <20110222230630.GL28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:21 ` Jonathan Corbet
2011-02-22 23:37 ` Andrea Righi
2011-02-22 23:21 ` Jonathan Corbet
2011-02-22 23:21 ` Jonathan Corbet
2011-02-22 23:37 ` Andrea Righi
2011-02-22 23:37 ` Andrea Righi
2011-02-23 4:49 ` KAMEZAWA Hiroyuki
2011-02-23 4:49 ` KAMEZAWA Hiroyuki
[not found] ` <20110223134910.abbdc931.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-23 8:59 ` Andrea Righi
2011-02-23 8:59 ` Andrea Righi
2011-02-23 8:59 ` Andrea Righi
2011-02-23 23:58 ` KAMEZAWA Hiroyuki
2011-02-23 23:58 ` KAMEZAWA Hiroyuki
2011-02-25 0:48 ` Andrea Righi
2011-02-25 0:48 ` Andrea Righi
[not found] ` <20110224085805.14766e93.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-25 0:48 ` Andrea Righi
[not found] ` <20110223085911.GC2174-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 23:58 ` KAMEZAWA Hiroyuki
[not found] ` <20110222233718.GF23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 4:49 ` KAMEZAWA Hiroyuki
2011-02-22 23:27 ` Jonathan Corbet
2011-02-22 23:27 ` Jonathan Corbet
[not found] ` <20110222162729.054fe596-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2011-02-22 23:48 ` Andrea Righi
2011-02-22 23:48 ` Andrea Righi
2011-02-22 23:48 ` Andrea Righi
[not found] ` <20110222230146.GB23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-22 23:06 ` Vivek Goyal
2011-02-22 23:27 ` Jonathan Corbet
[not found] ` <20110222130145.37cb151e-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2011-02-22 21:57 ` Vivek Goyal
2011-02-22 23:01 ` Andrea Righi
[not found] ` <1298394776-9957-4-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 20:01 ` Jonathan Corbet
2011-02-22 21:22 ` Vivek Goyal
2011-02-22 21:22 ` Vivek Goyal
2011-02-22 21:22 ` Vivek Goyal
2011-02-22 23:08 ` Andrea Righi
2011-02-22 23:08 ` Andrea Righi
[not found] ` <20110222212253.GJ28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:08 ` Andrea Righi
2011-02-22 17:12 ` [PATCH 4/5] blk-throttle: track buffered and anonymous pages Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 18:42 ` Chad Talbott
2011-02-22 18:42 ` Chad Talbott
[not found] ` <AANLkTinD2ZH3hw_iqVpvMjMRbUkXMBgttjd2NevvYq9x-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-22 19:12 ` Andrea Righi
2011-02-22 20:49 ` Vivek Goyal
2011-02-22 19:12 ` Andrea Righi
2011-02-22 19:12 ` Andrea Righi
2011-02-22 20:49 ` Vivek Goyal
2011-02-22 20:49 ` Vivek Goyal
2011-02-22 23:03 ` Andrea Righi
2011-02-22 23:03 ` Andrea Righi
[not found] ` <20110222204928.GH28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:03 ` Andrea Righi
[not found] ` <1298394776-9957-5-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 18:42 ` Chad Talbott
2011-02-22 21:00 ` Vivek Goyal
2011-02-22 21:00 ` Vivek Goyal
2011-02-22 21:00 ` Vivek Goyal
2011-02-22 23:05 ` Andrea Righi
2011-02-22 23:05 ` Andrea Righi
2011-02-23 0:07 ` Vivek Goyal
2011-02-23 0:07 ` Vivek Goyal
2011-02-23 8:37 ` Andrea Righi
2011-02-23 8:37 ` Andrea Righi
[not found] ` <20110223000718.GN28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23 8:37 ` Andrea Righi
[not found] ` <20110222230534.GD23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 0:07 ` Vivek Goyal
[not found] ` <20110222210030.GI28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:05 ` Andrea Righi
[not found] ` <1298394776-9957-1-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 17:12 ` [PATCH 1/5] blk-cgroup: move blk-cgroup.h in include/linux/blk-cgroup.h Andrea Righi
2011-02-22 17:12 ` [PATCH 2/5] blk-cgroup: introduce task_to_blkio_cgroup() Andrea Righi
2011-02-22 17:12 ` [PATCH 3/5] page_cgroup: make page tracking available for blkio Andrea Righi
2011-02-22 17:12 ` [PATCH 4/5] blk-throttle: track buffered and anonymous pages Andrea Righi
2011-02-22 17:12 ` [PATCH 5/5] blk-throttle: buffered and anonymous page tracking instrumentation Andrea Righi
2011-02-22 19:34 ` [PATCH 0/5] blk-throttle: writeback and swap IO control Vivek Goyal
2011-02-24 6:08 ` Balbir Singh
2011-02-22 17:12 ` [PATCH 5/5] blk-throttle: buffered and anonymous page tracking instrumentation Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 19:34 ` [PATCH 0/5] blk-throttle: writeback and swap IO control Vivek Goyal
2011-02-22 19:34 ` Vivek Goyal
[not found] ` <20110222193403.GG28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 22:41 ` Andrea Righi
2011-02-22 22:41 ` Andrea Righi
2011-02-22 22:41 ` Andrea Righi
2011-02-23 0:03 ` Vivek Goyal
2011-02-23 0:03 ` Vivek Goyal
2011-02-23 8:32 ` Andrea Righi [this message]
2011-02-23 8:32 ` Andrea Righi
[not found] ` <20110223083206.GA2174-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 15:23 ` Vivek Goyal
2011-02-23 15:23 ` Vivek Goyal
2011-02-23 15:23 ` Vivek Goyal
2011-02-23 23:14 ` Andrea Righi
2011-02-23 23:14 ` Andrea Righi
[not found] ` <20110223231410.GB1744-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-24 0:10 ` Vivek Goyal
2011-02-24 0:10 ` Vivek Goyal
2011-02-24 0:10 ` Vivek Goyal
2011-02-24 0:40 ` KAMEZAWA Hiroyuki
2011-02-24 0:40 ` KAMEZAWA Hiroyuki
2011-02-24 2:01 ` Greg Thelen
2011-02-24 2:01 ` Greg Thelen
[not found] ` <20110224094039.89c07bea.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-24 2:01 ` Greg Thelen
2011-02-24 16:18 ` Vivek Goyal
[not found] ` <20110224161844.GD18494__23141.7772280567$1298564487$gmane$org-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-03-23 18:48 ` Daniel Poelzleithner
2011-02-24 16:18 ` Vivek Goyal
2011-02-24 16:18 ` Vivek Goyal
2011-02-25 0:54 ` Andrea Righi
2011-02-25 0:54 ` Andrea Righi
[not found] ` <20110224001033.GF2526-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-24 0:40 ` KAMEZAWA Hiroyuki
2011-02-25 0:54 ` Andrea Righi
[not found] ` <20110223152354.GA2526-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23 23:14 ` Andrea Righi
[not found] ` <20110223000358.GM28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23 8:32 ` Andrea Righi
[not found] ` <20110222224141.GA23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 0:03 ` Vivek Goyal
2011-02-24 6:08 ` Balbir Singh
2011-02-24 6:08 ` Balbir Singh
-- strict thread matches above, loose matches on Subject: below --
2011-02-22 17:12 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=20110223083206.GA2174@linux.develer.com \
--to=arighi@develer.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=balbir@linux.vnet.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=gthelen@google.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nishimura@mxp.nes.nec.co.jp \
--cc=ryov@valinux.co.jp \
--cc=taka@valinux.co.jp \
--cc=vgoyal@redhat.com \
/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.