Messages in this thread | | | Date | Thu, 6 Jul 2006 11:27:03 +0200 | From | Heiko Carstens <> | Subject | Re: [patch] spinlocks: remove 'volatile' |
| |
> Subject: spinlocks: remove 'volatile' > From: Ingo Molnar <mingo@elte.hu> > > remove 'volatile' from the spinlock types, it causes gcc to > generate really bad code. (and it's pointless anyway) > > this reduces the non-debug SMP kernel's size by 0.2% (!). > > Signed-off-by: Ingo Molnar <mingo@elte.hu> > --- > include/asm-i386/spinlock_types.h | 4 ++-- > include/asm-x86_64/spinlock_types.h | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > Index: linux/include/asm-i386/spinlock_types.h > =================================================================== > --- linux.orig/include/asm-i386/spinlock_types.h > +++ linux/include/asm-i386/spinlock_types.h > @@ -6,13 +6,13 @@ > #endif > > typedef struct { > - volatile unsigned int slock; > + unsigned int slock; > } raw_spinlock_t; > > #define __RAW_SPIN_LOCK_UNLOCKED { 1 } > > typedef struct { > - volatile unsigned int lock; > + unsigned int lock; > } raw_rwlock_t;
Shouldn't the __raw_read_can_lock and __raw_write_can_lock macros be changed too, just to make sure the value gets read every single time if it's used in a loop? Just like the __raw_spin_is_locked already has a (volatile signed char * cast)? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |