From: Peter Zijlstra <peterz@infradead.org>
To: bharata@linux.vnet.ibm.com
Cc: linux-kernel@vger.kernel.org,
Dhaval Giani <dhaval.giani@gmail.com>,
Balbir Singh <balbir@linux.vnet.ibm.com>,
Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
Srivatsa Vaddagiri <vatsa@in.ibm.com>,
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
Ingo Molnar <mingo@elte.hu>, Pavel Emelyanov <xemul@openvz.org>,
Herbert Poetzl <herbert@13thfloor.at>,
Avi Kivity <avi@redhat.com>, Chris Friesen <cfriesen@nortel.com>,
Paul Menage <menage@google.com>,
Mike Waychison <mikew@google.com>, Paul Turner <pjt@google.com>,
Nikhil Rao <ncrao@google.com>
Subject: Re: [PATCH v3 2/7] sched: accumulate per-cfs_rq cpu usage
Date: Thu, 14 Oct 2010 10:57:30 +0200 [thread overview]
Message-ID: <1287046650.29097.159.camel@twins> (raw)
In-Reply-To: <20101012075109.GC9893@in.ibm.com>
On Tue, 2010-10-12 at 13:21 +0530, Bharata B Rao wrote:
> +static u64 tg_request_cfs_quota(struct task_group *tg)
> +{
> + struct cfs_bandwidth *cfs_b = tg_cfs_bandwidth(tg);
> + u64 delta = 0;
> +
> + if (cfs_b->runtime > 0 || cfs_b->quota == RUNTIME_INF) {
> + raw_spin_lock(&cfs_b->lock);
> + /*
> + * it's possible a bandwidth update has changed the global
> + * pool.
> + */
> + if (cfs_b->quota == RUNTIME_INF)
> + delta = sched_cfs_bandwidth_slice();
> + else {
> + delta = min(cfs_b->runtime,
> + sched_cfs_bandwidth_slice());
> + cfs_b->runtime -= delta;
> + }
> + raw_spin_unlock(&cfs_b->lock);
> + }
> + return delta;
> +}
Since you check cfs_b->quote outside of cfs_b->lock anyway, you might as
well avoid taking the lock in that case and directly return slice.
Also, you possibly evaluate sched_cfs_bandwidth_slice() twice.
next prev parent reply other threads:[~2010-10-14 8:58 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-12 7:49 [PATCH v3 0/7] CFS Bandwidth Control Bharata B Rao
2010-10-12 7:50 ` [PATCH v3 1/7] sched: introduce primitives to account for CFS bandwidth tracking Bharata B Rao
2010-10-13 13:00 ` Balbir Singh
2010-10-14 5:14 ` Bharata B Rao
2010-10-14 7:52 ` Peter Zijlstra
2010-10-14 12:38 ` Balbir Singh
2010-10-14 13:24 ` Peter Zijlstra
2010-12-06 9:02 ` Bharata B Rao
2010-10-12 7:51 ` [PATCH v3 2/7] sched: accumulate per-cfs_rq cpu usage Bharata B Rao
2010-10-13 13:30 ` Balbir Singh
2010-10-13 13:46 ` Nikhil Rao
2010-10-13 13:59 ` Balbir Singh
2010-10-13 14:41 ` Nikhil Rao
2010-10-14 5:39 ` Balbir Singh
2010-10-14 8:57 ` Peter Zijlstra [this message]
2010-10-14 9:07 ` Paul Turner
2010-10-14 9:13 ` Peter Zijlstra
2010-10-14 9:01 ` Peter Zijlstra
2010-10-14 9:14 ` Paul Turner
2010-10-14 9:27 ` Peter Zijlstra
2010-10-14 9:53 ` Paul Turner
2010-10-14 9:19 ` Peter Zijlstra
2010-10-14 9:27 ` Paul Turner
2010-10-14 9:40 ` Bharata B Rao
2010-10-12 7:52 ` [PATCH v3 3/7] sched: throttle cfs_rq entities which exceed their local quota Bharata B Rao
2010-10-13 6:34 ` KAMEZAWA Hiroyuki
2010-10-13 6:44 ` Paul Turner
2010-10-13 6:47 ` Bharata B Rao
2010-10-13 6:52 ` Paul Turner
2010-10-13 7:00 ` KAMEZAWA Hiroyuki
2010-10-13 7:13 ` Paul Turner
2010-10-14 9:12 ` Peter Zijlstra
2010-10-14 9:50 ` KAMEZAWA Hiroyuki
2010-10-14 9:59 ` Peter Zijlstra
2010-10-14 10:08 ` KAMEZAWA Hiroyuki
2010-10-14 10:25 ` Paul Turner
2010-10-14 10:41 ` Peter Zijlstra
2010-10-14 23:30 ` KAMEZAWA Hiroyuki
2010-10-14 10:37 ` Peter Zijlstra
2010-10-14 9:58 ` Paul Turner
2010-10-12 7:52 ` [PATCH v3 4/7] sched: unthrottle cfs_rq(s) who ran out of quota at period refresh Bharata B Rao
2010-10-15 4:45 ` Balbir Singh
2010-12-07 13:13 ` Bharata B Rao
2010-10-12 7:53 ` [PATCH v3 5/7] sched: add exports tracking cfs bandwidth control statistics Bharata B Rao
2010-10-12 7:54 ` [PATCH v3 6/7] sched: hierarchical task accounting for FAIR_GROUP_SCHED Bharata B Rao
2010-10-12 7:55 ` [PATCH v3 7/7] sched: Return/expire slack quota using generation counters Bharata B Rao
2010-10-13 5:14 ` [PATCH v3 0/7] CFS Bandwidth Control KAMEZAWA Hiroyuki
2010-10-13 5:44 ` Herbert Poetzl
2010-10-13 6:26 ` Paul Turner
2010-11-17 8:32 ` Lai Jiangshan
2010-11-19 3:24 ` Bharata B Rao
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=1287046650.29097.159.camel@twins \
--to=peterz@infradead.org \
--cc=avi@redhat.com \
--cc=balbir@linux.vnet.ibm.com \
--cc=bharata@linux.vnet.ibm.com \
--cc=cfriesen@nortel.com \
--cc=dhaval.giani@gmail.com \
--cc=herbert@13thfloor.at \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=mikew@google.com \
--cc=mingo@elte.hu \
--cc=ncrao@google.com \
--cc=pjt@google.com \
--cc=svaidy@linux.vnet.ibm.com \
--cc=vatsa@in.ibm.com \
--cc=xemul@openvz.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.