Lines Matching refs:pool

48  *	svc_pool->sp_lock protects most of the fields of that pool.
410 struct svc_pool *pool;
426 pool = svc_pool_for_cpu(xprt->xpt_server, cpu);
428 atomic_long_inc(&pool->sp_stats.packets);
430 spin_lock_bh(&pool->sp_lock);
431 list_add_tail(&xprt->xpt_ready, &pool->sp_sockets);
432 pool->sp_stats.sockets_queued++;
433 spin_unlock_bh(&pool->sp_lock);
437 list_for_each_entry_rcu(rqstp, &pool->sp_all_threads, rq_all) {
440 atomic_long_inc(&pool->sp_stats.threads_woken);
445 set_bit(SP_CONGESTED, &pool->sp_flags);
470 static struct svc_xprt *svc_xprt_dequeue(struct svc_pool *pool)
474 if (list_empty(&pool->sp_sockets))
477 spin_lock_bh(&pool->sp_lock);
478 if (likely(!list_empty(&pool->sp_sockets))) {
479 xprt = list_first_entry(&pool->sp_sockets,
484 spin_unlock_bh(&pool->sp_lock);
548 * bother with pool 0 as we don't need to wake up more than one thread for
554 struct svc_pool *pool;
556 pool = &serv->sv_pools[0];
559 list_for_each_entry_rcu(rqstp, &pool->sp_all_threads, rq_all) {
571 set_bit(SP_TASK_PENDING, &pool->sp_flags);
689 struct svc_pool *pool = rqstp->rq_pool;
692 if (test_and_clear_bit(SP_TASK_PENDING, &pool->sp_flags))
696 if (!list_empty(&pool->sp_sockets))
712 struct svc_pool *pool = rqstp->rq_pool;
718 rqstp->rq_xprt = svc_xprt_dequeue(pool);
728 clear_bit(SP_CONGESTED, &pool->sp_flags);
741 rqstp->rq_xprt = svc_xprt_dequeue(pool);
746 atomic_long_inc(&pool->sp_stats.threads_timedout);
755 if (!test_bit(SP_CONGESTED, &pool->sp_flags))
808 dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n",
1079 struct svc_pool *pool;
1085 pool = &serv->sv_pools[i];
1087 spin_lock_bh(&pool->sp_lock);
1088 list_for_each_entry_safe(xprt, tmp, &pool->sp_sockets, xpt_ready) {
1092 spin_unlock_bh(&pool->sp_lock);
1095 spin_unlock_bh(&pool->sp_lock);
1376 struct svc_pool *pool = p;
1382 pool = &serv->sv_pools[0];
1384 unsigned int pidx = (pool - &serv->sv_pools[0]);
1386 pool = &serv->sv_pools[pidx+1];
1388 pool = NULL;
1391 return pool;
1400 struct svc_pool *pool = p;
1403 seq_puts(m, "# pool packets-arrived sockets-enqueued threads-woken threads-timedout\n");
1408 pool->sp_id,
1409 (unsigned long)atomic_long_read(&pool->sp_stats.packets),
1410 pool->sp_stats.sockets_queued,
1411 (unsigned long)atomic_long_read(&pool->sp_stats.threads_woken),
1412 (unsigned long)atomic_long_read(&pool->sp_stats.threads_timedout));