/linux-6.3-rc2/include/linux/ |
A D | pagevec.h | 78 struct folio *folios[PAGEVEC_SIZE]; member 84 offsetof(struct folio_batch, folios)); 126 fbatch->folios[fbatch->nr++] = folio; in folio_batch_add()
|
A D | mm_inline.h | 259 list_add_tail(&folio->lru, &lrugen->folios[gen][type][zone]); in lru_gen_add_folio() 261 list_add(&folio->lru, &lrugen->folios[gen][type][zone]); in lru_gen_add_folio()
|
A D | mm.h | 1345 struct folio **folios; member 1363 static inline void folios_put(struct folio **folios, unsigned int nr) in folios_put() argument 1365 release_pages(folios, nr); in folios_put()
|
A D | mmzone.h | 416 struct list_head folios[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES]; member
|
/linux-6.3-rc2/fs/ramfs/ |
A D | file-nommu.c | 235 ret = (unsigned long) folio_address(fbatch.folios[0]); in ramfs_nommu_get_unmapped_area() 236 pfn = folio_pfn(fbatch.folios[0]); in ramfs_nommu_get_unmapped_area() 240 if (pfn + nr_pages != folio_pfn(fbatch.folios[loop])) { in ramfs_nommu_get_unmapped_area() 244 nr_pages += folio_nr_pages(fbatch.folios[loop]); in ramfs_nommu_get_unmapped_area()
|
/linux-6.3-rc2/mm/ |
A D | truncate.c | 71 if (xa_is_value(fbatch->folios[j])) in truncate_folio_batch_exceptionals() 84 struct folio *folio = fbatch->folios[i]; in truncate_folio_batch_exceptionals() 88 fbatch->folios[j++] = folio; in truncate_folio_batch_exceptionals() 368 truncate_cleanup_folio(fbatch.folios[i]); in truncate_inode_pages_range() 371 folio_unlock(fbatch.folios[i]); in truncate_inode_pages_range() 414 struct folio *folio = fbatch.folios[i]; in truncate_inode_pages_range() 511 struct folio *folio = fbatch.folios[i]; in invalidate_mapping_pagevec() 638 struct folio *folio = fbatch.folios[i]; in invalidate_inode_pages2_range()
|
A D | swap.c | 210 struct folio *folio = fbatch->folios[i]; in folio_batch_move_lru() 224 folios_put(fbatch->folios, folio_batch_count(fbatch)); in folio_batch_move_lru() 403 struct folio *batch_folio = fbatch->folios[i]; in __lru_cache_activate_folio() 1081 struct folio *folio = fbatch->folios[i]; in folio_batch_remove_exceptionals() 1083 fbatch->folios[j++] = folio; in folio_batch_remove_exceptionals()
|
A D | filemap.c | 302 if (folio != fbatch->folios[i]) { in page_cache_delete_batch() 304 fbatch->folios[i]->index, folio); in page_cache_delete_batch() 331 struct folio *folio = fbatch->folios[i]; in delete_from_page_cache_batch() 523 struct folio *folio = fbatch.folios[i]; in __filemap_fdatawait_range() 2074 folio = fbatch->folios[idx]; in find_get_entries() 2138 folio = fbatch->folios[idx]; in find_lock_entries() 2276 folio = fbatch->folios[nr - 1]; in filemap_get_folios_contig() 2722 fbatch.folios[0])) in filemap_read() 2723 folio_mark_accessed(fbatch.folios[0]); in filemap_read() 2726 struct folio *folio = fbatch.folios[i]; in filemap_read() [all …]
|
A D | mlock.c | 194 folio = fbatch->folios[i]; in mlock_folio_batch() 197 fbatch->folios[i] = folio; in mlock_folio_batch() 209 release_pages(fbatch->folios, fbatch->nr); in mlock_folio_batch()
|
A D | migrate.c | 1950 LIST_HEAD(folios); in migrate_pages() 1976 list_cut_before(&folios, from, &folio->lru); in migrate_pages() 1978 list_splice_init(from, &folios); in migrate_pages() 1979 rc = migrate_pages_batch(&folios, get_new_page, put_new_page, private, in migrate_pages() 1981 list_splice_tail_init(&folios, &ret_folios); in migrate_pages()
|
A D | vmscan.c | 4300 struct list_head *head = &lrugen->folios[old_gen][type][zone]; in inc_min_seq() 4311 list_move_tail(&folio->lru, &lrugen->folios[new_gen][type][zone]); in inc_min_seq() 4339 if (!list_empty(&lrugen->folios[gen][type][zone])) in try_to_inc_min_seq() 4865 list_move(&folio->lru, &lrugen->folios[gen][type][zone]); in sort_folio() 4874 list_move_tail(&folio->lru, &lrugen->folios[gen][type][zone]); in sort_folio() 4886 list_move(&folio->lru, &lrugen->folios[gen][type][zone]); in sort_folio() 4949 struct list_head *head = &lrugen->folios[gen][type][zone]; in scan_folios() 5543 if (!list_empty(&lrugen->folios[gen][type][zone])) in state_is_valid() 5588 struct list_head *head = &lruvec->lrugen.folios[gen][type][zone]; in drain_evictable() 6122 INIT_LIST_HEAD(&lrugen->folios[gen][type][zone]); in lru_gen_init_lruvec() [all …]
|
/linux-6.3-rc2/Documentation/mm/ |
A D | unevictable-lru.rst | 13 folios. 28 folios and to hide these folios from vmscan. This mechanism is based on a patch 73 (1) We get to "treat unevictable folios just like we treat other folios in the 78 (2) We want to be able to migrate unevictable folios between nodes for memory 80 can only migrate folios that it can successfully isolate from the LRU 82 maintain folios elsewhere than on an LRU-like list, where they can be 86 anonymous, swap-backed folios. This differentiation is only important 87 while the folios are, in fact, evictable. 178 folio_evictable() also checks for mlocked folios by calling 193 "cull" such folios that it encounters: that is, it diverts those folios to the [all …]
|
A D | multigen_lru.rst | 92 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 130 increments ``min_seq`` when ``lrugen->folios[]`` indexed by 192 since each node and memcg combination has an LRU of folios (see 198 the active/inactive LRU (of folios): 221 The multi-gen LRU (of folios) can be disassembled into the following
|
/linux-6.3-rc2/fs/nilfs2/ |
A D | page.c | 255 struct folio *folio = fbatch.folios[i], *dfolio; in nilfs_copy_dirty_pages() 309 struct folio *folio = fbatch.folios[i], *dfolio; in nilfs_copy_back_pages() 370 struct folio *folio = fbatch.folios[i]; in nilfs_clear_dirty_pages() 505 folio = fbatch.folios[i]; in nilfs_find_uncommitted_extent()
|
/linux-6.3-rc2/fs/cifs/ |
A D | cifsencrypt.c | 106 struct folio *folios[16], *folio; in cifs_shash_xarray() local 119 nr = xa_extract(iter->xarray, (void **)folios, index, last, in cifs_shash_xarray() 120 ARRAY_SIZE(folios), XA_PRESENT); in cifs_shash_xarray() 125 folio = folios[i]; in cifs_shash_xarray() 144 } while (nr == ARRAY_SIZE(folios)); in cifs_shash_xarray()
|
/linux-6.3-rc2/Documentation/core-api/ |
A D | pin_user_pages.rst | 58 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 267 fields, and to better report on large folios in general. Specifically, 268 for large folios, the exact pincount is reported.
|
/linux-6.3-rc2/Documentation/filesystems/ |
A D | netfs_library.rst | 104 * Handle folios that span multiple pages. 109 don't match folio sizes or folio alignments and that may cross folios. 363 it transferred. The filesystem also should not deal with setting folios 367 Note that the helpers have the folios locked, but not pinned. It is 391 [Optional] This is called after the folios in the request have all been 438 * Once the data is read, the folios that have been fully read/cleared: 446 * Any folios that need writing to the cache will then have DIO writes issued. 450 * Writes to the cache will proceed asynchronously and the folios will have the
|
A D | fsverity.rst | 571 ``->readahead()`` methods must be modified to verify folios before 627 verification. Finally, folios where no decryption or verity error 628 occurred are marked Uptodate, and the folios are unlocked. 794 - To prevent bypassing verification, folios must not be marked 796 filesystem is responsible for marking folios Uptodate via
|
A D | vfs.rst | 629 on dirty pages, and ->release_folio on clean folios with the private 786 If the mapping does not support large folios, the folio will 796 In normal operation, folios are read through the ->readahead() 903 release_folio is called on folios with private data to tell the 913 some or all folios in an address_space. This can happen 918 and needs to be certain that all folios are invalidated, then 958 some filesystems have more complex state (unstable folios in NFS
|
/linux-6.3-rc2/fs/ceph/ |
A D | addr.c | 896 page = &fbatch.folios[i]->page; in ceph_writepages_start() 1016 fbatch.folios[i] = NULL; in ceph_writepages_start() 1028 if (!fbatch.folios[j]) in ceph_writepages_start() 1031 fbatch.folios[n] = fbatch.folios[j]; in ceph_writepages_start() 1177 fbatch.nr ? fbatch.folios[0] : NULL); in ceph_writepages_start() 1200 page = &fbatch.folios[i]->page; in ceph_writepages_start()
|
/linux-6.3-rc2/fs/gfs2/ |
A D | aops.c | 220 nr_pages += folio_nr_pages(fbatch->folios[i]); in gfs2_write_jdata_batch() 228 struct folio *folio = fbatch->folios[i]; in gfs2_write_jdata_batch()
|
/linux-6.3-rc2/fs/btrfs/tests/ |
A D | extent-io-tests.c | 37 struct folio *folio = fbatch.folios[i]; in process_page_range()
|
/linux-6.3-rc2/fs/f2fs/ |
A D | node.c | 1534 struct page *page = &fbatch.folios[i]->page; in last_fsync_dnode() 1757 struct page *page = &fbatch.folios[i]->page; in f2fs_fsync_node_pages() 1904 struct page *page = &fbatch.folios[i]->page; in f2fs_flush_inline_data() 1958 struct page *page = &fbatch.folios[i]->page; in f2fs_sync_node_pages()
|
A D | checkpoint.c | 414 struct folio *folio = fbatch.folios[i]; in f2fs_sync_meta_pages() 418 folio_nr_pages(fbatch.folios[i-1])) { in f2fs_sync_meta_pages()
|
/linux-6.3-rc2/fs/afs/ |
A D | write.c | 724 folio = fbatch.folios[i]; in afs_writepages_region()
|