diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-08-08 14:48:43 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-08-08 14:48:43 +0100 |
commit | 8eafa79a73f81ea48b7b77d3bd4b2c310cca057c (patch) | |
tree | b9206dc4c620c034890e93cde9363005c7342a74 /xen/common/multicall.c | |
parent | 1ac7758ecb6b2ac342fc60b65277e0439102035a (diff) | |
download | xen-8eafa79a73f81ea48b7b77d3bd4b2c310cca057c.tar.gz xen-8eafa79a73f81ea48b7b77d3bd4b2c310cca057c.tar.bz2 xen-8eafa79a73f81ea48b7b77d3bd4b2c310cca057c.zip |
[XEN] Make multicall info explicitly PER_CPU.
Also remove cacheline alignment in a few places. We leave
the common timer and schedule_data structures aligned because
they may be accessed randomly by remoted CPUs: at least we can
contain cacheline bouncing to just the offending structures.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/common/multicall.c')
-rw-r--r-- | xen/common/multicall.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xen/common/multicall.c b/xen/common/multicall.c index b8c3e5812f..f55926ce8c 100644 --- a/xen/common/multicall.c +++ b/xen/common/multicall.c @@ -14,13 +14,13 @@ #include <asm/current.h> #include <asm/hardirq.h> -struct mc_state mc_state[NR_CPUS]; +DEFINE_PER_CPU(struct mc_state, mc_state); long do_multicall( XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls) { - struct mc_state *mcs = &mc_state[smp_processor_id()]; + struct mc_state *mcs = &this_cpu(mc_state); unsigned int i; if ( unlikely(__test_and_set_bit(_MCSF_in_multicall, &mcs->flags)) ) |