From: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
To: Peter Zijlstra <a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
Paul Turner <pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
"Eric W. Biederman"
<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>,
handai.szj-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Andrew.Phillips-xheW4WVAX9Y@public.gmane.org,
Serge Hallyn
<serge.hallyn-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Subject: Re: [PATCH v3 1/6] measure exec_clock for rt sched entities
Date: Wed, 30 May 2012 14:32:07 +0400 [thread overview]
Message-ID: <4FC5F727.2040804@parallels.com> (raw)
In-Reply-To: <1338373759.26856.238.camel@twins>
On 05/30/2012 02:29 PM, Peter Zijlstra wrote:
> On Wed, 2012-05-30 at 13:48 +0400, Glauber Costa wrote:
>> For simetry with the cfq tasks, measure exec_clock for the rt
>> sched entities (rt_se).
>
> Symmetry methinks..
=p bad me
> anyway, where is the symmetry?, fair.c:update_curr()
> doesn't do the for_each_sched_entity() thing.
It does implicitly, because fair.c:update_curr() is called from
within enqueue_task(), that is called for_each_sched_entity in
enqueue_task_fair().
>
>> This can be used in a number of fashions. For instance, to
>> compute total cpu usage in a cgroup that is generated by
>> rt tasks.
>>
>> Signed-off-by: Glauber Costa<glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>> CC: Peter Zijlstra<a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org>
>> CC: Paul Turner<pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
>> ---
>> kernel/sched/rt.c | 5 +++++
>> kernel/sched/sched.h | 1 +
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
>> index c5565c3..30ee4e2 100644
>> --- a/kernel/sched/rt.c
>> +++ b/kernel/sched/rt.c
>> @@ -919,6 +919,11 @@ static void update_curr_rt(struct rq *rq)
>>
>> sched_rt_avg_update(rq, delta_exec);
>>
>> + for_each_sched_rt_entity(rt_se) {
>> + rt_rq = rt_rq_of_se(rt_se);
>> + schedstat_add(rt_rq, exec_clock, delta_exec);
>> + }
>> +
>> if (!rt_bandwidth_enabled())
>> return;
>
> See, this just makes me sad.. you now have a double
> for_each_sched_rt_entity() loop.
The way I read the rt.c code, it it is called from enqueue_task_rt only
once.
WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: <linux-kernel@vger.kernel.org>, <cgroups@vger.kernel.org>,
<devel@openvz.org>, Paul Turner <pjt@google.com>,
Tejun Heo <tj@kernel.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
<handai.szj@gmail.com>, <Andrew.Phillips@lmax.com>,
Serge Hallyn <serge.hallyn@canonical.com>
Subject: Re: [PATCH v3 1/6] measure exec_clock for rt sched entities
Date: Wed, 30 May 2012 14:32:07 +0400 [thread overview]
Message-ID: <4FC5F727.2040804@parallels.com> (raw)
In-Reply-To: <1338373759.26856.238.camel@twins>
On 05/30/2012 02:29 PM, Peter Zijlstra wrote:
> On Wed, 2012-05-30 at 13:48 +0400, Glauber Costa wrote:
>> For simetry with the cfq tasks, measure exec_clock for the rt
>> sched entities (rt_se).
>
> Symmetry methinks..
=p bad me
> anyway, where is the symmetry?, fair.c:update_curr()
> doesn't do the for_each_sched_entity() thing.
It does implicitly, because fair.c:update_curr() is called from
within enqueue_task(), that is called for_each_sched_entity in
enqueue_task_fair().
>
>> This can be used in a number of fashions. For instance, to
>> compute total cpu usage in a cgroup that is generated by
>> rt tasks.
>>
>> Signed-off-by: Glauber Costa<glommer@parallels.com>
>> CC: Peter Zijlstra<a.p.zijlstra@chello.nl>
>> CC: Paul Turner<pjt@google.com>
>> ---
>> kernel/sched/rt.c | 5 +++++
>> kernel/sched/sched.h | 1 +
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
>> index c5565c3..30ee4e2 100644
>> --- a/kernel/sched/rt.c
>> +++ b/kernel/sched/rt.c
>> @@ -919,6 +919,11 @@ static void update_curr_rt(struct rq *rq)
>>
>> sched_rt_avg_update(rq, delta_exec);
>>
>> + for_each_sched_rt_entity(rt_se) {
>> + rt_rq = rt_rq_of_se(rt_se);
>> + schedstat_add(rt_rq, exec_clock, delta_exec);
>> + }
>> +
>> if (!rt_bandwidth_enabled())
>> return;
>
> See, this just makes me sad.. you now have a double
> for_each_sched_rt_entity() loop.
The way I read the rt.c code, it it is called from enqueue_task_rt only
once.
next prev parent reply other threads:[~2012-05-30 10:32 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-30 9:48 [PATCH v3 0/6] per cgroup /proc/stat statistics Glauber Costa
2012-05-30 9:48 ` Glauber Costa
2012-05-30 9:48 ` [PATCH v3 2/6] account guest time per-cgroup as well Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-3-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 10:32 ` Peter Zijlstra
2012-05-30 10:32 ` Peter Zijlstra
2012-05-30 10:36 ` Glauber Costa
2012-05-30 10:36 ` Glauber Costa
2012-05-30 10:46 ` Paul Turner
2012-05-30 9:48 ` [PATCH v3 4/6] add a new scheduler hook for context switch Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-5-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 11:20 ` Peter Zijlstra
2012-05-30 11:20 ` Peter Zijlstra
2012-05-30 11:40 ` Peter Zijlstra
2012-05-30 11:40 ` Peter Zijlstra
2012-05-30 12:08 ` Glauber Costa
2012-05-30 12:08 ` Glauber Costa
2012-05-30 12:07 ` Glauber Costa
2012-05-30 12:07 ` Glauber Costa
2012-05-30 9:48 ` [PATCH v3 5/6] Also record sleep start for a task group Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-6-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 11:35 ` Paul Turner
2012-05-30 11:35 ` Paul Turner
[not found] ` <CAPM31R+VXsffUOSOtMPG=g+G9OdzWMKQvx9usTFa3KBbrqPe6A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-30 12:24 ` Glauber Costa
2012-05-30 12:24 ` Glauber Costa
[not found] ` <4FC61188.8000908-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 12:44 ` Peter Zijlstra
2012-05-30 12:44 ` Peter Zijlstra
2012-05-30 12:44 ` Glauber Costa
2012-05-30 12:44 ` Glauber Costa
[not found] ` <1338371317-5980-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 9:48 ` [PATCH v3 1/6] measure exec_clock for rt sched entities Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-2-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 10:29 ` Peter Zijlstra
2012-05-30 10:29 ` Peter Zijlstra
2012-05-30 10:32 ` Glauber Costa [this message]
2012-05-30 10:32 ` Glauber Costa
[not found] ` <4FC5F727.2040804-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 10:42 ` Peter Zijlstra
2012-05-30 10:42 ` Peter Zijlstra
2012-05-30 10:42 ` Glauber Costa
2012-05-30 10:42 ` Glauber Costa
[not found] ` <4FC5F99B.2060109-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 11:00 ` Paul Turner
2012-05-30 11:00 ` Paul Turner
[not found] ` <CAPM31RL-X2GYju-opjUumPq_cfGiRzGowXEOx9Tq4kVEG-z3SA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-30 12:09 ` Glauber Costa
2012-05-30 12:09 ` Glauber Costa
2012-05-30 9:48 ` [PATCH v3 3/6] expose fine-grained per-cpu data for cpuacct stats Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-4-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 10:34 ` Peter Zijlstra
2012-05-30 10:34 ` Peter Zijlstra
2012-05-30 10:34 ` Glauber Costa
2012-05-30 10:34 ` Glauber Costa
[not found] ` <4FC5F7A0.2000201-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 10:43 ` Peter Zijlstra
2012-05-30 10:43 ` Peter Zijlstra
2012-05-30 10:44 ` Glauber Costa
2012-05-30 10:44 ` Glauber Costa
[not found] ` <4FC5FA20.50301-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 11:24 ` Peter Zijlstra
2012-05-30 11:24 ` Peter Zijlstra
2012-05-30 11:24 ` Paul Turner
[not found] ` <CAPM31RJanAvDB+pZ+h5J3W6KXvAwPgbbeXgw6C_56tx_Mc+cgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-30 12:20 ` Glauber Costa
2012-05-30 12:20 ` Glauber Costa
[not found] ` <4FC6107F.9020802-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 12:48 ` Paul Turner
2012-05-30 12:48 ` Paul Turner
2012-05-30 12:52 ` Glauber Costa
2012-05-30 12:52 ` Glauber Costa
[not found] ` <CAPM31RJ7s+pNciOEnsfXRU9xCwnUano1k8CTEUuCjsSN5n0-1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-30 13:26 ` Glauber Costa
2012-05-30 13:26 ` Glauber Costa
2012-05-30 13:26 ` Glauber Costa
2012-05-30 13:26 ` Glauber Costa
2012-05-30 9:48 ` [PATCH v3 6/6] expose per-taskgroup schedstats in cgroup Glauber Costa
2012-05-30 9:48 ` Glauber Costa
[not found] ` <1338371317-5980-7-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 11:22 ` Peter Zijlstra
2012-05-30 11:22 ` 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=4FC5F727.2040804@parallels.com \
--to=glommer-bzqdu9zft3wakbo8gow8eq@public.gmane.org \
--cc=Andrew.Phillips-xheW4WVAX9Y@public.gmane.org \
--cc=a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=handai.szj-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=serge.hallyn-Z7WLFzj8eWMS+FvcfC7Uqw@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 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.