[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86: modify setup_dom0_vcpu to use dom0_cpus internally
commit 503b2fb9a7498198f99b744b9be1efe54e4fe42d Author: Wei Liu <wei.liu2@xxxxxxxxxx> AuthorDate: Mon Mar 20 13:05:08 2017 +0000 Commit: Wei Liu <wei.liu2@xxxxxxxxxx> CommitDate: Mon Mar 20 15:39:45 2017 +0000 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> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- 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 1c723c9..3222720 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); + const 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); + const struct vcpu *p = setup_dom0_vcpu(d, i, cpu); + + if ( p ) + cpu = p->processor; } rc = arch_set_info_hvm_guest(v, &cpu_ctx); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |