|
[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 Tue, 22 Mar 2022, Luca Fancellu wrote:
> >> +- cpupool-sched (optional)
> >> +
> >> + Must be a string having the name of a Xen scheduler, it has no effect
> >> when
> >> + used in conjunction of a cpupool-id equal to zero, in that case the
> >> + default Xen scheduler is selected (sched=<...> boot argument).
> >> + Check the sched=<...> boot argument for allowed values.
> >
> > I am happy with this version of the device tree bindings, thanks for
> > your efforts to update them. Only one comment left: please update the
> > description not to include "cpupool-id" given that there is no
> > cpupool-id property anymore :-)
> >
>
> Hi Stefano,
>
> Thank you for your review,
>
> Yes I missed that! I will fix in the next serie.
>
> >>
> >> +/*
> >> + * pool_cpu_map: Index is logical cpu number, content is cpupool id,
> >> (-1) for
> >> + * unassigned.
> >> + * pool_sched_map: Index is cpupool id, content is scheduler id, (-1) for
> >> + * unassigned.
> >> + */
> >> +static int __initdata pool_cpu_map[NR_CPUS] = { [0 ... NR_CPUS-1] = -1
> >> };
> >> +static int __initdata pool_sched_map[NR_CPUS] = { [0 ... NR_CPUS-1] = -1
> >> };
> >> +static unsigned int __initdata next_pool_id;
> >> +
> >> +#ifdef CONFIG_HAS_DEVICE_TREE
> >
> > BOOT_TIME_CPUPOOLS depends on HAS_DEVICE_TREE, so it is not possible to
> > have BOOT_TIME_CPUPOOLS but not HAS_DEVICE_TREE ?
>
> Yes you are right, the ifdef is not needed at this stage since only arch with
> device tree are
> using it, if x86 would like to implement a command line version then the code
> will be ifdef-ined
> later.
>
> >
> >
> >> +#define BTCPUPOOLS_DT_NODE_NO_REG (-1)
> >> +#define BTCPUPOOLS_DT_NODE_NO_LOG_CPU (-2)
> >> +
> >> +static int __init get_logical_cpu_from_hw_id(unsigned int hwid)
> >> +{
> >> + unsigned int i;
> >> +
> >> + for ( i = 0; i < nr_cpu_ids; i++ )
> >> + if ( cpu_physical_id(i) == hwid )
> >> + return i;
> >> +
> >> + return -1;
> >> +}
> >
> > I wonder if there is a better way to implement this function but I am
> > not sure. Also, it might be better to avoid premature optimizations.
> >
> > That said, we could check first the simple case where hwid==i. Looking
> > at various existing device tree, it seems to be the most common case.
> >
> > This is not a requirement, just a hand-wavy suggestion. I think the
> > patch is also OK as is.
> >
>
> Not sure to understand here, at least on FVP (the first DT I have around),
> hwid != i,
> Or maybe I didn’t understand what you mean
I am not surprised. In many boards hwid == i, but it is not a guarantee
at all.
To be honest mine was not really a concrete suggestion, more like the
beginning of a discussion on the subject. The goal would be to avoid
having to scan the __cpu_logical_map array every time without adding a
second data structure. I don't feel strongly about it but I thought I
would mention it anyway just in case you (or someone else) gets a better
idea on how to do this.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |