Re: [Lse-tech] Re: [Patch 2/7] Add sysctl for schedstats

From: Nick Piggin
Date: Mon Feb 27 2006 - 19:22:58 EST


Chandra Seetharaman wrote:

On Mon, 2006-02-27 at 20:17 +1100, Nick Piggin wrote:

#ifdef CONFIG_SCHEDSTATS
+
+int schedstats_sysctl = 0; /* schedstats turned off by default */

Should be read mostly.


+static DEFINE_PER_CPU(int, schedstats) = 0;
+

When the above is in the read mostly section, you won't need this at all.

You don't intend to switch the sysctl with great frequency, do you?


No, it is not expected to switch often.

We originally coded it as __read_mostly, but thought the variable
bouncing between CPUs would be costly. Is it cheaper with
__read_mostly ? or it doesn't matter ?



Well it will only "bounce" when the cacheline it is in is written to by
a different CPU. Considering this happens with your per-cpu implementation
_anyway_, they don't buy you anything much.

Putting it in __read_mostly means that you won't happen to share a cacheline
with a variable that is being written to frequently.

Nick

--

Send instant messages to your online friends http://au.messenger.yahoo.com -
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/