Lines Matching refs:nr_entries
48 static unsigned int pblk_rb_calculate_size(unsigned int nr_entries, in pblk_rb_calculate_size() argument
52 unsigned int max_sz = max(thr_sz, nr_entries); in pblk_rb_calculate_size()
81 unsigned int nr_entries; in pblk_rb_init() local
83 nr_entries = pblk_rb_calculate_size(size, threshold); in pblk_rb_init()
84 entries = vzalloc(array_size(nr_entries, sizeof(struct pblk_rb_entry))); in pblk_rb_init()
88 power_size = get_count_order(nr_entries); in pblk_rb_init()
94 rb->nr_entries = (1 << power_size); in pblk_rb_init()
165 pblk_rl_init(&pblk->rl, rb->nr_entries, threshold); in pblk_rb_init()
197 return pblk_rb_ring_space(rb, mem, sync, rb->nr_entries); in pblk_rb_space()
201 unsigned int nr_entries) in pblk_rb_ptr_wrap() argument
203 return (p + nr_entries) & (rb->nr_entries - 1); in pblk_rb_ptr_wrap()
215 return pblk_rb_ring_count(mem, subm, rb->nr_entries); in pblk_rb_read_count()
223 return pblk_rb_ring_count(mem, sync, rb->nr_entries); in pblk_rb_sync_count()
226 unsigned int pblk_rb_read_commit(struct pblk_rb *rb, unsigned int nr_entries) in pblk_rb_read_commit() argument
232 smp_store_release(&rb->subm, pblk_rb_ptr_wrap(rb, subm, nr_entries)); in pblk_rb_read_commit()
279 static int pblk_rb_update_l2p(struct pblk_rb *rb, unsigned int nr_entries, in pblk_rb_update_l2p() argument
288 space = pblk_rb_ring_space(rb, mem, rb->l2p_update, rb->nr_entries); in pblk_rb_update_l2p()
289 if (space > nr_entries) in pblk_rb_update_l2p()
292 count = nr_entries - space; in pblk_rb_update_l2p()
315 to_update = pblk_rb_ring_count(sync, rb->l2p_update, rb->nr_entries); in pblk_rb_sync_l2p()
404 flush_point = (pos == 0) ? (rb->nr_entries - 1) : (pos - 1); in pblk_rb_flush_point_set()
418 static int __pblk_rb_may_write(struct pblk_rb *rb, unsigned int nr_entries, in __pblk_rb_may_write() argument
428 threshold = nr_entries + rb->back_thres; in __pblk_rb_may_write()
430 if (pblk_rb_ring_space(rb, mem, sync, rb->nr_entries) < threshold) in __pblk_rb_may_write()
433 if (pblk_rb_update_l2p(rb, nr_entries, mem, sync)) in __pblk_rb_may_write()
441 static int pblk_rb_may_write(struct pblk_rb *rb, unsigned int nr_entries, in pblk_rb_may_write() argument
444 if (!__pblk_rb_may_write(rb, nr_entries, pos)) in pblk_rb_may_write()
448 smp_store_release(&rb->mem, pblk_rb_ptr_wrap(rb, *pos, nr_entries)); in pblk_rb_may_write()
463 static int pblk_rb_may_write_flush(struct pblk_rb *rb, unsigned int nr_entries, in pblk_rb_may_write_flush() argument
469 if (!__pblk_rb_may_write(rb, nr_entries, pos)) in pblk_rb_may_write_flush()
472 mem = pblk_rb_ptr_wrap(rb, *pos, nr_entries); in pblk_rb_may_write_flush()
495 unsigned int nr_entries, unsigned int *pos) in pblk_rb_may_write_user() argument
501 io_ret = pblk_rl_user_may_insert(&pblk->rl, nr_entries); in pblk_rb_may_write_user()
507 if (!pblk_rb_may_write_flush(rb, nr_entries, pos, bio, &io_ret)) { in pblk_rb_may_write_user()
512 pblk_rl_user_in(&pblk->rl, nr_entries); in pblk_rb_may_write_user()
521 int pblk_rb_may_write_gc(struct pblk_rb *rb, unsigned int nr_entries, in pblk_rb_may_write_gc() argument
527 if (!pblk_rl_gc_may_insert(&pblk->rl, nr_entries)) { in pblk_rb_may_write_gc()
532 if (!pblk_rb_may_write(rb, nr_entries, pos)) { in pblk_rb_may_write_gc()
537 pblk_rl_gc_in(&pblk->rl, nr_entries); in pblk_rb_may_write_gc()
551 unsigned int pos, unsigned int nr_entries, in pblk_rb_read_to_bio() argument
560 unsigned int pad = 0, to_read = nr_entries; in pblk_rb_read_to_bio()
564 if (count < nr_entries) { in pblk_rb_read_to_bio()
565 pad = nr_entries - count; in pblk_rb_read_to_bio()
659 BUG_ON(pos >= rb->nr_entries); in pblk_rb_copy_to_bio()
713 unsigned int pblk_rb_sync_advance(struct pblk_rb *rb, unsigned int nr_entries) in pblk_rb_sync_advance() argument
725 rb->nr_entries); in pblk_rb_sync_advance()
726 if (secs_to_flush < nr_entries) { in pblk_rb_sync_advance()
732 sync = pblk_rb_ptr_wrap(rb, sync, nr_entries); in pblk_rb_sync_advance()
755 submitted = pblk_rb_ring_count(subm, sync, rb->nr_entries); in pblk_rb_flush_point_count()
758 to_flush = pblk_rb_ring_count(flush_point, sync, rb->nr_entries) + 1; in pblk_rb_flush_point_count()
783 for (i = 0; i < rb->nr_entries; i++) { in pblk_rb_tear_down_check()
801 return (pos & (rb->nr_entries - 1)); in pblk_rb_wrap_pos()
806 return (pos >= rb->nr_entries); in pblk_rb_pos_oob()
824 rb->nr_entries, in pblk_rb_sysfs()
842 rb->nr_entries, in pblk_rb_sysfs()