From: Nauman Rafique <nauman@google.com>
To: Fabio Checconi <fchecconi@gmail.com>
Cc: Vivek Goyal <vgoyal@redhat.com>,
linux-kernel@vger.kernel.org,
containers@lists.linux-foundation.org, dm-devel@redhat.com,
jens.axboe@oracle.com, dpshah@google.com, lizf@cn.fujitsu.com,
mikew@google.com, paolo.valente@unimore.it, ryov@valinux.co.jp,
fernando@oss.ntt.co.jp, s-uchida@ap.jp.nec.com,
taka@valinux.co.jp, guijianfeng@cn.fujitsu.com,
jmoyer@redhat.com, dhaval@linux.vnet.ibm.com,
balbir@linux.vnet.ibm.com, righi.andrea@gmail.com,
m-ikeda@ds.jp.nec.com, jbaron@redhat.com, agk@redhat.com,
snitzer@redhat.com, akpm@linux-foundation.org,
peterz@infradead.org, Chad Talbott <ctalbott@google.com>
Subject: Re: [PATCH 02/20] io-controller: Common flat fair queuing code in elevaotor layer
Date: Fri, 29 May 2009 12:06:03 -0700 [thread overview]
Message-ID: <e98e18940905291206p2e05bc5cxf499479270e34074@mail.gmail.com> (raw)
In-Reply-To: <20090529165716.GB18141@gandalf.sssup.it>
On Fri, May 29, 2009 at 9:57 AM, Fabio Checconi <fchecconi@gmail.com> wrote:
>> From: Vivek Goyal <vgoyal@redhat.com>
>> Date: Fri, May 29, 2009 12:06:10PM -0400
>>
>> On Thu, May 28, 2009 at 12:41:27PM -0700, Nauman Rafique wrote:
> ...
>> > I have some concerns about the new preemption logic.
>>
>> Actually we need a more proper definition of in-class preemption. Across
>> class preemption means that RT class always gets to run first.
>>
>> What does in-class preemption mean? If I look at the current CFQ code,
>> it does look like that preempting process will gain share. It is always
>> added to the front of the tree with "rb_key=0" and that means, this new
>> queue will get fresh time slice (even if it got time slice very recently).
>>
>> Currently I have just tried to make the behavior same as CFQ to reduce
>> the possiblility of regressions. That's a different thing that we can
>> discuss what should be the exact behavior in case of in-class preemption
>> and first it needs to be fixed in CFQ, if current behavior is an issue.
>>
>> On the other hand, I am not sure if previous bfq preemption logic was
>> working. We were checking if the new request belonged to the queue which
>> will be served next, then preempt the existing queue. While looking
>> for the next queue, I think we did not consider the current active
>> entity (as it was not on the tree). So after expiry of the current
>> queue, it might get selected next if it has not got its share. So there
>> was no point in preempting the queue. If queue already got its share, then
>> anyway the next queue will be selected next and there is no point in
>> preempting the current queue.
>>
>
> BFQ had no preemption logic, as far as I know; it simply was not
> preemptive, and the guarantees it provided took that into account.
>
> I don't know what is the best way to introduce a CFQ-like preemption logic
> into the wf2q+ code; for sure anything that does not schedule according
> to the algorithm's timestamps is a good candidate to break the guarantees
> the scheduler can provide, making it an extremely complex way to get
> the same worst-case delays of a (much simpler) round-robin scheduler.
>
What you guys think of my suggestion of handling preemption?
Basically, we don't modify the start/finish tags, so overall the
fairness properties should not be broken. But in short term, we still
allow preemption and let one queue jump another.
next prev parent reply other threads:[~2009-05-29 19:06 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-26 22:41 [RFC] IO scheduler based IO controller V3 Vivek Goyal
2009-05-26 22:41 ` [PATCH 01/20] io-controller: Documentation Vivek Goyal
2009-05-29 15:42 ` Balbir Singh
2009-05-29 15:53 ` Vivek Goyal
2009-05-26 22:41 ` [PATCH 02/20] io-controller: Common flat fair queuing code in elevaotor layer Vivek Goyal
2009-05-27 20:53 ` Nauman Rafique
2009-05-28 8:52 ` Fabio Checconi
2009-05-28 16:00 ` Vivek Goyal
2009-05-28 19:41 ` Nauman Rafique
2009-05-29 16:06 ` Vivek Goyal
2009-05-29 16:57 ` Fabio Checconi
2009-05-29 19:06 ` Nauman Rafique [this message]
2009-05-29 19:16 ` Vivek Goyal
2009-06-08 1:08 ` Gui Jianfeng
2009-06-08 12:58 ` Vivek Goyal
2009-06-08 7:44 ` Gui Jianfeng
2009-06-08 13:56 ` Vivek Goyal
2009-05-26 22:41 ` [PATCH 03/20] io-controller: Charge for time slice based on average disk rate Vivek Goyal
2009-05-26 22:41 ` [PATCH 04/20] io-controller: Modify cfq to make use of flat elevator fair queuing Vivek Goyal
2009-05-26 22:41 ` [PATCH 05/20] io-controller: Common hierarchical fair queuing code in elevaotor layer Vivek Goyal
2009-06-05 9:36 ` Gui Jianfeng
2009-06-05 13:21 ` Vivek Goyal
2009-05-26 22:41 ` [PATCH 06/20] io-controller: cfq changes to use " Vivek Goyal
2009-05-26 22:41 ` [PATCH 07/20] io-controller: Export disk time used and nr sectors dipatched through cgroups Vivek Goyal
2009-05-26 22:41 ` [PATCH 08/20] io-controller: idle for sometime on sync queue before expiring it Vivek Goyal
2009-05-26 22:41 ` [PATCH 09/20] io-controller: Separate out queue and data Vivek Goyal
2009-05-26 22:41 ` [PATCH 10/20] io-conroller: Prepare elevator layer for single queue schedulers Vivek Goyal
2009-06-05 9:17 ` Gui Jianfeng
2009-06-05 13:22 ` Vivek Goyal
2009-05-26 22:42 ` [PATCH 11/20] io-controller: noop changes for hierarchical fair queuing Vivek Goyal
2009-05-26 22:42 ` [PATCH 12/20] io-controller: deadline " Vivek Goyal
2009-05-26 22:42 ` [PATCH 13/20] io-controller: anticipatory " Vivek Goyal
2009-05-26 22:42 ` [PATCH 14/20] blkio_cgroup patches from Ryo to track async bios Vivek Goyal
2009-05-26 22:42 ` [PATCH 15/20] io-controller: map async requests to appropriate cgroup Vivek Goyal
2009-05-28 9:27 ` Ryo Tsuruta
2009-05-28 16:57 ` Vivek Goyal
2009-05-28 18:04 ` Nauman Rafique
2009-05-29 3:17 ` Ryo Tsuruta
2009-05-29 13:38 ` Vivek Goyal
2009-06-01 11:25 ` Ryo Tsuruta
2009-05-26 22:42 ` [PATCH 16/20] io-controller: IO group refcounting support Vivek Goyal
2009-06-08 2:03 ` Gui Jianfeng
2009-06-08 13:53 ` Vivek Goyal
2009-05-26 22:42 ` [PATCH 17/20] io-controller: Per cgroup request descriptor support Vivek Goyal
2009-05-26 22:42 ` [PATCH 18/20] io-controller: Support per cgroup per device weights and io class Vivek Goyal
2009-05-26 22:42 ` [PATCH 19/20] io-controller: Debug hierarchical IO scheduling Vivek Goyal
2009-05-26 22:42 ` [PATCH 20/20] io-controller: experimental debug patch for async queue wait before expiry Vivek Goyal
2009-06-19 20:37 [RFC] IO scheduler based io controller (V5) Vivek Goyal
2009-06-19 20:37 ` [PATCH 02/20] io-controller: Common flat fair queuing code in elevaotor layer Vivek Goyal
2009-06-22 8:46 ` Balbir Singh
2009-06-22 12:43 ` Fabio Checconi
2009-06-23 2:43 ` Vivek Goyal
2009-06-23 4:10 ` Fabio Checconi
2009-06-23 7:32 ` Balbir Singh
2009-06-23 13:42 ` Fabio Checconi
2009-06-23 2:05 ` Vivek Goyal
2009-06-23 2:20 ` Jeff Moyer
2009-06-30 6:40 ` Gui Jianfeng
2009-07-01 1:28 ` Vivek Goyal
2009-07-01 9:24 ` Gui Jianfeng
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=e98e18940905291206p2e05bc5cxf499479270e34074@mail.gmail.com \
--to=nauman@google.com \
--cc=agk@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=ctalbott@google.com \
--cc=dhaval@linux.vnet.ibm.com \
--cc=dm-devel@redhat.com \
--cc=dpshah@google.com \
--cc=fchecconi@gmail.com \
--cc=fernando@oss.ntt.co.jp \
--cc=guijianfeng@cn.fujitsu.com \
--cc=jbaron@redhat.com \
--cc=jens.axboe@oracle.com \
--cc=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=m-ikeda@ds.jp.nec.com \
--cc=mikew@google.com \
--cc=paolo.valente@unimore.it \
--cc=peterz@infradead.org \
--cc=righi.andrea@gmail.com \
--cc=ryov@valinux.co.jp \
--cc=s-uchida@ap.jp.nec.com \
--cc=snitzer@redhat.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®