[BACK]Return to subr_pool.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_pool.c between version 1.33 and 1.34

version 1.33, 2000/04/13 00:44:19 version 1.34, 2000/05/08 20:09:44
Line 215  pr_enter(pp, file, line)
Line 215  pr_enter(pp, file, line)
         long line;          long line;
 {  {
   
         if (pp->pr_entered_file != NULL) {          if (__predict_false(pp->pr_entered_file != NULL)) {
                 printf("pool %s: reentrancy at file %s line %ld\n",                  printf("pool %s: reentrancy at file %s line %ld\n",
                     pp->pr_wchan, file, line);                      pp->pr_wchan, file, line);
                 printf("         previous entry at file %s line %ld\n",                  printf("         previous entry at file %s line %ld\n",
Line 232  pr_leave(pp)
Line 232  pr_leave(pp)
         struct pool *pp;          struct pool *pp;
 {  {
   
         if (pp->pr_entered_file == NULL) {          if (__predict_false(pp->pr_entered_file == NULL)) {
                 printf("pool %s not entered?\n", pp->pr_wchan);                  printf("pool %s not entered?\n", pp->pr_wchan);
                 panic("pr_leave");                  panic("pr_leave");
         }          }
Line 582  _pool_get(pp, flags, file, line)
Line 582  _pool_get(pp, flags, file, line)
         struct pool_item_header *ph;          struct pool_item_header *ph;
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if ((pp->pr_roflags & PR_STATIC) && (flags & PR_MALLOCOK)) {          if (__predict_false((pp->pr_roflags & PR_STATIC) &&
                               (flags & PR_MALLOCOK))) {
                 pr_printlog(pp, NULL, printf);                  pr_printlog(pp, NULL, printf);
                 panic("pool_get: static");                  panic("pool_get: static");
         }          }
 #endif  #endif
   
         if (curproc == NULL && (flags & PR_WAITOK) != 0)          if (__predict_false(curproc == NULL && (flags & PR_WAITOK) != 0))
                 panic("pool_get: must have NOWAIT");                  panic("pool_get: must have NOWAIT");
   
         simple_lock(&pp->pr_slock);          simple_lock(&pp->pr_slock);
Line 601  _pool_get(pp, flags, file, line)
Line 602  _pool_get(pp, flags, file, line)
          * the pool.           * the pool.
          */           */
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (pp->pr_nout > pp->pr_hardlimit) {          if (__predict_false(pp->pr_nout > pp->pr_hardlimit)) {
                 pr_leave(pp);                  pr_leave(pp);
                 simple_unlock(&pp->pr_slock);                  simple_unlock(&pp->pr_slock);
                 panic("pool_get: %s: crossed hard limit", pp->pr_wchan);                  panic("pool_get: %s: crossed hard limit", pp->pr_wchan);
         }          }
 #endif  #endif
         if (pp->pr_nout == pp->pr_hardlimit) {          if (__predict_false(pp->pr_nout == pp->pr_hardlimit)) {
                 if ((flags & PR_WAITOK) && !(flags & PR_LIMITFAIL)) {                  if ((flags & PR_WAITOK) && !(flags & PR_LIMITFAIL)) {
                         /*                          /*
                          * XXX: A warning isn't logged in this case.  Should                           * XXX: A warning isn't logged in this case.  Should
Line 717  _pool_get(pp, flags, file, line)
Line 718  _pool_get(pp, flags, file, line)
                 goto startover;                  goto startover;
         }          }
   
         if ((v = pi = TAILQ_FIRST(&ph->ph_itemlist)) == NULL) {          if (__predict_false((v = pi = TAILQ_FIRST(&ph->ph_itemlist)) == NULL)) {
                 pr_leave(pp);                  pr_leave(pp);
                 simple_unlock(&pp->pr_slock);                  simple_unlock(&pp->pr_slock);
                 panic("pool_get: %s: page empty", pp->pr_wchan);                  panic("pool_get: %s: page empty", pp->pr_wchan);
         }          }
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (pp->pr_nitems == 0) {          if (__predict_false(pp->pr_nitems == 0)) {
                 pr_leave(pp);                  pr_leave(pp);
                 simple_unlock(&pp->pr_slock);                  simple_unlock(&pp->pr_slock);
                 printf("pool_get: %s: items on itemlist, nitems %u\n",                  printf("pool_get: %s: items on itemlist, nitems %u\n",
Line 734  _pool_get(pp, flags, file, line)
Line 735  _pool_get(pp, flags, file, line)
         pr_log(pp, v, PRLOG_GET, file, line);          pr_log(pp, v, PRLOG_GET, file, line);
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (pi->pi_magic != PI_MAGIC) {          if (__predict_false(pi->pi_magic != PI_MAGIC)) {
                 pr_printlog(pp, pi, printf);                  pr_printlog(pp, pi, printf);
                 panic("pool_get(%s): free list modified: magic=%x; page %p;"                  panic("pool_get(%s): free list modified: magic=%x; page %p;"
                        " item addr %p\n",                         " item addr %p\n",
Line 750  _pool_get(pp, flags, file, line)
Line 751  _pool_get(pp, flags, file, line)
         pp->pr_nout++;          pp->pr_nout++;
         if (ph->ph_nmissing == 0) {          if (ph->ph_nmissing == 0) {
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
                 if (pp->pr_nidle == 0)                  if (__predict_false(pp->pr_nidle == 0))
                         panic("pool_get: nidle inconsistent");                          panic("pool_get: nidle inconsistent");
 #endif  #endif
                 pp->pr_nidle--;                  pp->pr_nidle--;
Line 758  _pool_get(pp, flags, file, line)
Line 759  _pool_get(pp, flags, file, line)
         ph->ph_nmissing++;          ph->ph_nmissing++;
         if (TAILQ_FIRST(&ph->ph_itemlist) == NULL) {          if (TAILQ_FIRST(&ph->ph_itemlist) == NULL) {
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
                 if (ph->ph_nmissing != pp->pr_itemsperpage) {                  if (__predict_false(ph->ph_nmissing != pp->pr_itemsperpage)) {
                         pr_leave(pp);                          pr_leave(pp);
                         simple_unlock(&pp->pr_slock);                          simple_unlock(&pp->pr_slock);
                         panic("pool_get: %s: nmissing inconsistent",                          panic("pool_get: %s: nmissing inconsistent",
Line 826  _pool_put(pp, v, file, line)
Line 827  _pool_put(pp, v, file, line)
         pr_enter(pp, file, line);          pr_enter(pp, file, line);
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (pp->pr_nout == 0) {          if (__predict_false(pp->pr_nout == 0)) {
                 printf("pool %s: putting with none out\n",                  printf("pool %s: putting with none out\n",
                     pp->pr_wchan);                      pp->pr_wchan);
                 panic("pool_put");                  panic("pool_put");
Line 835  _pool_put(pp, v, file, line)
Line 836  _pool_put(pp, v, file, line)
   
         pr_log(pp, v, PRLOG_PUT, file, line);          pr_log(pp, v, PRLOG_PUT, file, line);
   
         if ((ph = pr_find_pagehead(pp, page)) == NULL) {          if (__predict_false((ph = pr_find_pagehead(pp, page)) == NULL)) {
                 pr_printlog(pp, NULL, printf);                  pr_printlog(pp, NULL, printf);
                 panic("pool_put: %s: page header missing", pp->pr_wchan);                  panic("pool_put: %s: page header missing", pp->pr_wchan);
         }          }
Line 961  pool_prime(pp, n, storage)
Line 962  pool_prime(pp, n, storage)
         int newnitems, newpages;          int newnitems, newpages;
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (storage && !(pp->pr_roflags & PR_STATIC))          if (__predict_false(storage && !(pp->pr_roflags & PR_STATIC)))
                 panic("pool_prime: static");                  panic("pool_prime: static");
         /* !storage && static caught below */          /* !storage && static caught below */
 #endif  #endif
Line 1121  pool_catchup(pp)
Line 1122  pool_catchup(pp)
                 simple_unlock(&pp->pr_slock);                  simple_unlock(&pp->pr_slock);
                 cp = (*pp->pr_alloc)(pp->pr_pagesz, 0, pp->pr_mtype);                  cp = (*pp->pr_alloc)(pp->pr_pagesz, 0, pp->pr_mtype);
                 simple_lock(&pp->pr_slock);                  simple_lock(&pp->pr_slock);
                 if (cp == NULL) {                  if (__predict_false(cp == NULL)) {
                         error = ENOMEM;                          error = ENOMEM;
                         break;                          break;
                 }                  }

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

CVSweb <webmaster@jp.NetBSD.org>