[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/3] xen/sched: populate cpupool0 only after all cpus are up
On Fri, Aug 2, 2019 at 2:08 PM Juergen Gross <jgross@xxxxxxxx> wrote: > > With core or socket scheduling we need to know the number of siblings > per scheduling unit before we can setup the scheduler properly. In > order to prepare that do cpupool0 population only after all cpus are > up. > > With that in place there is no need to create cpupool0 earlier, so > do that just before assigning the cpus. Initialize free cpus with all > online cpus at that time in order to be able to add the cpu notifier > late, too. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > V1: new patch > --- > xen/common/cpupool.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c > index f90e496eda..caea5bd8b3 100644 > --- a/xen/common/cpupool.c > +++ b/xen/common/cpupool.c > @@ -762,18 +762,28 @@ static struct notifier_block cpu_nfb = { > .notifier_call = cpu_callback > }; > > -static int __init cpupool_presmp_init(void) > +static int __init cpupool_init(void) > { > + unsigned int cpu; > int err; > - void *cpu = (void *)(long)smp_processor_id(); > + > cpupool0 = cpupool_create(0, 0, &err); > BUG_ON(cpupool0 == NULL); > cpupool_put(cpupool0); > - cpu_callback(&cpu_nfb, CPU_ONLINE, cpu); > register_cpu_notifier(&cpu_nfb); > + > + spin_lock(&cpupool_lock); > + > + cpumask_copy(&cpupool_free_cpus, &cpu_online_map); > + > + for_each_cpu ( cpu, &cpupool_free_cpus ) > + cpupool_assign_cpu_locked(cpupool0, cpu); > + > + spin_unlock(&cpupool_lock); Just to make sure I understand what's happening here -- cpu_callback() now won't get called with CPU_ONLINE early in the boot process; but it will still be called with CPU_ONLINE in other circumstances (e.g., hot-plug / suspend / whatever)? If not, then it's probably best to remove CPU_ONLINE from that switch statement. Sorry that's an overly-basic question; I don't have a good picture for the cpu state machine. -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |