aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2011-10-13 10:00:13 +0200
committerJan Beulich <jbeulich@suse.com>2011-10-13 10:00:13 +0200
commitb569c46bb3153903d59f3eeefc19ee046dab75e0 (patch)
tree53c94fb97f7fc70e658ac6d529e7ae9ab89b055b /xen
parent2a869011d4ee6e0adf5246734d148e7ad68a0d84 (diff)
downloadxen-b569c46bb3153903d59f3eeefc19ee046dab75e0.tar.gz
xen-b569c46bb3153903d59f3eeefc19ee046dab75e0.tar.bz2
xen-b569c46bb3153903d59f3eeefc19ee046dab75e0.zip
constify vcpu_set_affinity()'s second parameter
None of the callers actually make use of the function's returning of the old affinity through its second parameter, and eliminating this capability allows some callers to no longer use a local variable here, reducing their stack footprint significantly when building with large NR_CPUS. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/x86/cpu/mcheck/vmce.c5
-rw-r--r--xen/arch/x86/traps.c10
-rw-r--r--xen/common/schedule.c6
-rw-r--r--xen/include/xen/sched.h2
4 files changed, 6 insertions, 17 deletions
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 0b8f4ba400..d764d57d20 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -304,7 +304,6 @@ int vmce_wrmsr(u32 msr, u64 val)
int inject_vmce(struct domain *d)
{
int cpu = smp_processor_id();
- cpumask_t affinity;
/* PV guest and HVM guest have different vMCE# injection methods. */
if ( !test_and_set_bool(d->vcpu[0]->mce_pending) )
@@ -323,11 +322,9 @@ int inject_vmce(struct domain *d)
{
cpumask_copy(d->vcpu[0]->cpu_affinity_tmp,
d->vcpu[0]->cpu_affinity);
- cpus_clear(affinity);
- cpu_set(cpu, affinity);
mce_printk(MCE_VERBOSE, "MCE: CPU%d set affinity, old %d\n",
cpu, d->vcpu[0]->processor);
- vcpu_set_affinity(d->vcpu[0], &affinity);
+ vcpu_set_affinity(d->vcpu[0], cpumask_of(cpu));
vcpu_kick(d->vcpu[0]);
}
else
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 0203613b53..e22e6d86fc 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3113,7 +3113,6 @@ static void nmi_mce_softirq(void)
{
int cpu = smp_processor_id();
struct softirq_trap *st = &per_cpu(softirq_trap, cpu);
- cpumask_t affinity;
BUG_ON(st == NULL);
BUG_ON(st->vcpu == NULL);
@@ -3129,9 +3128,7 @@ static void nmi_mce_softirq(void)
* Make sure to wakeup the vcpu on the
* specified processor.
*/
- cpus_clear(affinity);
- cpu_set(st->processor, affinity);
- vcpu_set_affinity(st->vcpu, &affinity);
+ vcpu_set_affinity(st->vcpu, cpumask_of(st->processor));
/* Affinity is restored in the iret hypercall. */
}
@@ -3201,14 +3198,11 @@ void async_exception_cleanup(struct vcpu *curr)
!test_and_set_bool(curr->mce_pending) )
{
int cpu = smp_processor_id();
- cpumask_t affinity;
cpumask_copy(curr->cpu_affinity_tmp, curr->cpu_affinity);
- cpus_clear(affinity);
- cpu_set(cpu, affinity);
printk(XENLOG_DEBUG "MCE: CPU%d set affinity, old %d\n",
cpu, curr->processor);
- vcpu_set_affinity(curr, &affinity);
+ vcpu_set_affinity(curr, cpumask_of(cpu));
}
}
}
diff --git a/xen/common/schedule.c b/xen/common/schedule.c
index 105961ed5b..e909eec39d 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -587,9 +587,9 @@ int cpu_disable_scheduler(unsigned int cpu)
return ret;
}
-int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity)
+int vcpu_set_affinity(struct vcpu *v, const cpumask_t *affinity)
{
- cpumask_t online_affinity, old_affinity;
+ cpumask_t online_affinity;
cpumask_t *online;
if ( v->domain->is_pinned )
@@ -601,9 +601,7 @@ int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity)
vcpu_schedule_lock_irq(v);
- cpumask_copy(&old_affinity, v->cpu_affinity);
cpumask_copy(v->cpu_affinity, affinity);
- cpumask_copy(affinity, &old_affinity);
if ( !cpumask_test_cpu(v->processor, v->cpu_affinity) )
set_bit(_VPF_migrating, &v->pause_flags);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 784bcecdab..4b9dc56cfe 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -617,7 +617,7 @@ void scheduler_free(struct scheduler *sched);
int schedule_cpu_switch(unsigned int cpu, struct cpupool *c);
void vcpu_force_reschedule(struct vcpu *v);
int cpu_disable_scheduler(unsigned int cpu);
-int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity);
+int vcpu_set_affinity(struct vcpu *v, const cpumask_t *affinity);
void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate);
uint64_t get_cpu_idle_time(unsigned int cpu);