[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v5 1/6] xen: Add convenient macro boot_cpu



On Thu, 2014-05-08 at 11:00 +0100, Jan Beulich wrote:
> >>> On 08.05.14 at 11:55, <Ian.Campbell@xxxxxxxxxx> wrote:
> > On Fri, 2014-05-02 at 16:57 +0100, Andrew Cooper wrote:
> >> On 02/05/14 16:52, Julien Grall wrote:
> >> > The macro boot_cpu will be used to get CPU variable from the boot CPU.
> >> >
> >> > Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
> >> > Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> >> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> >> > Cc: Jan Beulich <jbeulich@xxxxxxxx>
> >> > Cc: Keir Fraser <keir@xxxxxxx>
> >> > ---
> >> >  xen/include/xen/percpu.h |    3 +++
> >> >  1 file changed, 3 insertions(+)
> >> >
> >> > diff --git a/xen/include/xen/percpu.h b/xen/include/xen/percpu.h
> >> > index abe0b11..0e848bf 100644
> >> > --- a/xen/include/xen/percpu.h
> >> > +++ b/xen/include/xen/percpu.h
> >> > @@ -16,6 +16,9 @@
> >> >  /* Preferred on Xen. Also see arch-defined per_cpu(). */
> >> >  #define this_cpu(var)    __get_cpu_var(var)
> >> >  
> >> > +/* Access variable on boot CPU */
> >> > +#define boot_cpu(var)   per_cpu(var, 0)
> >> > +
> >> 
> >> What is this actually used for?
> >> 
> >> In x86 with arbitrary cpu hotplug, we are trying to move away from the
> >> false assumption than cpu0 is the boot cpu.  Actual boot data is stored
> >> sideways as boot_$FOO variables, and not accessed with the per-cpu
> >> mechanism.
> > 
> > Presumably in that case you would want it to expand into
> >         per_cpu(var, somevar_with_boot_cpu_nr_in_it)
> > and being able to write that as boot_cpu would be preferable to open
> > coding, especially since people would forever be writing 0, at least
> > this way its in one place.
> 
> Except that in the general case you shouldn't even assume that the
> boot CPU is still online, i.e. such a macro might "point" into nowhere.

That's a good argument.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.