[patch 0/4] [RFC] Another proportional weight IO controller

Fabio Checconi fchecconi at gmail.com
Fri Nov 21 07:21:22 PST 2008


> From: Vivek Goyal <vgoyal at redhat.com>
> Date: Fri, Nov 21, 2008 09:58:23AM -0500
>
> On Fri, Nov 21, 2008 at 04:05:33AM +0100, Fabio Checconi wrote:
> > > From: Vivek Goyal <vgoyal at redhat.com>
> > > Date: Thu, Nov 20, 2008 04:31:55PM -0500
> > >
> > ...
> > > Hi Fabio,
> > > 
> > > I though will give bfq a try.  I get following when I put my current shell
> > > into a newly created cgroup and then try to do "ls".
> > > 
> > 
> > The posted patch cannot work as it is, I'm sorry for that ugly bug.
> > Do you still have problems with this one applied?
> > 
> > ---
> > diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
> > index efb03fc..ed8c597 100644
> > --- a/block/bfq-cgroup.c
> > +++ b/block/bfq-cgroup.c
> > @@ -168,7 +168,7 @@ static void bfq_group_chain_link(struct bfq_data *bfqd, struct cgroup *cgroup,
> >  
> >  		spin_lock_irqsave(&bgrp->lock, flags);
> >  
> > -		rcu_assign_pointer(bfqg->bfqd, bfqd);
> > +		rcu_assign_pointer(leaf->bfqd, bfqd);
> >  		hlist_add_head_rcu(&leaf->group_node, &bgrp->group_data);
> >  		hlist_add_head(&leaf->bfqd_node, &bfqd->group_list);
> 
> Thanks Fabio. This fix solves the issue for me.
> 

Ok thank you.


> I did a quick testing and I can see the differential service if I create
> two cgroups of different priority. How do I map ioprio to shares? I
> mean lets say one cgroup has ioprio 4 and other has got ioprio 7, then
> what's the respective share(%) of each cgroup?
> 

I thought I wrote it somewhere, but maybe I missed that; weights are
mapped linearly, in decreasing order of priority:

  weight = 8 - ioprio

[ the calculation is done in bfq_weight_t bfq_ioprio_to_weight() ]

So, with ioprio 4 you have weight 4, and with ioprio 7 you have weight 1.
The shares, as long as the two tasks/groups are active on the disk,
are 4/5 and 1/5 respectively.

This interface is really ugly, but it allows compatible uses of
ioprios with the two schedulers.


More information about the Containers mailing list