Re: score-boarding [was Re: [PATCH] Linux Kernel Markers]

Richard J Moore
2006-09-26T08:43:15Z

Hugh Dickins <hugh@veritas.com> wrote on 23/09/2006 16:34:33:

> On Thu, 21 Sep 2006, Richard J Moore wrote:
> >
> > It can for another reason - score-boarding: that's where a byte being
> > stored assumes intermediate values due to the bits not being set
> > simultaneously. Generally this doesn't cause a problem because data
across
> > processors is serialised for update by mutexes. However, when applied
to
> > code all sorts of interesting instructions can execute before the bits
> > settle down. I haven't heard of this troubling Intel, but it does occur
on
> > some current architectures.
>
> I'd not heard of this phenomenon, and it worries me. There are places
> in kernel code where we peek at some volatile variable (perhaps a long)
> without locking, and expect to see it in any one of several well-defined
> states. Are you saying that there are architectures supported by Linux,
> on which we might see an "impossible" mix of states, due to
score-boarding?
>
> Hugh

These things tend not to be discussed in specific detail in the processor
reference manuals. If there are exposures they are generally covered by
blanket statements about the need to ensure correct serialization between
processors when reading from, and writing to, the same location. As far as
I am aware Linux is protected from such affects because we do use locks, or
serializing instructions, to protect the updating of variables that are
accessed by multiple processors. My guess is that the exposure to
score-boarding, if it exists at all, tends to be limited to concurrent
bitwise operations.

Richard