Lines Matching refs:ps

162  * @ps: padatashell
175 int padata_do_parallel(struct padata_shell *ps,
178 struct padata_instance *pinst = ps->pinst;
185 pd = rcu_dereference_bh(ps->pd);
286 struct padata_instance *pinst = pd->ps->pinst;
444 struct padata_mt_job_state *ps = pw->pw_data;
445 struct padata_mt_job *job = ps->job;
448 spin_lock(&ps->lock);
455 size = roundup(start + 1, ps->chunk_size) - start;
462 spin_unlock(&ps->lock);
464 spin_lock(&ps->lock);
467 ++ps->nworks_fini;
468 done = (ps->nworks_fini == ps->nworks);
469 spin_unlock(&ps->lock);
472 complete(&ps->completion);
486 struct padata_mt_job_state ps;
504 spin_lock_init(&ps.lock);
505 init_completion(&ps.completion);
506 ps.job = job;
507 ps.nworks = padata_work_alloc_mt(nworks, &ps, &works);
508 ps.nworks_fini = 0;
516 ps.chunk_size = job->size / (ps.nworks * load_balance_factor);
517 ps.chunk_size = max(ps.chunk_size, job->min_chunk);
518 ps.chunk_size = roundup(ps.chunk_size, job->align);
533 padata_work_init(&my_work, padata_mt_helper, &ps, PADATA_WORK_ONSTACK);
537 wait_for_completion(&ps.completion);
576 static struct parallel_data *padata_alloc_pd(struct padata_shell *ps)
578 struct padata_instance *pinst = ps->pinst;
593 pd->ps = ps;
650 static int padata_replace_one(struct padata_shell *ps)
654 pd_new = padata_alloc_pd(ps);
658 ps->opd = rcu_dereference_protected(ps->pd, 1);
659 rcu_assign_pointer(ps->pd, pd_new);
666 struct padata_shell *ps;
671 list_for_each_entry(ps, &pinst->pslist, list) {
672 err = padata_replace_one(ps);
679 list_for_each_entry_continue_reverse(ps, &pinst->pslist, list)
680 if (refcount_dec_and_test(&ps->opd->refcnt))
681 padata_free_pd(ps->opd);
1079 struct padata_shell *ps;
1081 ps = kzalloc(sizeof(*ps), GFP_KERNEL);
1082 if (!ps)
1085 ps->pinst = pinst;
1088 pd = padata_alloc_pd(ps);
1095 RCU_INIT_POINTER(ps->pd, pd);
1096 list_add(&ps->list, &pinst->pslist);
1099 return ps;
1102 kfree(ps);
1111 * @ps: padata shell to free
1113 void padata_free_shell(struct padata_shell *ps)
1117 if (!ps)
1120 mutex_lock(&ps->pinst->lock);
1121 list_del(&ps->list);
1122 pd = rcu_dereference_protected(ps->pd, 1);
1125 mutex_unlock(&ps->pinst->lock);
1127 kfree(ps);