In tmem, I have some counters that I need to keep coherent, preferably without a lock, so I''m using atomic_inc/dec etc. However the comments in include/asm-x86/atomic.h say repeatedly that the "useful range of an atomic_t is only 24 bits". First, are the comments true in the xen implementation? (I don''t see any code that restricts them to anything less than "int".) If they ARE limited to 24 bits, what''s the recommended approach for larger atomic operations... or do I just need to always use a lock? Thanks, Dan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2009-Mar-26 23:26 UTC
Re: [Xen-devel] atomic counters larger than 24 bits?
Dan Magenheimer, le Thu 26 Mar 2009 19:38:13 +0000, a écrit :> In tmem, I have some counters that I need to keep coherent, > preferably without a lock, so I''m using atomic_inc/dec etc. > However the comments in include/asm-x86/atomic.h say repeatedly > that the "useful range of an atomic_t is only 24 bits".IIRC the historical reason for this is that some Linux architectures weren''t providing more. The x86 implementation does support signed 32 bits. I believe the ia64 implementation does too. Samuel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 26/03/2009 23:26, "Samuel Thibault" <samuel.thibault@ens-lyon.org> wrote:> Dan Magenheimer, le Thu 26 Mar 2009 19:38:13 +0000, a écrit : >> In tmem, I have some counters that I need to keep coherent, >> preferably without a lock, so I''m using atomic_inc/dec etc. >> However the comments in include/asm-x86/atomic.h say repeatedly >> that the "useful range of an atomic_t is only 24 bits". > > IIRC the historical reason for this is that some Linux architectures > weren''t providing more. The x86 implementation does support signed 32 > bits. I believe the ia64 implementation does too.Yes, I''ll fix the x86/atomic.h comments. Our atomic_t type is signed and at least 32 bits. I don''t see we''ll ever port to an architecture without cmpxchg or similar to easily support ''full width'' atomic_t. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Mar-27 18:15 UTC
Re: [Xen-devel] atomic counters larger than 24 bits?
Dan Magenheimer wrote:> In tmem, I have some counters that I need to keep coherent, > preferably without a lock, so I''m using atomic_inc/dec etc. > However the comments in include/asm-x86/atomic.h say repeatedly > that the "useful range of an atomic_t is only 24 bits". >Old sparcs had no way to implement proper atomics, so they used to reserve a byte in the atomic_t as a spinlock. But I don''t think that''s true any more; they have a separate lock hash, and atomics in the kernel are at least 32-bits.> First, are the comments true in the xen implementation? > (I don''t see any code that restricts them to anything less > than "int".) If they ARE limited to 24 bits, what''s the > recommended approach for larger atomic operations... or > do I just need to always use a lock? >I don''t think the limitation ever applied to Xen. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel