[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.60.2.3 and 1.75

version 1.60.2.3, 2002/09/06 08:48:04 version 1.75, 2002/03/13 08:12:58
Line 94  struct pool_item_header {
Line 94  struct pool_item_header {
         TAILQ_HEAD(,pool_item)  ph_itemlist;    /* chunk list for this page */          TAILQ_HEAD(,pool_item)  ph_itemlist;    /* chunk list for this page */
         LIST_ENTRY(pool_item_header)          LIST_ENTRY(pool_item_header)
                                 ph_hashlist;    /* Off-page page headers */                                  ph_hashlist;    /* Off-page page headers */
         unsigned int            ph_nmissing;    /* # of chunks in use */          int                     ph_nmissing;    /* # of chunks in use */
         caddr_t                 ph_page;        /* this page's address */          caddr_t                 ph_page;        /* this page's address */
         struct timeval          ph_time;        /* last referenced */          struct timeval          ph_time;        /* last referenced */
 };  };
Line 145  struct pool_item {
Line 145  struct pool_item {
 /* The cache group pool. */  /* The cache group pool. */
 static struct pool pcgpool;  static struct pool pcgpool;
   
   /* The pool cache group. */
   #define PCG_NOBJECTS            16
   struct pool_cache_group {
           TAILQ_ENTRY(pool_cache_group)
                   pcg_list;       /* link in the pool cache's group list */
           u_int   pcg_avail;      /* # available objects */
                                   /* pointers to the objects */
           void    *pcg_objects[PCG_NOBJECTS];
   };
   
 static void     pool_cache_reclaim(struct pool_cache *);  static void     pool_cache_reclaim(struct pool_cache *);
   
 static int      pool_catchup(struct pool *);  static int      pool_catchup(struct pool *);
Line 415  pool_init(struct pool *pp, size_t size, 
Line 425  pool_init(struct pool *pp, size_t size, 
         if (size < sizeof(struct pool_item))          if (size < sizeof(struct pool_item))
                 size = sizeof(struct pool_item);                  size = sizeof(struct pool_item);
   
         size = roundup(size, align);          size = ALIGN(size);
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (size > palloc->pa_pagesz)          if (size > palloc->pa_pagesz)
                 panic("pool_init: pool item size (%lu) too large",                  panic("pool_init: pool item size (%lu) too large",
Line 636  pool_get(struct pool *pp, int flags)
Line 646  pool_get(struct pool *pp, int flags)
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (__predict_false(curproc == NULL && doing_shutdown == 0 &&          if (__predict_false(curproc == NULL && doing_shutdown == 0 &&
                             (flags & PR_WAITOK) != 0))                              (flags & PR_WAITOK) != 0))
                 panic("pool_get: %s: must have NOWAIT", pp->pr_wchan);                  panic("pool_get: must have NOWAIT");
   
 #ifdef LOCKDEBUG  #ifdef LOCKDEBUG
         if (flags & PR_WAITOK)          if (flags & PR_WAITOK)
Line 916  pool_do_put(struct pool *pp, void *v)
Line 926  pool_do_put(struct pool *pp, void *v)
 #endif  #endif
   
         TAILQ_INSERT_HEAD(&ph->ph_itemlist, pi, pi_list);          TAILQ_INSERT_HEAD(&ph->ph_itemlist, pi, pi_list);
         KDASSERT(ph->ph_nmissing != 0);  
         ph->ph_nmissing--;          ph->ph_nmissing--;
         pp->pr_nput++;          pp->pr_nput++;
         pp->pr_nitems++;          pp->pr_nitems++;
Line 1126  pool_prime_page(struct pool *pp, caddr_t
Line 1135  pool_prime_page(struct pool *pp, caddr_t
         while (n--) {          while (n--) {
                 pi = (struct pool_item *)cp;                  pi = (struct pool_item *)cp;
   
                 KASSERT(((((vaddr_t)pi) + ioff) & (align - 1)) == 0);  
   
                 /* Insert on page list */                  /* Insert on page list */
                 TAILQ_INSERT_TAIL(&ph->ph_itemlist, pi, pi_list);                  TAILQ_INSERT_TAIL(&ph->ph_itemlist, pi, pi_list);
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC

Legend:
Removed from v.1.60.2.3  
changed lines
  Added in v.1.75

CVSweb <webmaster@jp.NetBSD.org>