Lines Matching defs:percpu
1474 static struct page **to_addr_page(struct raid5_percpu *percpu, int i)
1476 return percpu->scribble + i * percpu->scribble_obj_size;
1481 struct raid5_percpu *percpu, int i)
1483 return (void *) (to_addr_page(percpu, i) + sh->disks + 2);
1490 to_addr_offs(struct stripe_head *sh, struct raid5_percpu *percpu)
1492 return (unsigned int *) (to_addr_conv(sh, percpu, 0) + sh->disks + 2);
1496 ops_run_compute5(struct stripe_head *sh, struct raid5_percpu *percpu)
1499 struct page **xor_srcs = to_addr_page(percpu, 0);
1500 unsigned int *off_srcs = to_addr_offs(sh, percpu);
1526 ops_complete_compute, sh, to_addr_conv(sh, percpu, 0));
1593 ops_run_compute6_1(struct stripe_head *sh, struct raid5_percpu *percpu)
1596 struct page **blocks = to_addr_page(percpu, 0);
1597 unsigned int *offs = to_addr_offs(sh, percpu);
1633 to_addr_conv(sh, percpu, 0));
1648 to_addr_conv(sh, percpu, 0));
1657 ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
1668 struct page **blocks = to_addr_page(percpu, 0);
1669 unsigned int *offs = to_addr_offs(sh, percpu);
1715 to_addr_conv(sh, percpu, 0));
1743 to_addr_conv(sh, percpu, 0));
1751 to_addr_conv(sh, percpu, 0));
1759 to_addr_conv(sh, percpu, 0));
1792 ops_run_prexor5(struct stripe_head *sh, struct raid5_percpu *percpu,
1796 struct page **xor_srcs = to_addr_page(percpu, 0);
1797 unsigned int *off_srcs = to_addr_offs(sh, percpu);
1826 ops_complete_prexor, sh, to_addr_conv(sh, percpu, 0));
1834 ops_run_prexor6(struct stripe_head *sh, struct raid5_percpu *percpu,
1837 struct page **blocks = to_addr_page(percpu, 0);
1838 unsigned int *offs = to_addr_offs(sh, percpu);
1848 ops_complete_prexor, sh, to_addr_conv(sh, percpu, 0));
1975 ops_run_reconstruct5(struct stripe_head *sh, struct raid5_percpu *percpu,
2008 xor_srcs = to_addr_page(percpu, j);
2009 off_srcs = to_addr_offs(sh, percpu);
2051 to_addr_conv(sh, percpu, j));
2055 to_addr_conv(sh, percpu, j));
2073 ops_run_reconstruct6(struct stripe_head *sh, struct raid5_percpu *percpu,
2102 blocks = to_addr_page(percpu, j);
2103 offs = to_addr_offs(sh, percpu);
2121 head_sh, to_addr_conv(sh, percpu, j));
2124 to_addr_conv(sh, percpu, j));
2147 static void ops_run_check_p(struct stripe_head *sh, struct raid5_percpu *percpu)
2154 struct page **xor_srcs = to_addr_page(percpu, 0);
2155 unsigned int *off_srcs = to_addr_offs(sh, percpu);
2178 to_addr_conv(sh, percpu, 0));
2188 static void ops_run_check_pq(struct stripe_head *sh, struct raid5_percpu *percpu, int checkp)
2190 struct page **srcs = to_addr_page(percpu, 0);
2191 unsigned int *offs = to_addr_offs(sh, percpu);
2205 sh, to_addr_conv(sh, percpu, 0));
2208 &sh->ops.zero_sum_result, percpu->spare_page, 0, &submit);
2217 struct raid5_percpu *percpu;
2221 percpu = per_cpu_ptr(conf->percpu, cpu);
2229 tx = ops_run_compute5(sh, percpu);
2232 tx = ops_run_compute6_1(sh, percpu);
2234 tx = ops_run_compute6_2(sh, percpu);
2243 tx = ops_run_prexor5(sh, percpu, tx);
2245 tx = ops_run_prexor6(sh, percpu, tx);
2249 tx = ops_run_partial_parity(sh, percpu, tx);
2258 ops_run_reconstruct5(sh, percpu, tx);
2260 ops_run_reconstruct6(sh, percpu, tx);
2265 ops_run_check_p(sh, percpu);
2267 ops_run_check_pq(sh, percpu, 0);
2269 ops_run_check_pq(sh, percpu, 1);
2386 * scribble_alloc - allocate percpu scribble buffer for required size
2388 * @percpu: from for_each_present_cpu() of the caller
2401 static int scribble_alloc(struct raid5_percpu *percpu,
2419 kvfree(percpu->scribble);
2421 percpu->scribble = scribble;
2422 percpu->scribble_obj_size = obj_size;
2443 struct raid5_percpu *percpu;
2445 percpu = per_cpu_ptr(conf->percpu, cpu);
2446 err = scribble_alloc(percpu, new_disks,
7023 static void free_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu)
7025 safe_put_page(percpu->spare_page);
7026 percpu->spare_page = NULL;
7027 kvfree(percpu->scribble);
7028 percpu->scribble = NULL;
7031 static int alloc_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu)
7033 if (conf->level == 6 && !percpu->spare_page) {
7034 percpu->spare_page = alloc_page(GFP_KERNEL);
7035 if (!percpu->spare_page)
7039 if (scribble_alloc(percpu,
7045 free_scratch_buffer(conf, percpu);
7056 free_scratch_buffer(conf, per_cpu_ptr(conf->percpu, cpu));
7062 if (!conf->percpu)
7066 free_percpu(conf->percpu);
7092 struct raid5_percpu *percpu = per_cpu_ptr(conf->percpu, cpu);
7094 if (alloc_scratch_buffer(conf, percpu)) {
7106 conf->percpu = alloc_percpu(struct raid5_percpu);
7107 if (!conf->percpu)