Home
last modified time | relevance | path

Searched refs:folios (Results 1 – 25 of 27) sorted by relevance

12

/linux/mm/
H A Dmemfd_luo.c96 struct folio **folios; in memfd_luo_preserve_folios() local
117 folios = kvmalloc_objs(*folios, max_folios); in memfd_luo_preserve_folios()
118 if (!folios) in memfd_luo_preserve_folios()
133 nr_pinned = memfd_pin_folios(file, 0, size - 1, folios, max_folios, in memfd_luo_preserve_folios()
150 struct folio *folio = folios[i]; in memfd_luo_preserve_folios()
208 kvfree(folios); in memfd_luo_preserve_folios()
221 kho_unpreserve_folio(folios[i]); in memfd_luo_preserve_folios()
224 unpin_folios(folios, nr_folios); in memfd_luo_preserve_folios()
226 kvfree(folios); in memfd_luo_preserve_folios()
303 err = memfd_luo_preserve_folios(args->file, &ser->folios, in memfd_luo_preserve()
[all …]
H A Dswap_state.c359 * Context: Caller must ensure both folios are locked, and lock the in __swap_cache_replace_folio()
385 * folio, the old folio is shrunk, and new split sub folios replace in __swap_cache_replace_folio()
578 struct folio_batch folios; in free_pages_and_swap_cache()
581 folio_batch_init(&folios); in free_pages_and_swap_cache()
586 refs[folios.nr] = 1; in free_pages_and_swap_cache()
589 refs[folios.nr] = encoded_nr_pages(pages[++i]); in free_pages_and_swap_cache()
591 if (folio_batch_add(&folios, folio) == 0)
592 folios_put_refs(&folios, refs); in swap_use_vma_readahead()
594 if (folios.nr) in swap_use_vma_readahead()
595 folios_put_refs(&folios, ref in swap_use_vma_readahead()
572 struct folio_batch folios; free_pages_and_swap_cache() local
[all...]
/linux/fs/btrfs/
H A Daccessors.c59 char *kaddr = folio_address(eb->folios[idx]) + oif; \
73 kaddr = folio_address(eb->folios[idx + 1]); \
77 folio_address(eb->folios[idx + 1]), \
89 char *kaddr = folio_address(eb->folios[idx]) + oif; \
105 kaddr = folio_address(eb->folios[idx + 1]); \
109 kaddr = folio_address(eb->folios[idx + 1]); \
H A Ddefrag.c1135 struct folio **folios, int nr_pages, in defrag_one_locked_target() argument
1152 for (int i = 0; i < nr_pages && folios[i]; i++) { in defrag_one_locked_target()
1153 struct folio *folio = folios[i]; in defrag_one_locked_target()
1172 struct folio AUTO_KFREE(*folios); in defrag_one_range()
1184 folios = kzalloc_objs(struct folio *, nr_pages, GFP_NOFS); in defrag_one_range()
1185 if (!folios) in defrag_one_range()
1204 folios[i] = defrag_prepare_one_folio(inode, cur >> PAGE_SHIFT); in defrag_one_range()
1205 if (IS_ERR(folios[i])) { in defrag_one_range()
1206 ret = PTR_ERR(folios[i]); in defrag_one_range()
1207 folios[i] = NULL; in defrag_one_range()
[all …]
H A Dextent_io.c283 struct folio *folio = fbatch.folios[i]; in __process_folios_contig()
343 struct folio *folio = fbatch.folios[i]; in lock_delalloc_folios()
720 eb->folios[i] = page_folio(page_array[i]); in alloc_eb_folio_array()
2410 btrfs_meta_folio_clear_writeback(eb->folios[i], eb); in end_bbio_meta_write()
2462 struct folio *folio = eb->folios[i]; in write_one_eb()
2785 struct folio *folio = fbatch.folios[i]; in extent_write_cache_pages()
3231 struct folio *folio = eb->folios[i]; in btrfs_release_extent_buffer_folios()
3369 ASSERT(eb->folios[i]); in cleanup_extent_buffer_folios()
3370 detach_extent_buffer_folio(eb, eb->folios[i]); in cleanup_extent_buffer_folios()
3371 folio_put(eb->folios[i]); in cleanup_extent_buffer_folios()
[all …]
H A Dextent_io.h115 struct folio *folios[INLINE_EXTENT_BUFFER_PAGES]; member
181 return offset_in_folio(eb->folios[0], offset + eb->start); in get_eb_offset_in_folio()
345 if (!eb->folios[0]) in num_extent_folios()
347 if (folio_order(eb->folios[0])) in num_extent_folios()
H A DKconfig112 - huge folios for data - folios can be as large as 2MiB now
H A Dtree-checker.c68 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in generic_err()
96 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in file_extent_err()
157 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in dir_item_err()
700 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in block_group_err()
1152 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in dev_item_err()
1456 dump_page(folio_page(eb->folios[0], 0), "eb page dump"); in extent_err()
H A Ddisk-io.c84 kaddr = folio_address(buf->folios[0]); in csum_tree_block()
99 kaddr = folio_address(buf->folios[i]); in csum_tree_block()
187 struct folio *folio = eb->folios[i]; in btrfs_repair_eb_io_failure()
286 if (WARN_ON(!btrfs_meta_folio_test_uptodate(eb->folios[0], eb))) in btree_csum_one_bio()
393 header_csum = folio_address(eb->folios[0]) + in btrfs_validate_extent_buffer()
H A Dcompression.c273 struct folio *folio = fbatch.folios[i]; in end_compressed_writeback()
/linux/tools/mm/
H A Dthpmaps252 folios = indexes[index_next:index_end][heads[index_next:index_end]]
256 nr = (int(folios[0]) if len(folios) else index_end) - index_next
261 if len(folios):
264 nr = index_end - int(folios[-1])
265 folios = folios[:-1]
270 if len(folios):
271 folio_nrs = np.append(np.diff(folios), np.uint64(index_end - folios[-1]))
273 for index, order in zip(folios, folio_orders):
/linux/fs/orangefs/
H A Dinode.c74 struct folio **folios; member
91 start = offset_in_folio(ow->folios[0], ow->off); in orangefs_writepages_work()
93 folio_start_writeback(ow->folios[i]); in orangefs_writepages_work()
94 bvec_set_folio(&ow->bv[i], ow->folios[i], in orangefs_writepages_work()
95 folio_size(ow->folios[i]) - start, start); in orangefs_writepages_work()
115 wrp = folio_detach_private(ow->folios[i]); in orangefs_writepages_work()
117 folio_end_writeback(ow->folios[i]); in orangefs_writepages_work()
118 folio_unlock(ow->folios[i]); in orangefs_writepages_work()
144 ow->folios[ow->nfolios++] = folio; in orangefs_writepages_callback()
156 ow->folios[ow->nfolios++] = folio; in orangefs_writepages_callback()
[all …]
/linux/fs/fuse/
H A Dfile.c618 folio_mark_dirty_lock(ap->folios[i]); in fuse_release_user_pages()
620 unpin_folio(ap->folios[i]); in fuse_release_user_pages()
726 ia->ap.folios = fuse_folios_alloc(nfolios, GFP_KERNEL, in fuse_io_alloc()
728 if (!ia->ap.folios) { in fuse_io_alloc()
738 kfree(ia->ap.folios); in fuse_io_free()
840 loff_t pos = folio_pos(ap->folios[0]) + num_read; in fuse_short_read()
859 .ap.folios = &folio, in fuse_do_readfolio()
952 ap->folios[ap->num_folios] = folio; in fuse_handle_readahead()
1035 mapping = ap->folios[0]->mapping; in fuse_readpages_end()
1047 iomap_finish_folio_read(ap->folios[i], ap->descs[i].offset, in fuse_readpages_end()
[all …]
/linux/Documentation/mm/
H A Dunevictable-lru.rst13 folios.
28 folios and to hide these folios from vmscan. This mechanism is based on a patch
72 The Unevictable LRU infrastructure maintains unevictable folios as if they were
75 (1) We get to "treat unevictable folios just like we treat other folios in the
80 (2) We want to be able to migrate unevictable folios between nodes for memory
82 can only migrate folios that it can successfully isolate from the LRU
83 lists (or "Movable" folios: outside of consideration here). If we were to
84 maintain folios elsewhere than on an LRU-like list, where they can be
88 anonymous, swap-backed folios. This differentiation is only important
89 while the folios are, in fact, evictable.
[all …]
H A Dmultigen_lru.rst92 truncated generation number is an index to ``lrugen->folios[]``. The
96 ``lrugen->folios[]``; otherwise it stores zero.
100 generations, tiers do not have dedicated ``lrugen->folios[]``. In
131 increments ``min_seq`` when ``lrugen->folios[]`` indexed by
226 since each node and memcg combination has an LRU of folios (see
232 the active/inactive LRU (of folios):
255 The multi-gen LRU (of folios) can be disassembled into the following
H A Dswap-table.rst25 Swap cache is a map to look up folios using swap entry as the key. The result
/linux/Documentation/filesystems/iomap/
H A Dporting.rst31 2. Large folios are only supported via iomap; there are no plans to
39 allocating, instantiating, locking, and unlocking of folios.
108 interface with iomap and folios.
H A Doperations.rst33 folios.
172 and large folios in the pagecache.
176 * ``uptodate``: iomap will try to keep folios fully up to date.
193 Filesystems wishing to turn on large folios in the pagecache should call
259 ``->iomap_end`` function to find all the clean areas of the folios
309 write dirty pagecache folios to disk.
318 The dirty bit will be cleared for all folios run through the
384 bit on the folios attached to the ``ioend``.
385 If the write failed, it will also set the error bits on the folios and
727 within those folios will be reported as data areas.
/linux/Documentation/core-api/
H A Dpin_user_pages.rst58 For large folios, the GUP_PIN_COUNTING_BIAS scheme is not used. Instead,
62 This approach for large folios avoids the counting upper limit problems
68 This also means that huge pages and large folios do not suffer
202 The whole point of marking folios as "DMA-pinned" or "gup-pinned" is to be able
275 fields, and to better report on large folios in general. Specifically,
276 for large folios, the exact pincount is reported.
/linux/Documentation/driver-api/cxl/linux/
H A Ddax-driver.rst41 folios. If unset, the memory is allocated via a normal :code:`GFP_KERNEL`
/linux/fs/netfs/
H A Drolling_buffer.c133 vec = (struct page **)fq->vec.folios; in rolling_buffer_load_from_ra()
/linux/drivers/iommu/iommufd/
H A Dpages.c667 struct folio **folios = *folios_p; in batch_from_folios() local
671 struct folio *folio = *folios; in batch_from_folios()
688 folios++; in batch_from_folios()
693 *folios_p = folios; in batch_from_folios()
/linux/fs/ntfs3/
H A Dfile.c342 struct folio *folio = fbatch.folios[i]; in ntfs_zero_tail()
/linux/fs/ext4/
H A Dinode.c1742 struct folio *folio = fbatch.folios[i]; in mpage_release_unused_pages()
2318 struct folio *folio = fbatch.folios[i]; in mpage_map_and_submit_buffers()
2640 struct folio *folio = fbatch.folios[i]; in mpage_prepare_extent_to_map()
/linux/fs/
H A Dbuffer.c1639 struct folio *folio = fbatch.folios[i]; in clean_bdev_aliases()

12