cvs commit: src/sys/powerpc/include cpufunc.h

Marcel Moolenaar marcel at FreeBSD.org
Tue Sep 16 16:29:08 UTC 2008


marcel      2008-09-16 16:28:51 UTC

  FreeBSD src repository

  Modified files:
    sys/powerpc/include  cpufunc.h 
  Log:
  SVN rev 183081 on 2008-09-16 16:28:51Z by marcel
  
  In powerpc_get_pcpup(), make the inline assembly statement
  volatile so that the compiler won't perform CSE. For SMP,
  this may result in us accessing the wrong PCPU and as such
  results in a bogus curthread value.
  
  Note that getting curthread is not quite MP-safe in the sense
  that it requires two instructions that aren't performed
  atomically. The first instruction gets the address of the PCPU
  structure and the second instruction dereferences that pointer
  to get curthread. If a thread is switched-out in between these
  instructions and switched-in on a different CPU, we still get
  the wrong curthread.
  
  Revision  Changes    Path
  1.27      +1 -1      src/sys/powerpc/include/cpufunc.h


More information about the cvs-src mailing list