[PATCH] More __read_mostly variables
Move some more frequently read variables that showed up during some of our performance tests as sometimes ending up in hot cachelines to the read_mostly section. Fix: Move the __read_mostly from before hpet_usec_quotient to follow the variable like the other uses of __read_mostly. Signed-off-by: Alok N Kataria <alokk@calsoftinc.com> Signed-off-by: Christoph Lameter <christoph@scalex86.org> Signed-off-by: Shai Fultheim <shai@scalex86.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
b3dbb4ecd4
commit
c3d8c14145
|
@ -82,7 +82,7 @@ EXPORT_SYMBOL(efi_enabled);
|
||||||
/* cpu data as detected by the assembly code in head.S */
|
/* cpu data as detected by the assembly code in head.S */
|
||||||
struct cpuinfo_x86 new_cpu_data __initdata = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
|
struct cpuinfo_x86 new_cpu_data __initdata = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
|
||||||
/* common cpu data for all cpus */
|
/* common cpu data for all cpus */
|
||||||
struct cpuinfo_x86 boot_cpu_data = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
|
struct cpuinfo_x86 boot_cpu_data __read_mostly = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
|
||||||
EXPORT_SYMBOL(boot_cpu_data);
|
EXPORT_SYMBOL(boot_cpu_data);
|
||||||
|
|
||||||
unsigned long mmu_cr4_features;
|
unsigned long mmu_cr4_features;
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#include "mach_timer.h"
|
#include "mach_timer.h"
|
||||||
#include <asm/hpet.h>
|
#include <asm/hpet.h>
|
||||||
|
|
||||||
static unsigned long __read_mostly hpet_usec_quotient; /* convert hpet clks to usec */
|
static unsigned long hpet_usec_quotient __read_mostly; /* convert hpet clks to usec */
|
||||||
static unsigned long tsc_hpet_quotient; /* convert tsc to hpet clks */
|
static unsigned long tsc_hpet_quotient; /* convert tsc to hpet clks */
|
||||||
static unsigned long hpet_last; /* hpet counter value at last tick*/
|
static unsigned long hpet_last; /* hpet counter value at last tick*/
|
||||||
static unsigned long last_tsc_low; /* lsb 32 bits of Time Stamp Counter */
|
static unsigned long last_tsc_low; /* lsb 32 bits of Time Stamp Counter */
|
||||||
|
|
|
@ -61,7 +61,7 @@ pgprot_t protection_map[16] = {
|
||||||
|
|
||||||
int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
|
int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
|
||||||
int sysctl_overcommit_ratio = 50; /* default is 50% */
|
int sysctl_overcommit_ratio = 50; /* default is 50% */
|
||||||
int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
|
int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
|
||||||
atomic_t vm_committed_space = ATOMIC_INIT(0);
|
atomic_t vm_committed_space = ATOMIC_INIT(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -42,11 +42,11 @@
|
||||||
* MCD - HACK: Find somewhere to initialize this EARLY, or make this
|
* MCD - HACK: Find somewhere to initialize this EARLY, or make this
|
||||||
* initializer cleaner
|
* initializer cleaner
|
||||||
*/
|
*/
|
||||||
nodemask_t node_online_map = { { [0] = 1UL } };
|
nodemask_t node_online_map __read_mostly = { { [0] = 1UL } };
|
||||||
EXPORT_SYMBOL(node_online_map);
|
EXPORT_SYMBOL(node_online_map);
|
||||||
nodemask_t node_possible_map = NODE_MASK_ALL;
|
nodemask_t node_possible_map __read_mostly = NODE_MASK_ALL;
|
||||||
EXPORT_SYMBOL(node_possible_map);
|
EXPORT_SYMBOL(node_possible_map);
|
||||||
struct pglist_data *pgdat_list;
|
struct pglist_data *pgdat_list __read_mostly;
|
||||||
unsigned long totalram_pages;
|
unsigned long totalram_pages;
|
||||||
unsigned long totalhigh_pages;
|
unsigned long totalhigh_pages;
|
||||||
long nr_swap_pages;
|
long nr_swap_pages;
|
||||||
|
@ -68,7 +68,7 @@ EXPORT_SYMBOL(nr_swap_pages);
|
||||||
* Used by page_zone() to look up the address of the struct zone whose
|
* Used by page_zone() to look up the address of the struct zone whose
|
||||||
* id is encoded in the upper bits of page->flags
|
* id is encoded in the upper bits of page->flags
|
||||||
*/
|
*/
|
||||||
struct zone *zone_table[1 << ZONETABLE_SHIFT];
|
struct zone *zone_table[1 << ZONETABLE_SHIFT] __read_mostly;
|
||||||
EXPORT_SYMBOL(zone_table);
|
EXPORT_SYMBOL(zone_table);
|
||||||
|
|
||||||
static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" };
|
static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" };
|
||||||
|
|
Loading…
Reference in New Issue