Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jun 2007 23:50:57 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern kern_condvar.c kern_synch.c subr_sleepqueue.c
Message-ID:  <200706042350.l54NovdY073814@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jeff        2007-06-04 23:50:57 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_condvar.c kern_synch.c 
                         subr_sleepqueue.c 
  Log:
  Commit 2/14 of sched_lock decomposition.
   - Adapt sleepqueues to the new thread_lock() mechanism.
   - Delay assigning the sleep queue spinlock as the thread lock until after
     we've checked for signals.  It is illegal for a thread to return in
     mi_switch() with any lock assigned to td_lock other than the scheduler
     locks.
   - Change sleepq_catch_signals() to do the switch if necessary to simplify
     the callers.
   - Simplify timeout handling now that locking a sleeping thread has the
     side-effect of locking the sleepqueue.  Some previous races are no
     longer possible.
  
  Tested by:      kris, current@
  Tested on:      i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc.
  Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
  
  Revision  Changes    Path
  1.62      +2 -2      src/sys/kern/kern_condvar.c
  1.300     +7 -7      src/sys/kern/kern_synch.c
  1.37      +97 -106   src/sys/kern/subr_sleepqueue.c



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