[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.183 and 1.184

version 1.183, 2010/04/25 11:49:04 version 1.184, 2010/05/12 03:43:46
Line 562  pool_reclaim_register(struct pool *pp)
Line 562  pool_reclaim_register(struct pool *pp)
         callback_register(&vm_map_to_kernel(map)->vmk_reclaim_callback,          callback_register(&vm_map_to_kernel(map)->vmk_reclaim_callback,
             &pp->pr_reclaimerentry, pp, pool_reclaim_callback);              &pp->pr_reclaimerentry, pp, pool_reclaim_callback);
         splx(s);          splx(s);
   
   #ifdef DIAGNOSTIC
           /* Diagnostic drain attempt. */
           uvm_km_va_drain(map, 0);
   #endif
 }  }
   
 static void  static void
Line 984  pool_get(struct pool *pp, int flags)
Line 989  pool_get(struct pool *pp, int flags)
         void *v;          void *v;
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (__predict_false(pp->pr_itemsperpage == 0))          if (pp->pr_itemsperpage == 0)
                 panic("pool_get: pool %p: pr_itemsperpage is zero, "                  panic("pool_get: pool '%s': pr_itemsperpage is zero, "
                     "pool not initialized?", pp);                      "pool not initialized?", pp->pr_wchan);
         if (__predict_false(curlwp == NULL && doing_shutdown == 0 &&          if ((cpu_intr_p() || cpu_softintr_p()) && pp->pr_ipl == IPL_NONE)
                             (flags & PR_WAITOK) != 0))                  panic("pool '%s' is IPL_NONE, but called from "
                 panic("pool_get: %s: must have NOWAIT", pp->pr_wchan);                      "interrupt context\n", pp->pr_wchan);
   #endif
 #endif /* DIAGNOSTIC */  
 #ifdef LOCKDEBUG  
         if (flags & PR_WAITOK) {          if (flags & PR_WAITOK) {
                 ASSERT_SLEEPABLE();                  ASSERT_SLEEPABLE();
         }          }
 #endif  
   
         mutex_enter(&pp->pr_lock);          mutex_enter(&pp->pr_lock);
         pr_enter(pp, file, line);          pr_enter(pp, file, line);
Line 1604  pool_sethardlimit(struct pool *pp, int n
Line 1606  pool_sethardlimit(struct pool *pp, int n
   
 /*  /*
  * Release all complete pages that have not been used recently.   * Release all complete pages that have not been used recently.
    *
    * Might be called from interrupt context.
  */   */
 int  int
 #ifdef POOL_DIAGNOSTIC  #ifdef POOL_DIAGNOSTIC
Line 1618  pool_reclaim(struct pool *pp)
Line 1622  pool_reclaim(struct pool *pp)
         bool klock;          bool klock;
         int rv;          int rv;
   
           if (cpu_intr_p() || cpu_softintr_p()) {
                   KASSERT(pp->pr_ipl != IPL_NONE);
           }
   
         if (pp->pr_drain_hook != NULL) {          if (pp->pr_drain_hook != NULL) {
                 /*                  /*
                  * The drain hook must be called with the pool unlocked.                   * The drain hook must be called with the pool unlocked.
Line 2520  pool_cache_get_paddr(pool_cache_t pc, in
Line 2528  pool_cache_get_paddr(pool_cache_t pc, in
         void *object;          void *object;
         int s;          int s;
   
 #ifdef LOCKDEBUG          KASSERTMSG((!cpu_intr_p() && !cpu_softintr_p()) ||
               (pc->pc_pool.pr_ipl != IPL_NONE || cold),
               ("pool '%s' is IPL_NONE, but called from interrupt context\n",
               pc->pc_pool.pr_wchan));
   
         if (flags & PR_WAITOK) {          if (flags & PR_WAITOK) {
                 ASSERT_SLEEPABLE();                  ASSERT_SLEEPABLE();
         }          }
 #endif  
   
         /* Lock out interrupts and disable preemption. */          /* Lock out interrupts and disable preemption. */
         s = splvm();          s = splvm();

Legend:
Removed from v.1.183  
changed lines
  Added in v.1.184

CVSweb <webmaster@jp.NetBSD.org>