Skip to content

Commit

Permalink
x86, sched_clock(): mark variables read-mostly
Browse files Browse the repository at this point in the history
Impact: micro-optimization

There's a number of variables in the sched_clock() path that are
in .data/.bss - but not marked __read_mostly. This creates the
danger of accidental false cacheline sharing with some other,
write-often variable.

So mark them __read_mostly.

Signed-off-by: Ingo Molnar <[email protected]>
  • Loading branch information
Ingo Molnar committed Mar 10, 2009
1 parent 8325d9c commit f24ade3
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions arch/x86/kernel/tsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,21 @@
#include <asm/delay.h>
#include <asm/hypervisor.h>

unsigned int cpu_khz; /* TSC clocks / usec, not used here */
unsigned int __read_mostly cpu_khz; /* TSC clocks / usec, not used here */
EXPORT_SYMBOL(cpu_khz);
unsigned int tsc_khz;

unsigned int __read_mostly tsc_khz;
EXPORT_SYMBOL(tsc_khz);

/*
* TSC can be unstable due to cpufreq or due to unsynced TSCs
*/
static int tsc_unstable;
static int __read_mostly tsc_unstable;

/* native_sched_clock() is called before tsc_init(), so
we must start with the TSC soft disabled to prevent
erroneous rdtsc usage on !cpu_has_tsc processors */
static int tsc_disabled = -1;
static int __read_mostly tsc_disabled = -1;

static int tsc_clocksource_reliable;
/*
Expand Down

0 comments on commit f24ade3

Please sign in to comment.