[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 4/6] xen/cpupool: Create different cpupools at boot time
> On 18 Mar 2022, at 16:12, Julien Grall <julien@xxxxxxx> wrote: > > Hi Luca, > > I only skimmed through the series. I have one question below: > > On 18/03/2022 15:25, Luca Fancellu wrote: >> +void __init btcpupools_allocate_pools(void) >> +{ >> + unsigned int i; >> + bool add_extra_cpupool = false; >> + >> + /* >> + * If there are no cpupools, the value of next_pool_id is zero, so the >> code >> + * below will assign every cpu to cpupool0 as the default behavior. >> + * When there are cpupools, the code below is assigning all the not >> + * assigned cpu to a new pool (next_pool_id value is the last id + 1). >> + * In the same loop we check if there is any assigned cpu that is not >> + * online. >> + */ >> + for ( i = 0; i < nr_cpu_ids; i++ ) >> + if ( cpumask_test_cpu(i, &cpu_online_map) ) >> + { >> + /* Unassigned cpu gets next_pool_id pool id value */ >> + if ( pool_cpu_map[i] < 0 ) >> + { >> + pool_cpu_map[i] = next_pool_id; >> + add_extra_cpupool = true; >> + } >> + printk(XENLOG_INFO "Logical CPU %u in Pool-%u.\n", i, >> + pool_cpu_map[i]); >> + } >> + else >> + { >> + if ( pool_cpu_map[i] >= 0 ) >> + panic("Pool-%d contains cpu%u that is not online!\n", >> + pool_cpu_map[i], i); >> + } >> + >> + if ( add_extra_cpupool ) >> + next_pool_id++; >> + >> + /* Create cpupools with selected schedulers */ >> + for ( i = 0; i < next_pool_id; i++ ) >> + cpupool_create_pool(i, pool_sched_map[i]); >> + >> +#ifdef CONFIG_X86 >> + /* Cpu0 must be in cpupool0 for x86 */ >> + if ( pool_cpu_map[0] != 0 ) >> + panic("Cpu0 must be in Pool-0\n"); >> +#endif > > Can you document why this is necessary on x86 but not on other architectures? Hi Julien, I received the warning by Juergen here: https://patchwork.kernel.org/comment/24740762/ that at least on x86 there could be some problems if cpu0 is not in cpupool0, I tested it on arm and it was working fine and I didn’t find any restriction. So I don’t know why on x86 we must have cpu0 in cpupool0, maybe x86 maintainer have more knowledge about that and I can put a comment here. Cheers, Luca > > Cheers, > > -- > Julien Grall
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |