Messages in this thread | | | Date | Thu, 7 Aug 2008 09:52:53 -0600 (MDT) | Subject | Re: [ANNOUNCE] Merkey's Kernel Debugger | From | jmerkey@wolfmoun ... |
| |
>> Also, whoever wrote "/Documentation/volatiles_are_evil" must not have >> worked with the busted-ass GNU compiler that optimizes away global >> variables and busts SMP dependent code. I am not going to remove the > > The Linux way to handle this is to use gcc memory barriers. > mb()/barrier()/wmb()/rmb()/smp_rmb()/smp_wmb() etc. > Normally everything that volatile can do can be expressed by them. > > On x86 such a memory barrier tells gcc that memory might > have been clobbered and needs to be flushed and also prevents the compiler > from reordering memory accesses. On other architectures it also forces > ordering > on the CPU level, although that's not needed on x86 (except > in some special situations like using write-combining) > > See Documentation/memory-barriers.txt > > -Andi > >
Andi,
I'll instrument this as described in the documentation you referenced and remove the volatile declarations. If this passes testing, I will repost with these corections.
Jeff
| |