[BACK]Return to kern_mutex.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/kern_mutex.c between version 1.43 and 1.44

version 1.43, 2008/05/31 13:31:25 version 1.44, 2008/10/15 06:51:20
Line 59  __KERNEL_RCSID(0, "$NetBSD$");
Line 59  __KERNEL_RCSID(0, "$NetBSD$");
   
 #include <machine/lock.h>  #include <machine/lock.h>
   
   #include "opt_sa.h"
   
 /*  /*
  * When not running a debug kernel, spin mutexes are not much   * When not running a debug kernel, spin mutexes are not much
  * more than an splraiseipl() and splx() pair.   * more than an splraiseipl() and splx() pair.
Line 448  mutex_vector_enter(kmutex_t *mtx)
Line 450  mutex_vector_enter(kmutex_t *mtx)
         struct cpu_info *ci = NULL;          struct cpu_info *ci = NULL;
         u_int count;          u_int count;
 #endif  #endif
   #ifdef KERN_SA
           int f;
   #endif
         LOCKSTAT_COUNTER(spincnt);          LOCKSTAT_COUNTER(spincnt);
         LOCKSTAT_COUNTER(slpcnt);          LOCKSTAT_COUNTER(slpcnt);
         LOCKSTAT_TIMER(spintime);          LOCKSTAT_TIMER(spintime);
Line 680  mutex_vector_enter(kmutex_t *mtx)
Line 685  mutex_vector_enter(kmutex_t *mtx)
                 }                  }
 #endif  /* MULTIPROCESSOR */  #endif  /* MULTIPROCESSOR */
   
   #ifdef KERN_SA
                   /*
                    * Sleeping for a mutex should not generate an upcall.
                    * So set LP_SA_NOBLOCK to indicate this.
                    * f indicates if we should clear LP_SA_NOBLOCK when done.
                    */
                   f = ~curlwp->l_pflag & LP_SA_NOBLOCK;
                   curlwp->l_pflag |= LP_SA_NOBLOCK;
   #endif /* KERN_SA */
   
                 LOCKSTAT_START_TIMER(lsflag, slptime);                  LOCKSTAT_START_TIMER(lsflag, slptime);
   
                 turnstile_block(ts, TS_WRITER_Q, mtx, &mutex_syncobj);                  turnstile_block(ts, TS_WRITER_Q, mtx, &mutex_syncobj);
Line 687  mutex_vector_enter(kmutex_t *mtx)
Line 702  mutex_vector_enter(kmutex_t *mtx)
                 LOCKSTAT_STOP_TIMER(lsflag, slptime);                  LOCKSTAT_STOP_TIMER(lsflag, slptime);
                 LOCKSTAT_COUNT(slpcnt, 1);                  LOCKSTAT_COUNT(slpcnt, 1);
   
   #ifdef KERN_SA
                   curlwp->l_pflag ^= f;
   #endif /* KERN_SA */
   
                 owner = mtx->mtx_owner;                  owner = mtx->mtx_owner;
         }          }
   

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

CVSweb <webmaster@jp.NetBSD.org>