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

Re: [Xen-devel] [RFC PATCH] docs: add README.atomic



>>> Stefano Stabellini <sstabellini@xxxxxxxxxx> 06/15/17 2:27 AM >>>
>On Wed, 14 Jun 2017, Jan Beulich wrote:
>> >>> Stefano Stabellini <sstabellini@xxxxxxxxxx> 06/14/17 8:45 PM >>>
>> >On Wed, 14 Jun 2017, Jan Beulich wrote:
>> >> > +What ACCESS_ONCE does *not* guarantee though is this access is done in 
>> >> > a
>> >> > +single instruction, so complex or non-native or unaligned data types 
>> >> > are
>> >> > +not guaranteed to be atomic. If for instance counter would be a 64-bit 
>> >> > value
>> >> > +on a 32-bit system, the compiler would probably generate two load 
>> >> > instructions,
>> >> > +which could end up in reading a wrong value if some other CPU changes 
>> >> > the other
>> >> > +half of the variable in between those two reads.
>> >> > +However accessing _aligned and native_ data types is guaranteed to be 
>> >> > atomic
>> >> > +in the architectures supported by Xen, so ACCESS_ONCE is safe to use 
>> >> > when
>> >> > +these conditions are met.
>> >> 
>> >> As mentioned before, such a guarantee does not exist. Please only
>> >> state what is really the case, i.e. we _expect_ compilers to behave
>> >> this way.
>> >
>> >Regarding compilers support: do we state clearly in any docs or website
>> >what are the compilers we actually support? I think this would be the
>> >right opportunity to do it.
>> 
>> At the very least we state somewhere what gcc versions we support. However,
>> I can't see the relation of such a statement to the discussion here.
>
>The relation is that our "compiler expectations" shape what compilers we
>support.

I don't view it this way - we implicitly support unknown future versions of gcc,
and we can't know if they might break our assumptions.

Jan



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

 


Rackspace

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