Re: [patch 1/3] sched: use jump labels to reduce overhead when bandwidthcontrol is inactive

From: Paul Turner
Date: Thu Nov 10 2011 - 23:23:36 EST


On 11/08/2011 01:29 AM, Peter Zijlstra wrote:
On Mon, 2011-11-07 at 20:26 -0800, Paul Turner wrote:
@@ -1788,6 +1791,9 @@ static void do_sched_cfs_slack_timer(str
*/
static void check_enqueue_throttle(struct cfs_rq *cfs_rq)
{
+ if (!cfs_bandwidth_used())
+ return;
+
/* an active group must be handled by the update_curr()->put() path */
if (!cfs_rq->runtime_enabled || cfs_rq->curr)
return;
@@ -1805,6 +1811,9 @@ static void check_enqueue_throttle(struc
/* conditionally throttle active cfs_rq's from put_prev_entity() */
static void check_cfs_rq_runtime(struct cfs_rq *cfs_rq)
{
+ if (!cfs_bandwidth_used())
+ return;
+
if (likely(!cfs_rq->runtime_enabled || cfs_rq->runtime_remaining> 0))
return;


does it matter if you pull this out into an inline function like:

static __always_inline void check_enqueue_throttle(struct cfs_rq *cfs_rq)
{
if (cfs_bandwidth_used())
__check_enqueue_throttle(cfs_rq);
}

That would avoid the superfluous function call as well.

This this is the only call-site it's being inlined already so there's no difference atm. That said, check_enqueue_throttle is sufficiently small we could just add __always_inline to force this to be the default behavior and avoid any surprises from this in the future.

Let me know if you'd like me to re-post with this added.

- Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/