Lines Matching full:ra

139  * memset *ra to zero.
142 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping) in file_ra_state_init() argument
144 ra->ra_pages = inode_to_bdi(mapping->host)->ra_pages; in file_ra_state_init()
145 ra->prev_pos = -1; in file_ra_state_init()
343 struct file_ra_state *ra = ractl->ra; in force_page_cache_ra() local
354 max_pages = max_t(unsigned long, bdi->io_pages, ra->ra_pages); in force_page_cache_ra()
370 * for 128k (32 page) max ra
391 static unsigned long get_next_ra_size(struct file_ra_state *ra, in get_next_ra_size() argument
394 unsigned long cur = ra->size; in get_next_ra_size()
465 struct file_ra_state *ra) in page_cache_ra_order() argument
472 pgoff_t mark = index + ra->size - ra->async_size; in page_cache_ra_order()
476 unsigned int new_order = ra->order; in page_cache_ra_order()
478 trace_page_cache_ra_order(mapping->host, start, ra); in page_cache_ra_order()
480 ra->order = 0; in page_cache_ra_order()
484 limit = min(limit, index + ra->size - 1); in page_cache_ra_order()
487 new_order = min_t(unsigned int, new_order, ilog2(ra->size)); in page_cache_ra_order()
490 ra->order = new_order; in page_cache_ra_order()
534 if (ra->size > index - start) in page_cache_ra_order()
535 do_page_cache_ra(ractl, ra->size - (index - start), in page_cache_ra_order()
536 ra->async_size); in page_cache_ra_order()
543 unsigned long max_pages = ractl->ra->ra_pages; in ractl_max_pages()
559 struct file_ra_state *ra = ractl->ra; in page_cache_sync_ra() local
563 trace_page_cache_sync_ra(ractl->mapping->host, index, ra, req_count); in page_cache_sync_ra()
570 if (!ra->ra_pages || blk_cgroup_congested()) { in page_cache_sync_ra()
584 prev_index = (unsigned long long)ra->prev_pos >> PAGE_SHIFT; in page_cache_sync_ra()
591 ra->start = index; in page_cache_sync_ra()
592 ra->size = get_init_ra_size(req_count, max_pages); in page_cache_sync_ra()
593 ra->async_size = ra->size > req_count ? ra->size - req_count : in page_cache_sync_ra()
594 ra->size >> 1; in page_cache_sync_ra()
620 ra->start = index; in page_cache_sync_ra()
621 ra->size = min(contig_count + req_count, max_pages); in page_cache_sync_ra()
622 ra->async_size = 1; in page_cache_sync_ra()
624 ra->order = 0; in page_cache_sync_ra()
625 ractl->_index = ra->start; in page_cache_sync_ra()
626 page_cache_ra_order(ractl, ra); in page_cache_sync_ra()
634 struct file_ra_state *ra = ractl->ra; in page_cache_async_ra() local
639 if (!ra->ra_pages) in page_cache_async_ra()
648 trace_page_cache_async_ra(ractl->mapping->host, index, ra, req_count); in page_cache_async_ra()
659 expected = round_down(ra->start + ra->size - ra->async_size, in page_cache_async_ra()
662 ra->start += ra->size; in page_cache_async_ra()
667 ra->size = max(ra->size, get_next_ra_size(ra, max_pages)); in page_cache_async_ra()
684 ra->start = start; in page_cache_async_ra()
685 ra->size = start - index; /* old async_size */ in page_cache_async_ra()
686 ra->size += req_count; in page_cache_async_ra()
687 ra->size = get_next_ra_size(ra, max_pages); in page_cache_async_ra()
689 ra->order += 2; in page_cache_async_ra()
690 align = 1UL << min(ra->order, ffs(max_pages) - 1); in page_cache_async_ra()
691 end = ra->start + ra->size; in page_cache_async_ra()
693 if (aligned_end > ra->start) in page_cache_async_ra()
694 ra->size -= end - aligned_end; in page_cache_async_ra()
695 ra->async_size = ra->size; in page_cache_async_ra()
696 ractl->_index = ra->start; in page_cache_async_ra()
697 page_cache_ra_order(ractl, ra); in page_cache_async_ra()
767 struct file_ra_state *ra = ractl->ra; in readahead_expand() local
832 if (ra) { in readahead_expand()
833 ra->size += min_nrpages; in readahead_expand()
834 ra->async_size += min_nrpages; in readahead_expand()