aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/multicall.c
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-08-08 14:48:43 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-08-08 14:48:43 +0100
commit8eafa79a73f81ea48b7b77d3bd4b2c310cca057c (patch)
treeb9206dc4c620c034890e93cde9363005c7342a74 /xen/common/multicall.c
parent1ac7758ecb6b2ac342fc60b65277e0439102035a (diff)
downloadxen-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.c4
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)) )