From: Yuyang Du <yuyang.du@intel.com>
To: bsegall@google.com
Cc: Peter Zijlstra <peterz@infradead.org>,
mingo@redhat.com, linux-kernel@vger.kernel.org,
rafael.j.wysocki@intel.com, arjan.van.de.ven@intel.com,
len.brown@intel.com, alan.cox@intel.com, mark.gross@intel.com,
pjt@google.com, fengguang.wu@intel.com
Subject: Re: [PATCH 2/2] sched: Rewrite per entity runnable load average tracking
Date: Tue, 8 Jul 2014 08:08:40 +0800 [thread overview]
Message-ID: <20140708000840.GB25653@intel.com> (raw)
In-Reply-To: <xm26r41wyfgc.fsf@sword-of-the-dawn.mtv.corp.google.com>
Thanks, Ben,
On Mon, Jul 07, 2014 at 03:25:07PM -0700, bsegall@google.com wrote:
>
> Yeah, while this is technically limited to 1/us (per cpu), it is still
> much higher - the replaced code would do updates generally only on
> period overflow (1ms) and even then only with nontrivial delta.
>
Will update it in "batch" mode as I replied to Peter. Whether or not set
up a threshold to not update trivial delta, will see.
> Also something to note is that cfs_rq->load_avg just takes samples of
> load.weight every 1us, which seems unfortunate. We thought this was ok
> for p->se.load.weight, because it isn't really likely for userspace to
> be calling nice(2) all the time, but wake/sleeps are more frequent,
> particularly on newer cpus. Still, it might not be /that/ bad.
The sampling of cfs_rq->load.weight should be equivalent to the current
code in that at the end of day cfs_rq->load.weight worth of runnable would
contribute to runnable_load_avg/blocked_load_avg for both the current and
the rewrite.
> Also, as a nitpick/annoyance this does a lot of
> if (entity_is_task(se)) __update_load_avg(... se ...)
> __update_load_avg(... cfs_rq_of(se) ...)
> which is just a waste of the avg struct on every group se, and all it
> buys you is the ability to not have a separate rq->avg struct (removed
> by patch 1) instead of rq->cfs.avg.
I actually struggled on this issue. As we only need a sched_avg for task (not
entity), and a sched_avg for cfs_rq, I planned to move entity avg to task. Good?
So left are the migrate_task_rq_fair() not holding lock issue and cfs_rq->avg.load_avg
overflow issue. I need some time to study them.
Overall, I think none of these issues are originally caused by combination/split
of runnable and blocked. It is just a matter of how synchronized we want to be
(this rewrite is the most synchronized), and the workaround I need to borrow from the
current codes.
Yuyang
next prev parent reply other threads:[~2014-07-08 8:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-02 2:30 [PATCH 1/2] sched: Remove update_rq_runnable_avg Yuyang Du
2014-07-02 2:30 ` [PATCH 2/2] sched: Rewrite per entity runnable load average tracking Yuyang Du
2014-07-07 10:07 ` Peter Zijlstra
2014-07-07 10:46 ` Peter Zijlstra
2014-07-07 20:03 ` Yuyang Du
2014-07-07 22:25 ` bsegall
2014-07-08 0:08 ` Yuyang Du [this message]
2014-07-08 17:04 ` bsegall
2014-07-09 1:07 ` Yuyang Du
2014-07-09 17:08 ` bsegall
2014-07-09 18:39 ` Yuyang Du
2014-07-09 18:45 ` Peter Zijlstra
2014-07-09 19:07 ` bsegall
2014-07-10 10:08 ` Peter Zijlstra
2014-07-10 17:01 ` bsegall
2014-07-10 19:53 ` Yuyang Du
2014-07-10 23:22 ` Yuyang Du
2014-07-11 8:47 ` Peter Zijlstra
2014-07-11 0:52 ` Yuyang Du
2014-07-11 2:01 ` Yuyang Du
2014-07-09 23:30 ` Yuyang Du
2014-07-10 17:06 ` bsegall
2014-07-10 20:08 ` Yuyang Du
2014-07-08 12:50 ` Peter Zijlstra
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=20140708000840.GB25653@intel.com \
--to=yuyang.du@intel.com \
--cc=alan.cox@intel.com \
--cc=arjan.van.de.ven@intel.com \
--cc=bsegall@google.com \
--cc=fengguang.wu@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.gross@intel.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=rafael.j.wysocki@intel.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.