From: Vivek Goyal <vgoyal@redhat.com>
To: Ryo Tsuruta <ryov@valinux.co.jp>
Cc: nauman@google.com, fernando@oss.ntt.co.jp,
linux-kernel@vger.kernel.org, jmoyer@redhat.com,
dm-devel@redhat.com, jens.axboe@oracle.com, agk@redhat.com,
balbir@linux.vnet.ibm.com, Andrea Righi <righi.andrea@gmail.com>
Subject: Re: [dm-devel] Re: dm-ioband: Test results.
Date: Mon, 20 Apr 2009 17:37:38 -0400 [thread overview]
Message-ID: <20090420213738.GB9080@redhat.com> (raw)
In-Reply-To: <20090420.172959.193682665.ryov@valinux.co.jp>
On Mon, Apr 20, 2009 at 05:29:59PM +0900, Ryo Tsuruta wrote:
> Hi Vivek and Nauman,
>
> > On Thu, Apr 16, 2009 at 7:11 AM, Vivek Goyal <vgoyal@redhat.com> wrote:
> > > On Thu, Apr 16, 2009 at 11:47:50AM +0900, Ryo Tsuruta wrote:
> > >> Hi Vivek,
> > >>
> > >> > General thoughts about dm-ioband
> > >> > ================================
> > >> > - Implementing control at second level has the advantage tha one does not
> > >> > have to muck with IO scheduler code. But then it also has the
> > >> > disadvantage that there is no communication with IO scheduler.
> > >> >
> > >> > - dm-ioband is buffering bio at higher layer and then doing FIFO release
> > >> > of these bios. This FIFO release can lead to priority inversion problems
> > >> > in certain cases where RT requests are way behind BE requests or
> > >> > reader starvation where reader bios are getting hidden behind writer
> > >> > bios etc. These are hard to notice issues in user space. I guess above
> > >> > RT results do highlight the RT task problems. I am still working on
> > >> > other test cases and see if i can show the probelm.
> >
> > Ryo, I could not agree more with Vivek here. At Google, we have very
> > stringent requirement for latency of our RT requests. If RT requests
> > get queued in any higher layer (behind BE requests), all bets are off.
> > I don't find doing IO control at two layer for this particular reason.
> > The upper layer (dm-ioband in this case) would have to make sure that
> > RT requests are released immediately, irrespective of the state (FIFO
> > queuing and tokens held). And the lower layer (IO scheduling layer)
> > has to do the same. This requirement is not specific to us. I have
> > seen similar comments from filesystem folks here previously, in the
> > context of metadata updates being submitted as RT. Basically, the
> > semantics of RT class has to be preserved by any solution that is
> > build on top of CFQ scheduler.
>
> I could see the priority inversion by running Vivek's script and I
> understand how RT requests has to be handled. I'll create a patch
> which makes dm-ioband cooperates with CFQ scheduler. However, do you
> think we need some kind of limitation on processes which belong to the
> RT class to prevent the processes from depleting bandwidth?
I think to begin with, we can keep the same behavior as CFQ. An RT task
can starve other tasks.
But we should provide two configurations and user can choose any one.
If RT task is in root group, it will starve other sibling tasks/groups. If
it is with-in a cgroup, then it will starve its sibling only with-in that
cgroup and will not impact other cgroups.
What I mean is following.
root
/ \
RT group1
In above configuration RT task will starve everybody else.
root
/ \
group1 group2
/ \
RT BE
In above configuration RT task will starve only sibling in group1 but
will not starve the tasks in group2 or in root.
Thanks
Vivek
next prev parent reply other threads:[~2009-04-20 21:38 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-13 4:05 dm-ioband: Test results Ryo Tsuruta
2009-04-13 14:46 ` Vivek Goyal
2009-04-14 2:49 ` Vivek Goyal
2009-04-14 5:27 ` Ryo Tsuruta
2009-04-14 9:30 ` [dm-devel] " Ryo Tsuruta
2009-04-15 17:04 ` Vivek Goyal
2009-04-16 12:56 ` Ryo Tsuruta
2009-04-16 13:32 ` Vivek Goyal
2009-04-15 4:37 ` Vivek Goyal
2009-04-15 13:38 ` Ryo Tsuruta
2009-04-15 14:10 ` Vivek Goyal
2009-04-15 16:17 ` Vivek Goyal
2009-04-16 2:47 ` [dm-devel] " Ryo Tsuruta
2009-04-16 14:11 ` Vivek Goyal
2009-04-16 20:24 ` Nauman Rafique
2009-04-20 8:29 ` Ryo Tsuruta
2009-04-20 9:07 ` Nauman Rafique
2009-04-21 12:06 ` Ryo Tsuruta
2009-04-21 12:10 ` Ryo Tsuruta
2009-04-21 13:57 ` Mike Snitzer
2009-04-21 14:16 ` Vivek Goyal
2009-04-22 0:50 ` Li Zefan
2009-04-22 3:14 ` [dm-devel] " Ryo Tsuruta
2009-04-22 15:18 ` Mike Snitzer
2009-04-27 10:30 ` Ryo Tsuruta
2009-04-27 12:44 ` Ryo Tsuruta
2009-04-27 13:03 ` Mike Snitzer
2009-04-20 21:37 ` Vivek Goyal [this message]
2009-04-21 12:18 ` [dm-devel] " Ryo Tsuruta
2009-04-16 20:57 ` Vivek Goyal
2009-04-17 2:11 ` Vivek Goyal
2009-04-17 2:28 ` Vivek Goyal
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=20090420213738.GB9080@redhat.com \
--to=vgoyal@redhat.com \
--cc=agk@redhat.com \
--cc=balbir@linux.vnet.ibm.com \
--cc=dm-devel@redhat.com \
--cc=fernando@oss.ntt.co.jp \
--cc=jens.axboe@oracle.com \
--cc=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nauman@google.com \
--cc=righi.andrea@gmail.com \
--cc=ryov@valinux.co.jp \
/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