Lines Matching defs:percpu

1552 static struct page **to_addr_page(struct raid5_percpu *percpu, int i)
1554 return percpu->scribble + i * percpu->scribble_obj_size;
1559 struct raid5_percpu *percpu, int i)
1561 return (void *) (to_addr_page(percpu, i) + sh->disks + 2);
1568 to_addr_offs(struct stripe_head *sh, struct raid5_percpu *percpu)
1570 return (unsigned int *) (to_addr_conv(sh, percpu, 0) + sh->disks + 2);
1574 ops_run_compute5(struct stripe_head *sh, struct raid5_percpu *percpu)
1577 struct page **xor_srcs = to_addr_page(percpu, 0);
1578 unsigned int *off_srcs = to_addr_offs(sh, percpu);
1604 ops_complete_compute, sh, to_addr_conv(sh, percpu, 0));
1671 ops_run_compute6_1(struct stripe_head *sh, struct raid5_percpu *percpu)
1674 struct page **blocks = to_addr_page(percpu, 0);
1675 unsigned int *offs = to_addr_offs(sh, percpu);
1711 to_addr_conv(sh, percpu, 0));
1726 to_addr_conv(sh, percpu, 0));
1735 ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
1746 struct page **blocks = to_addr_page(percpu, 0);
1747 unsigned int *offs = to_addr_offs(sh, percpu);
1793 to_addr_conv(sh, percpu, 0));
1821 to_addr_conv(sh, percpu, 0));
1829 to_addr_conv(sh, percpu, 0));
1837 to_addr_conv(sh, percpu, 0));
1870 ops_run_prexor5(struct stripe_head *sh, struct raid5_percpu *percpu,
1874 struct page **xor_srcs = to_addr_page(percpu, 0);
1875 unsigned int *off_srcs = to_addr_offs(sh, percpu);
1904 ops_complete_prexor, sh, to_addr_conv(sh, percpu, 0));
1912 ops_run_prexor6(struct stripe_head *sh, struct raid5_percpu *percpu,
1915 struct page **blocks = to_addr_page(percpu, 0);
1916 unsigned int *offs = to_addr_offs(sh, percpu);
1926 ops_complete_prexor, sh, to_addr_conv(sh, percpu, 0));
2053 ops_run_reconstruct5(struct stripe_head *sh, struct raid5_percpu *percpu,
2086 xor_srcs = to_addr_page(percpu, j);
2087 off_srcs = to_addr_offs(sh, percpu);
2129 to_addr_conv(sh, percpu, j));
2133 to_addr_conv(sh, percpu, j));
2151 ops_run_reconstruct6(struct stripe_head *sh, struct raid5_percpu *percpu,
2180 blocks = to_addr_page(percpu, j);
2181 offs = to_addr_offs(sh, percpu);
2199 head_sh, to_addr_conv(sh, percpu, j));
2202 to_addr_conv(sh, percpu, j));
2225 static void ops_run_check_p(struct stripe_head *sh, struct raid5_percpu *percpu)
2232 struct page **xor_srcs = to_addr_page(percpu, 0);
2233 unsigned int *off_srcs = to_addr_offs(sh, percpu);
2256 to_addr_conv(sh, percpu, 0));
2266 static void ops_run_check_pq(struct stripe_head *sh, struct raid5_percpu *percpu, int checkp)
2268 struct page **srcs = to_addr_page(percpu, 0);
2269 unsigned int *offs = to_addr_offs(sh, percpu);
2283 sh, to_addr_conv(sh, percpu, 0));
2286 &sh->ops.zero_sum_result, percpu->spare_page, 0, &submit);
2295 struct raid5_percpu *percpu;
2297 local_lock(&conf->percpu->lock);
2298 percpu = this_cpu_ptr(conf->percpu);
2306 tx = ops_run_compute5(sh, percpu);
2309 tx = ops_run_compute6_1(sh, percpu);
2311 tx = ops_run_compute6_2(sh, percpu);
2320 tx = ops_run_prexor5(sh, percpu, tx);
2322 tx = ops_run_prexor6(sh, percpu, tx);
2326 tx = ops_run_partial_parity(sh, percpu, tx);
2335 ops_run_reconstruct5(sh, percpu, tx);
2337 ops_run_reconstruct6(sh, percpu, tx);
2342 ops_run_check_p(sh, percpu);
2344 ops_run_check_pq(sh, percpu, 0);
2346 ops_run_check_pq(sh, percpu, 1);
2358 local_unlock(&conf->percpu->lock);
2457 * scribble_alloc - allocate percpu scribble buffer for required size
2459 * @percpu: from for_each_present_cpu() of the caller
2472 static int scribble_alloc(struct raid5_percpu *percpu,
2490 kvfree(percpu->scribble);
2492 percpu->scribble = scribble;
2493 percpu->scribble_obj_size = obj_size;
2514 struct raid5_percpu *percpu;
2516 percpu = per_cpu_ptr(conf->percpu, cpu);
2517 err = scribble_alloc(percpu, new_disks,
7358 static void free_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu)
7360 safe_put_page(percpu->spare_page);
7361 percpu->spare_page = NULL;
7362 kvfree(percpu->scribble);
7363 percpu->scribble = NULL;
7366 static int alloc_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu)
7368 if (conf->level == 6 && !percpu->spare_page) {
7369 percpu->spare_page = alloc_page(GFP_KERNEL);
7370 if (!percpu->spare_page)
7374 if (scribble_alloc(percpu,
7380 free_scratch_buffer(conf, percpu);
7384 local_lock_init(&percpu->lock);
7392 free_scratch_buffer(conf, per_cpu_ptr(conf->percpu, cpu));
7398 if (!conf->percpu)
7402 free_percpu(conf->percpu);
7428 struct raid5_percpu *percpu = per_cpu_ptr(conf->percpu, cpu);
7430 if (alloc_scratch_buffer(conf, percpu)) {
7442 conf->percpu = alloc_percpu(struct raid5_percpu);
7443 if (!conf->percpu)