| version 1.72, 2002/03/09 01:56:27 |
version 1.73, 2002/03/09 05:14:33 |
| Line 1120 pool_prime_page(struct pool *pp, caddr_t |
|
| Line 1120 pool_prime_page(struct pool *pp, caddr_t |
|
| * |
* |
| * Note 1, we never wait for memory here, we let the caller decide what to do. |
* Note 1, we never wait for memory here, we let the caller decide what to do. |
| * |
* |
| * Note 2, this doesn't work with static pools. |
* Note 2, we must be called with the pool already locked, and we return |
| * |
|
| * Note 3, we must be called with the pool already locked, and we return |
|
| * with it locked. |
* with it locked. |
| */ |
*/ |
| static int |
static int |
| Line 1916 pool_allocator_alloc(struct pool *org, i |
|
| Line 1914 pool_allocator_alloc(struct pool *org, i |
|
| TAILQ_INSERT_TAIL(&pa->pa_list, pp, pr_alloc_list); |
TAILQ_INSERT_TAIL(&pa->pa_list, pp, pr_alloc_list); |
| if (pp == org) |
if (pp == org) |
| continue; |
continue; |
| simple_unlock(&pa->pa_list); |
simple_unlock(&pa->pa_slock); |
| freed = pool_reclaim(pp); |
freed = pool_reclaim(pp); |
| simple_lock(&pa->pa_list); |
simple_lock(&pa->pa_slock); |
| } while ((pp = TAILQ_FIRST(&pa->pa_list)) != start && |
} while ((pp = TAILQ_FIRST(&pa->pa_list)) != start && |
| freed == 0); |
freed == 0); |
| |
|