Messages in this thread | | | Date | Tue, 2 Jun 2009 14:48:54 +0200 | From | Harald Welte <> | Subject | Re: LOCK prefix on uni processor has its use |
| |
On Wed, May 27, 2009 at 08:08:27PM +0200, Andi Kleen wrote: > Harald Welte <HaraldWelte@viatech.com> writes: > > * All X86 instructions except rep-strings are atomic wrt interrupts. > > * The lock prefix has uses on a UP processor: It keeps DMA devices from > > interfering with a read-modify-write sequence > > In theory yes, but not in Linux -- normal drivers simply don't use LOCK in > any way on a UP kernel.
well, they might have inadvertedly used LOCK as part of regular spinlocks, until LOCK_PREFIX was removed, right?
> > Now the question is: Is this a valid operation of a driver? Should the driver > > do such things, or is such a driver broken? > > The driver is broken because if it relies on this it will not work on a UP kernel. > Also it's not portable and in general a bad idea.
I agree. I was not referring to any real/known driver. I was just trying to figure out what kind of problem the VIA/Centaur CPU guys tried to describe when indicating that the LOCK prefix should be used on UP to avoid DMA interfering with read-modify-write CPU instructions.
-- - Harald Welte <HaraldWelte@viatech.com> http://linux.via.com.tw/ ============================================================================ VIA Free and Open Source Software Liaison
| |