Lines Matching refs:pool
456 struct svc_pool *pool = &serv->sv_pools[i]; in __svc_create() local
461 pool->sp_id = i; in __svc_create()
462 INIT_LIST_HEAD(&pool->sp_sockets); in __svc_create()
463 INIT_LIST_HEAD(&pool->sp_all_threads); in __svc_create()
464 spin_lock_init(&pool->sp_lock); in __svc_create()
586 svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node) in svc_rqst_alloc() argument
597 rqstp->rq_pool = pool; in svc_rqst_alloc()
618 svc_prepare_thread(struct svc_serv *serv, struct svc_pool *pool, int node) in svc_prepare_thread() argument
622 rqstp = svc_rqst_alloc(serv, pool, node); in svc_prepare_thread()
627 spin_lock_bh(&pool->sp_lock); in svc_prepare_thread()
628 pool->sp_nrthreads++; in svc_prepare_thread()
629 list_add_rcu(&rqstp->rq_all, &pool->sp_all_threads); in svc_prepare_thread()
630 spin_unlock_bh(&pool->sp_lock); in svc_prepare_thread()
639 choose_pool(struct svc_serv *serv, struct svc_pool *pool, unsigned int *state) in choose_pool() argument
641 if (pool != NULL) in choose_pool()
642 return pool; in choose_pool()
651 choose_victim(struct svc_serv *serv, struct svc_pool *pool, unsigned int *state) in choose_victim() argument
656 if (pool != NULL) { in choose_victim()
657 spin_lock_bh(&pool->sp_lock); in choose_victim()
661 pool = &serv->sv_pools[--(*state) % serv->sv_nrpools]; in choose_victim()
662 spin_lock_bh(&pool->sp_lock); in choose_victim()
663 if (!list_empty(&pool->sp_all_threads)) in choose_victim()
665 spin_unlock_bh(&pool->sp_lock); in choose_victim()
671 if (!list_empty(&pool->sp_all_threads)) { in choose_victim()
678 rqstp = list_entry(pool->sp_all_threads.next, struct svc_rqst, rq_all); in choose_victim()
683 spin_unlock_bh(&pool->sp_lock); in choose_victim()
703 svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) in svc_set_num_threads() argument
712 if (pool == NULL) { in svc_set_num_threads()
716 spin_lock_bh(&pool->sp_lock); in svc_set_num_threads()
717 nrservs -= pool->sp_nrthreads; in svc_set_num_threads()
718 spin_unlock_bh(&pool->sp_lock); in svc_set_num_threads()
724 chosen_pool = choose_pool(serv, pool, &state); in svc_set_num_threads()
752 (task = choose_victim(serv, pool, &state)) != NULL) { in svc_set_num_threads()
780 struct svc_pool *pool = rqstp->rq_pool; in svc_exit_thread() local
782 spin_lock_bh(&pool->sp_lock); in svc_exit_thread()
783 pool->sp_nrthreads--; in svc_exit_thread()
786 spin_unlock_bh(&pool->sp_lock); in svc_exit_thread()