[BACK]Return to subr_lockdebug.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/subr_lockdebug.c between version 1.41.4.2 and 1.42

version 1.41.4.2, 2011/04/21 01:42:09 version 1.42, 2010/09/24 22:51:50
Line 48  __KERNEL_RCSID(0, "$NetBSD$");
Line 48  __KERNEL_RCSID(0, "$NetBSD$");
 #include <sys/cpu.h>  #include <sys/cpu.h>
 #include <sys/atomic.h>  #include <sys/atomic.h>
 #include <sys/lock.h>  #include <sys/lock.h>
 #include <sys/rbtree.h>  #include <sys/rb.h>
   
 #include <machine/lock.h>  #include <machine/lock.h>
   
Line 572  lockdebug_unlocked(volatile void *lock, 
Line 572  lockdebug_unlocked(volatile void *lock, 
                                     "not held by current LWP", true);                                      "not held by current LWP", true);
                                 return;                                  return;
                         }                          }
                           ld->ld_flags &= ~LD_LOCKED;
                           ld->ld_unlocked = where;
                           ld->ld_lwp = NULL;
                         TAILQ_REMOVE(&l->l_ld_locks, ld, ld_chain);                          TAILQ_REMOVE(&l->l_ld_locks, ld, ld_chain);
                 } else {                  } else {
                         if (ld->ld_cpu != (uint16_t)cpu_index(curcpu())) {                          if (ld->ld_cpu != (uint16_t)cpu_index(curcpu())) {
Line 579  lockdebug_unlocked(volatile void *lock, 
Line 582  lockdebug_unlocked(volatile void *lock, 
                                     "not held by current CPU", true);                                      "not held by current CPU", true);
                                 return;                                  return;
                         }                          }
                           ld->ld_flags &= ~LD_LOCKED;
                           ld->ld_unlocked = where;
                           ld->ld_lwp = NULL;
                         TAILQ_REMOVE(&curcpu()->ci_data.cpu_ld_locks, ld,                          TAILQ_REMOVE(&curcpu()->ci_data.cpu_ld_locks, ld,
                             ld_chain);                              ld_chain);
                 }                  }
                 ld->ld_flags &= ~LD_LOCKED;  
                 ld->ld_unlocked = where;  
                 ld->ld_lwp = NULL;  
         }          }
         __cpu_simple_unlock(&ld->ld_spinlock);          __cpu_simple_unlock(&ld->ld_spinlock);
         splx(s);          splx(s);
Line 730  lockdebug_dump(lockdebug_t *ld, void (*p
Line 733  lockdebug_dump(lockdebug_t *ld, void (*p
                     "shares wanted: %18u exclusive: %18u\n"                      "shares wanted: %18u exclusive: %18u\n"
                     "current cpu  : %18u last held: %18u\n"                      "current cpu  : %18u last held: %18u\n"
                     "current lwp  : %#018lx last held: %#018lx\n"                      "current lwp  : %#018lx last held: %#018lx\n"
                     "last locked%c : %#018lx unlocked%c: %#018lx\n",                      "last locked  : %#018lx unlocked : %#018lx\n",
                     (unsigned)ld->ld_shares, ((ld->ld_flags & LD_LOCKED) != 0),                      (unsigned)ld->ld_shares, ((ld->ld_flags & LD_LOCKED) != 0),
                     (unsigned)ld->ld_shwant, (unsigned)ld->ld_exwant,                      (unsigned)ld->ld_shwant, (unsigned)ld->ld_exwant,
                     (unsigned)cpu_index(curcpu()), (unsigned)ld->ld_cpu,                      (unsigned)cpu_index(curcpu()), (unsigned)ld->ld_cpu,
                     (long)curlwp, (long)ld->ld_lwp,                      (long)curlwp, (long)ld->ld_lwp,
                     ((ld->ld_flags & LD_LOCKED) ? '*' : ' '),                      (long)ld->ld_locked, (long)ld->ld_unlocked);
                     (long)ld->ld_locked,  
                     ((ld->ld_flags & LD_LOCKED) ? ' ' : '*'),  
                     (long)ld->ld_unlocked);  
         }          }
   
         if (ld->ld_lockops->lo_dump != NULL)          if (ld->ld_lockops->lo_dump != NULL)

Legend:
Removed from v.1.41.4.2  
changed lines
  Added in v.1.42

CVSweb <webmaster@jp.NetBSD.org>