Lines Matching refs:pool

75 static struct ehca_comp_pool *pool;  variable
656 static int find_next_online_cpu(struct ehca_comp_pool *pool) in find_next_online_cpu() argument
665 spin_lock_irqsave(&pool->last_cpu_lock, flags); in find_next_online_cpu()
667 cpu = cpumask_next(pool->last_cpu, cpu_online_mask); in find_next_online_cpu()
670 pool->last_cpu = cpu; in find_next_online_cpu()
671 } while (!per_cpu_ptr(pool->cpu_comp_tasks, cpu)->active); in find_next_online_cpu()
672 spin_unlock_irqrestore(&pool->last_cpu_lock, flags); in find_next_online_cpu()
706 cpu_id = find_next_online_cpu(pool); in queue_comp_task()
709 cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu_id); in queue_comp_task()
710 thread = *per_cpu_ptr(pool->cpu_comp_threads, cpu_id); in queue_comp_task()
717 cpu_id = find_next_online_cpu(pool); in queue_comp_task()
718 cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu_id); in queue_comp_task()
719 thread = *per_cpu_ptr(pool->cpu_comp_threads, cpu_id); in queue_comp_task()
750 struct ehca_cpu_comp_task *cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu); in comp_task_park()
762 cpu = find_next_online_cpu(pool); in comp_task_park()
763 target = per_cpu_ptr(pool->cpu_comp_tasks, cpu); in comp_task_park()
764 thread = *per_cpu_ptr(pool->cpu_comp_threads, cpu); in comp_task_park()
775 struct ehca_cpu_comp_task *cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu); in comp_task_stop()
786 struct ehca_cpu_comp_task *cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu); in comp_task_should_run()
793 struct ehca_cpu_comp_task *cct = this_cpu_ptr(pool->cpu_comp_tasks); in comp_task()
820 pool = kzalloc(sizeof(struct ehca_comp_pool), GFP_KERNEL); in ehca_create_comp_pool()
821 if (pool == NULL) in ehca_create_comp_pool()
824 spin_lock_init(&pool->last_cpu_lock); in ehca_create_comp_pool()
825 pool->last_cpu = cpumask_any(cpu_online_mask); in ehca_create_comp_pool()
827 pool->cpu_comp_tasks = alloc_percpu(struct ehca_cpu_comp_task); in ehca_create_comp_pool()
828 if (!pool->cpu_comp_tasks) in ehca_create_comp_pool()
831 pool->cpu_comp_threads = alloc_percpu(struct task_struct *); in ehca_create_comp_pool()
832 if (!pool->cpu_comp_threads) in ehca_create_comp_pool()
838 cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu); in ehca_create_comp_pool()
843 comp_pool_threads.store = pool->cpu_comp_threads; in ehca_create_comp_pool()
852 free_percpu(pool->cpu_comp_threads); in ehca_create_comp_pool()
854 free_percpu(pool->cpu_comp_tasks); in ehca_create_comp_pool()
856 kfree(pool); in ehca_create_comp_pool()
867 free_percpu(pool->cpu_comp_threads); in ehca_destroy_comp_pool()
868 free_percpu(pool->cpu_comp_tasks); in ehca_destroy_comp_pool()
869 kfree(pool); in ehca_destroy_comp_pool()