All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Nikhil Rao <ncrao@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Mike Galbraith <efault@gmx.de>,
	linux-kernel@vger.kernel.org,
	"Nikunj A. Dadhania" <nikunj@linux.vnet.ibm.com>,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	Stephan Barwolf <stephan.baerwolf@tu-ilmenau.de>
Subject: Re: [PATCH v2 3/3] sched: increase SCHED_LOAD_SCALE resolution
Date: Wed, 18 May 2011 22:26:46 +0200	[thread overview]
Message-ID: <20110518202646.GA14141@elte.hu> (raw)
In-Reply-To: <1305747683-16742-1-git-send-email-ncrao@google.com>


* Nikhil Rao <ncrao@google.com> wrote:

> +#if BITS_PER_LONG > 32
> +# define SCHED_LOAD_RESOLUTION	10
> +# define scale_load(w)		(w << SCHED_LOAD_RESOLUTION)
> +# define scale_load_down(w)	(w >> SCHED_LOAD_RESOLUTION)
> +#else
> +# define SCHED_LOAD_RESOLUTION	0
> +# define scale_load(w)		(w)
> +# define scale_load_down(w)	(w)
> +#endif

We want (w) in the other definitions as well, to protect potential operators 
with lower precedence than <<. (Roughly half of the C operators are such so 
it's a real issue, should anyone use these macros with operators.)

> +#define SCHED_LOAD_SHIFT	(10 + (SCHED_LOAD_RESOLUTION))

that () is not needed actually, if you look at the definition of 
SCHED_LOAD_RESOLUTION.

So you could move the superfluous () from here up to the two definitions above 
and thus no parentheses would be hurt during the making of this patch.

> +		if (BITS_PER_LONG > 32 && unlikely(w >= WMULT_CONST))
>  			lw->inv_weight = 1;
> +		else if (unlikely(!w))
> +			lw->inv_weight = WMULT_CONST;
>  		else
> +			lw->inv_weight = WMULT_CONST / w;

Ok, i just noticed that you made use of BITS_PER_LONG here too.

It's better to put that into a helper define, something like 
SCHED_LOAD_HIGHRES, which could thus be used like this:

		if (SCHED_LOAD_HIGHRES && unlikely(w >= WMULT_CONST))

then, should anyone want to tweak the condition for SCHED_LOAD_HIGHRES, it 
could be done in a single place. It would also self-document.

Thanks,

	Ingo

  reply	other threads:[~2011-05-18 20:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 17:09 [PATCH v2 0/3] Increase resolution of load weights Nikhil Rao
2011-05-18 17:09 ` [PATCH v2 1/3] sched: cleanup set_load_weight() Nikhil Rao
2011-05-20 13:43   ` [tip:sched/core] sched: Cleanup set_load_weight() tip-bot for Nikhil Rao
2011-05-18 17:09 ` [PATCH v2 2/3] sched: introduce SCHED_POWER_SCALE to scale cpu_power calculations Nikhil Rao
2011-05-20 13:43   ` [tip:sched/core] sched: Introduce " tip-bot for Nikhil Rao
2011-05-18 17:09 ` [PATCH v2 3/3] sched: increase SCHED_LOAD_SCALE resolution Nikhil Rao
2011-05-18 18:25   ` Ingo Molnar
2011-05-18 19:39     ` Nikhil Rao
2011-05-18 19:41       ` Nikhil Rao
2011-05-18 20:26         ` Ingo Molnar [this message]
2011-05-18 21:18           ` Nikhil Rao
2011-05-18 21:22             ` Ingo Molnar
2011-05-18 21:37               ` [PATCH v3 " Nikhil Rao
2011-05-20 13:43                 ` [tip:sched/core] sched: Increase " tip-bot for Nikhil Rao
2011-05-18 18:26   ` [PATCH v2 3/3] sched: increase " Ingo Molnar

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=20110518202646.GA14141@elte.hu \
    --to=mingo@elte.hu \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ncrao@google.com \
    --cc=nikunj@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=stephan.baerwolf@tu-ilmenau.de \
    --cc=vatsa@linux.vnet.ibm.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.