cgroups.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>,
	lkml <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	Cgroups <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCHSET] blk-throttle: implement proper hierarchy support
Date: Thu, 2 May 2013 15:31:39 -0400	[thread overview]
Message-ID: <20130502193139.GL30020@redhat.com> (raw)
In-Reply-To: <CAOS58YOk7G=dBG1v5Ed2z3biMMyKkkutp30vH5XC72z0_Z85cw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Thu, May 02, 2013 at 12:11:30PM -0700, Tejun Heo wrote:
> Hey,
> 
> 
> On Thu, May 2, 2013 at 12:07 PM, Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> > It should not. Why do you think in flat model an application which
> > throttles itself will be penalized.
> >
> > So application issue an bio of size 1MB in a group of rate 1MB/s. bio
> > gets queued and gets dispatched after 1 second. Almost immediately next
> > bio will come from application (as application also is throttling
> > itself at 1MB/s rate). And then this bio waits for a second. So we
> > almost get steady rate of 1MB/s as configured.
> 
> I'm confused now, so why does the hierarchy make any difference? When
> seen from the parent, what's the difference between a process issuing
> IO directly and an IO which already went through another throttle
> layer if the IOs arrive at the same intervals?

I think my example was little flawed previously. I think you are right.
Penalty is not probably as bad as I have been thinking.

So if both parent and child have limit of 1MB/s and application is doing
IO (say at 2MB/sec), in long term it should still see 1MB/s rate.

		T1	T2	T3	T4	T5	T6
Parent group:		B1	B2	B3	B4	B5
Child group:	B1	B2	B3	B4	B5	B6 

Above B1 to B6 are bios of 1MB size. T1 to T6 are 1 second time interval.
B1 waits for T1 interval in child group and then for T2 interval in
parent group and then gets dispatched. But a pipe line has formed in
child group and B2 is waiting in child group in T2 slice. So penalty
is not double.

So each group migration will add one extra wait period. In above case
5 bios dispatched in 6 seconds. Longer the sampling interval, delay
remains the constant to one time interval and % penalty goes down.

Thanks
Vivek

  parent reply	other threads:[~2013-05-02 19:31 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-02  0:39 [PATCHSET] blk-throttle: implement proper hierarchy support Tejun Heo
2013-05-02  0:39 ` [PATCH 11/31] blk-throttle: rename throtl_rb_root to throtl_service_queue Tejun Heo
2013-05-02  0:39 ` [PATCH 17/31] blk-throttle: move bio_lists[] and friends " Tejun Heo
     [not found] ` <1367455189-6957-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-05-02  0:39   ` [PATCH 01/31] blkcg: fix error return path in blkg_create() Tejun Heo
2013-05-02  0:39   ` [PATCH 02/31] blkcg: move blkg_for_each_descendant_pre() to block/blk-cgroup.h Tejun Heo
2013-05-02  0:39   ` [PATCH 03/31] blkcg: implement blkg_for_each_descendant_post() Tejun Heo
2013-05-02  0:39   ` [PATCH 04/31] blkcg: invoke blkcg_policy->pd_init() after parent is linked Tejun Heo
2013-05-02  0:39   ` [PATCH 05/31] blkcg: move bulk of blkcg_gq release operations to the RCU callback Tejun Heo
2013-05-02  0:39   ` [PATCH 06/31] blk-throttle: remove spurious throtl_enqueue_tg() call from throtl_select_dispatch() Tejun Heo
2013-05-02  0:39   ` [PATCH 07/31] blk-throttle: removed deferred config application mechanism Tejun Heo
     [not found]     ` <1367455189-6957-8-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-05-02 14:49       ` Vivek Goyal
     [not found]         ` <20130502144912.GE30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 17:27           ` Tejun Heo
2013-05-02  0:39   ` [PATCH 08/31] blk-throttle: collapse throtl_dispatch() into the work function Tejun Heo
2013-05-02  0:39   ` [PATCH 09/31] blk-throttle: relocate throtl_schedule_delayed_work() Tejun Heo
2013-05-02  0:39   ` [PATCH 10/31] blk-throttle: remove pointless throtl_nr_queued() optimizations Tejun Heo
2013-05-02  0:39   ` [PATCH 12/31] blk-throttle: simplify throtl_grp flag handling Tejun Heo
2013-05-02  0:39   ` [PATCH 13/31] blk-throttle: add backlink pointer from throtl_grp to throtl_data Tejun Heo
2013-05-02  0:39   ` [PATCH 14/31] blk-throttle: pass around throtl_service_queue instead of throtl_data Tejun Heo
2013-05-02  0:39   ` [PATCH 15/31] blk-throttle: reorganize throtl_service_queue passed around as argument Tejun Heo
     [not found]     ` <1367455189-6957-16-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-05-02 15:21       ` Vivek Goyal
     [not found]         ` <20130502152148.GF30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 17:29           ` Tejun Heo
2013-05-02  0:39   ` [PATCH 16/31] blk-throttle: add throtl_grp->service_queue Tejun Heo
2013-05-02  0:39   ` [PATCH 18/31] blk-throttle: dispatch to throtl_data->service_queue.bio_lists[] Tejun Heo
2013-05-02  0:39   ` [PATCH 19/31] blk-throttle: generalize update_disptime optimization in blk_throtl_bio() Tejun Heo
2013-05-02  0:39   ` [PATCH 25/31] blk-throttle: dispatch from throtl_pending_timer_fn() Tejun Heo
2013-05-02  0:39   ` [PATCH 28/31] blk-throttle: make tg_dispatch_one_bio() ready for hierarchy Tejun Heo
2013-05-02 17:34   ` [PATCHSET] blk-throttle: implement proper hierarchy support Vivek Goyal
     [not found]     ` <20130502173428.GA4771-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 17:57       ` Tejun Heo
     [not found]         ` <20130502175701.GL19814-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-02 18:17           ` Vivek Goyal
     [not found]             ` <20130502181747.GH30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 18:29               ` Tejun Heo
     [not found]                 ` <20130502182933.GN19814-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-02 18:45                   ` Vivek Goyal
     [not found]                     ` <20130502184514.GI30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 18:49                       ` Tejun Heo
     [not found]                         ` <20130502184953.GP19814-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-02 19:07                           ` Vivek Goyal
     [not found]                             ` <20130502190732.GK30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 19:11                               ` Tejun Heo
     [not found]                                 ` <CAOS58YOk7G=dBG1v5Ed2z3biMMyKkkutp30vH5XC72z0_Z85cw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-02 19:31                                   ` Vivek Goyal [this message]
     [not found]                                     ` <20130502193139.GL30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 23:13                                       ` Tejun Heo
     [not found]                                         ` <20130502231307.GT19814-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-03 17:56                                           ` Vivek Goyal
     [not found]                                             ` <20130503175652.GB6062-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-03 18:57                                               ` Tejun Heo
     [not found]                                                 ` <20130503185751.GA22860-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-03 18:58                                                   ` Tejun Heo
2013-05-03 19:08                                                   ` Vivek Goyal
     [not found]                                                     ` <20130503190823.GC6062-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-03 19:14                                                       ` Tejun Heo
     [not found]                                                         ` <20130503191418.GC22860-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-03 19:26                                                           ` Vivek Goyal
2013-05-03 21:05                                                           ` Vivek Goyal
     [not found]                                                             ` <20130503210513.GE6062-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-03 23:54                                                               ` Tejun Heo
     [not found]                                                                 ` <20130503235455.GE22860-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-06 17:33                                                                   ` Vivek Goyal
2013-05-02 18:08       ` Vivek Goyal
     [not found]         ` <20130502180815.GG30020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-02 18:44           ` Tejun Heo
     [not found]             ` <20130502184426.GO19814-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-02 18:59               ` Vivek Goyal
2013-05-04  0:50   ` [PATCH 29.5/32] blk-throttle: add throtl_qnode for dispatch fairness Tejun Heo
     [not found]     ` <20130504005044.GF22860-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-04  0:53       ` Tejun Heo
2013-05-06 16:00       ` Vivek Goyal
     [not found]         ` <20130506160006.GA11731-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-06 18:35           ` Tejun Heo
2013-05-02  0:39 ` [PATCH 20/31] blk-throttle: add throtl_service_queue->parent_sq Tejun Heo
2013-05-02  0:39 ` [PATCH 21/31] blk-throttle: implement sq_to_tg(), sq_to_td() and throtl_log() Tejun Heo
     [not found]   ` <1367455189-6957-22-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-05-06 17:36     ` Vivek Goyal
     [not found]       ` <20130506173644.GD11731-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-06 18:38         ` Tejun Heo
2013-05-06 20:38         ` Tejun Heo
     [not found]           ` <20130506203827.GE800-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-05-06 20:39             ` Tejun Heo
2013-05-06 20:41             ` Vivek Goyal
     [not found]               ` <20130506204141.GF11731-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-06 20:43                 ` Tejun Heo
2013-05-02  0:39 ` [PATCH 22/31] blk-throttle: set REQ_THROTTLED from throtl_charge_bio() and gate stats update with it Tejun Heo
2013-05-02  0:39 ` [PATCH 23/31] blk-throttle: separate out throtl_service_queue->pending_timer from throtl_data->dispatch_work Tejun Heo
2013-05-02  0:39 ` [PATCH 24/31] blk-throttle: implement dispatch looping Tejun Heo
2013-05-02  0:39 ` [PATCH 26/31] blk-throttle: make blk_throtl_drain() ready for hierarchy Tejun Heo
2013-05-02  0:39 ` [PATCH 27/31] blk-throttle: make blk_throtl_bio() " Tejun Heo
2013-05-02  0:39 ` [PATCH 29/31] blk-throttle: make throtl_pending_timer_fn() " Tejun Heo
2013-05-02  0:39 ` [PATCH 30/31] blk-throttle: implement throtl_grp->has_rules[] Tejun Heo
2013-05-02  0:39 ` [PATCH 31/31] blk-throttle: implement proper hierarchy support Tejun Heo

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=20130502193139.GL30020@redhat.com \
    --to=vgoyal-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).