[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 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.

Jan


_______________________________________________
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®.