Lines Matching refs:pqueue
67 struct padata_parallel_queue *pqueue; in padata_parallel_worker() local
71 pqueue = container_of(parallel_work, in padata_parallel_worker()
74 spin_lock(&pqueue->parallel.lock); in padata_parallel_worker()
75 list_replace_init(&pqueue->parallel.list, &local_list); in padata_parallel_worker()
76 spin_unlock(&pqueue->parallel.lock); in padata_parallel_worker()
136 queue = per_cpu_ptr(pd->pqueue, target_cpu); in padata_do_parallel()
183 next_queue = per_cpu_ptr(pd->pqueue, cpu); in padata_get_next()
202 if (__this_cpu_read(pd->pqueue->cpu_index) == next_queue->cpu_index) { in padata_get_next()
282 struct padata_parallel_queue *pqueue; in invoke_padata_reorder() local
286 pqueue = container_of(work, struct padata_parallel_queue, reorder_work); in invoke_padata_reorder()
287 pd = pqueue->pd; in invoke_padata_reorder()
311 struct padata_parallel_queue *pqueue; in padata_reorder_timer() local
318 pqueue = per_cpu_ptr(pd->pqueue, target_cpu); in padata_reorder_timer()
319 queue_work_on(target_cpu, pinst->wq, &pqueue->reorder_work); in padata_reorder_timer()
366 struct padata_parallel_queue *pqueue; in padata_do_serial() local
383 pqueue = per_cpu_ptr(pd->pqueue, cpu); in padata_do_serial()
385 spin_lock(&pqueue->reorder.lock); in padata_do_serial()
387 list_add_tail(&padata->list, &pqueue->reorder.list); in padata_do_serial()
388 spin_unlock(&pqueue->reorder.lock); in padata_do_serial()
396 queue_work_on(cpu, pd->pinst->wq, &pqueue->reorder_work); in padata_do_serial()
443 struct padata_parallel_queue *pqueue; in padata_init_pqueues() local
447 pqueue = per_cpu_ptr(pd->pqueue, cpu); in padata_init_pqueues()
450 pqueue->cpu_index = -1; in padata_init_pqueues()
454 pqueue->pd = pd; in padata_init_pqueues()
455 pqueue->cpu_index = cpu_index; in padata_init_pqueues()
458 __padata_list_init(&pqueue->reorder); in padata_init_pqueues()
459 __padata_list_init(&pqueue->parallel); in padata_init_pqueues()
460 INIT_WORK(&pqueue->work, padata_parallel_worker); in padata_init_pqueues()
461 INIT_WORK(&pqueue->reorder_work, invoke_padata_reorder); in padata_init_pqueues()
462 atomic_set(&pqueue->num_obj, 0); in padata_init_pqueues()
477 pd->pqueue = alloc_percpu(struct padata_parallel_queue); in padata_alloc_pd()
478 if (!pd->pqueue) in padata_alloc_pd()
501 free_percpu(pd->pqueue); in padata_alloc_pd()
512 free_percpu(pd->pqueue); in padata_free_pd()
521 struct padata_parallel_queue *pqueue; in padata_flush_queues() local
525 pqueue = per_cpu_ptr(pd->pqueue, cpu); in padata_flush_queues()
526 flush_work(&pqueue->work); in padata_flush_queues()