Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
xen
23949-constify_vcpu_set_affinitys_second_parame...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 23949-constify_vcpu_set_affinitys_second_parameter.patch of Package xen
changeset: 23949:39df16923958 user: Jan Beulich <jbeulich@suse.com> date: Thu Oct 13 10:00:13 2011 +0200 files: xen/arch/x86/cpu/mcheck/vmce.c xen/arch/x86/traps.c xen/common/schedule.c xen/include/xen/sched.h description: 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> --- xen/arch/x86/cpu/mcheck/vmce.c | 5 +---- xen/arch/x86/traps.c | 10 ++-------- xen/common/schedule.c | 6 ++---- xen/include/xen/sched.h | 2 +- 4 files changed, 6 insertions(+), 17 deletions(-) Index: xen-4.1.2-testing/xen/arch/x86/cpu/mcheck/vmce.c =================================================================== --- xen-4.1.2-testing.orig/xen/arch/x86/cpu/mcheck/vmce.c +++ xen-4.1.2-testing/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) { 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 Index: xen-4.1.2-testing/xen/arch/x86/traps.c =================================================================== --- xen-4.1.2-testing.orig/xen/arch/x86/traps.c +++ xen-4.1.2-testing/xen/arch/x86/traps.c @@ -3104,7 +3104,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); @@ -3120,9 +3119,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. */ } @@ -3192,14 +3189,11 @@ void async_exception_cleanup(struct vcpu !test_and_set_bool(curr->mce_pending) ) { int cpu = smp_processor_id(); - cpumask_t affinity; 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)); } } } Index: xen-4.1.2-testing/xen/common/schedule.c =================================================================== --- xen-4.1.2-testing.orig/xen/common/schedule.c +++ xen-4.1.2-testing/xen/common/schedule.c @@ -593,9 +593,9 @@ int cpu_disable_scheduler(unsigned int c 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 ) @@ -607,9 +607,7 @@ int vcpu_set_affinity(struct vcpu *v, cp vcpu_schedule_lock_irq(v); - old_affinity = v->cpu_affinity; v->cpu_affinity = *affinity; - *affinity = old_affinity; if ( !cpu_isset(v->processor, v->cpu_affinity) ) set_bit(_VPF_migrating, &v->pause_flags); Index: xen-4.1.2-testing/xen/include/xen/sched.h =================================================================== --- xen-4.1.2-testing.orig/xen/include/xen/sched.h +++ xen-4.1.2-testing/xen/include/xen/sched.h @@ -623,7 +623,7 @@ void scheduler_free(struct scheduler *sc 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);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor