Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 May 2011 16:39:08 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/kern subr_smp.c
Message-ID:  <201105171639.p4HGdTMP097163@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2011-05-17 16:39:08 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             subr_smp.c 
  Log:
  SVN rev 222032 on 2011-05-17 16:39:08Z by jhb
  
  Fix a race in the SMP rendezvous code.  Specifically, the write by the
  last CPU to to finish the rendezvous action may become visible to
  different CPUs at different times.  As a result, the CPU that initiated
  the rendezvous may exit the rendezvous and drop the lock allowing another
  rendezvous to be initiated on the same CPU or a different CPU.  In that
  case the exit sentinel may be cleared before all CPUs have noticed causing
  those CPUs to hang forever.
  
  Workaround this by using a generation count to notice when this race
  occurs and to exit the rendezvous in that case.
  
  The problem was independently diagnosted by mlaier@ and avg@ as well.
  
  Submitted by:   neel
  Reviewed by:    avg, mlaier
  Obtained from:  NetApp
  MFC after:      1 week
  
  Revision  Changes    Path
  1.226     +48 -15    src/sys/kern/subr_smp.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105171639.p4HGdTMP097163>