Re: [PATCH 8/12] cerr-printk-not-prom-printf

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

 



On Thu, Oct 20, 2005 at 12:02:33PM +0100, Dominic Sweetman wrote:

> > The reason for this old commit was that this code is running
> > uncached, so the operation of ll/sc in the spinlocks is undefined
> > according to the MIPS64 spec...
> 
> The answer is more complicated.  MIPS64 (elsewhere) requires that the
> ll/sc "link" is broken on an exceptin - in fact on an 'eret'
> instruction.

But in case of the code in question no eret will be executed between taking
the cache error exception and printk trying to take the lock.

> So ll/sc on an uncached location works just fine in a uniprocessor.  
> However, it's unlikely that any cache-coherent mulitprocessor system
> will snoop uncached reads and writes, so it won't work in an SMP
> system.

Fine - but at that point we could have two processors messing with the
same buffers.  Bad Thing (TM).

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux