[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 2/5] x86: modify setup_dom0_vcpu to use dom0_cpus internally
We will later move dom0 builders to different directories. To avoid the need of making dom0_cpus visible outside dom0_builder.c, modify setup_dom0_vcpus to cycle through dom0_cpus internally instead of relying on the callers to do that. No functional change. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- v3: new --- xen/arch/x86/dom0_build.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c index 1c723c9ef1..7ca847e19b 100644 --- a/xen/arch/x86/dom0_build.c +++ b/xen/arch/x86/dom0_build.c @@ -158,8 +158,9 @@ static cpumask_t __initdata dom0_cpus; static struct vcpu *__init setup_dom0_vcpu(struct domain *d, unsigned int vcpu_id, - unsigned int cpu) + unsigned int prev_cpu) { + unsigned int cpu = cpumask_cycle(prev_cpu, &dom0_cpus); struct vcpu *v = alloc_vcpu(d, vcpu_id, cpu); if ( v ) @@ -215,7 +216,8 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0) return NULL; dom0->max_vcpus = max_vcpus; - return setup_dom0_vcpu(dom0, 0, cpumask_first(&dom0_cpus)); + return setup_dom0_vcpu(dom0, 0, + cpumask_last(&dom0_cpus) /* so it wraps around to first pcpu */); } #ifdef CONFIG_SHADOW_PAGING @@ -1155,8 +1157,10 @@ static int __init construct_dom0_pv( cpu = v->processor; for ( i = 1; i < d->max_vcpus; i++ ) { - cpu = cpumask_cycle(cpu, &dom0_cpus); - setup_dom0_vcpu(d, i, cpu); + struct vcpu *p = setup_dom0_vcpu(d, i, cpu); + + if ( p ) + cpu = p->processor; } d->arch.paging.mode = 0; @@ -1902,8 +1906,10 @@ static int __init pvh_setup_cpus(struct domain *d, paddr_t entry, cpu = v->processor; for ( i = 1; i < d->max_vcpus; i++ ) { - cpu = cpumask_cycle(cpu, &dom0_cpus); - setup_dom0_vcpu(d, i, cpu); + struct vcpu *p = setup_dom0_vcpu(d, i, cpu); + + if ( p ) + cpu = p->processor; } rc = arch_set_info_hvm_guest(v, &cpu_ctx); -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |