Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Oct 2010 17:40:45 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/kern subr_smp.c
Message-ID:  <201010121741.o9CHf2vf002770@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
avg         2010-10-12 17:40:45 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             subr_smp.c 
  Log:
  SVN rev 213736 on 2010-10-12 17:40:45Z by avg
  
  generic_stop_cpus: prevent parallel execution
  
  This is based on the same approach as used in panic().
  In theory parallel execution of generic_stop_cpus()  could lead to two CPUs
  stopping each other and everyone else, and thus a total system halt.
  Also, in theory, we should have some smarter locking here, because two
  (or more CPUs) could be stopping unrelated sets of CPUs.
  But in practice, it seems, this function is only used to stop
  "all other" CPUs.
  
  Additionally, I took this opportunity to make amd64-specific suspend_cpus()
  function use generic_stop_cpus() instead of rolling out essentially
  duplicate code.
  
  This code is based on code by Sandvine Incorporated.
  
  Suggested by:   mdf
  Reviewed by:    jhb, jkim (earlier version)
  MFC after:      2 weeks
  
  Revision  Changes    Path
  1.222     +17 -45    src/sys/kern/subr_smp.c



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