| /linux/include/linux/ |
| H A D | pagevec.h | 41 static inline void folio_batch_init(struct folio_batch *fbatch) in folio_batch_init() argument 43 fbatch->nr = 0; in folio_batch_init() 44 fbatch->i = 0; in folio_batch_init() 45 fbatch->percpu_pvec_drained = false; in folio_batch_init() 48 static inline void folio_batch_reinit(struct folio_batch *fbatch) in folio_batch_reinit() argument 50 fbatch->nr = 0; in folio_batch_reinit() 51 fbatch->i = 0; in folio_batch_reinit() 54 static inline unsigned int folio_batch_count(const struct folio_batch *fbatch) in folio_batch_count() argument 56 return fbatch->nr; in folio_batch_count() 59 static inline unsigned int folio_batch_space(const struct folio_batch *fbatch) in folio_batch_space() argument [all …]
|
| H A D | pagemap.h | 1002 pgoff_t end, struct folio_batch *fbatch); 1004 pgoff_t *start, pgoff_t end, struct folio_batch *fbatch); 1006 pgoff_t end, xa_mark_t tag, struct folio_batch *fbatch); 1008 pgoff_t *start, pgoff_t end, struct folio_batch *fbatch); 1304 struct folio_batch *fbatch);
|
| H A D | writeback.h | 75 struct folio_batch fbatch; member
|
| /linux/mm/ |
| H A D | swap.c | 158 static void folio_batch_move_lru(struct folio_batch *fbatch, move_fn_t move_fn) in folio_batch_move_lru() argument 164 for (i = 0; i < folio_batch_count(fbatch); i++) { in folio_batch_move_lru() 165 struct folio *folio = fbatch->folios[i]; in folio_batch_move_lru() 179 folios_put(fbatch); in folio_batch_move_lru() 182 static void __folio_batch_add_and_move(struct folio_batch __percpu *fbatch, in __folio_batch_add_and_move() argument 194 if (!folio_batch_add(this_cpu_ptr(fbatch), folio) || in __folio_batch_add_and_move() 196 folio_batch_move_lru(this_cpu_ptr(fbatch), move_fn); in __folio_batch_add_and_move() 323 struct folio_batch *fbatch = &per_cpu(cpu_fbatches.lru_activate, cpu); in folio_activate_drain() local 325 if (folio_batch_count(fbatch)) in folio_activate_drain() 326 folio_batch_move_lru(fbatch, lru_activat in folio_activate_drain() 359 struct folio_batch *fbatch; __lru_cache_activate_folio() local 645 struct folio_batch *fbatch = &fbatches->lru_add; lru_add_drain_cpu() local 1020 struct folio_batch fbatch; release_pages() local 1056 __folio_batch_release(struct folio_batch * fbatch) __folio_batch_release() argument 1075 folio_batch_remove_exceptionals(struct folio_batch * fbatch) folio_batch_remove_exceptionals() argument [all...] |
| H A D | truncate.c | 61 struct folio_batch *fbatch, pgoff_t *indices) in truncate_folio_batch_exceptionals() argument 64 int nr = folio_batch_count(fbatch); in truncate_folio_batch_exceptionals() 73 if (xa_is_value(fbatch->folios[j])) in truncate_folio_batch_exceptionals() 81 if (xa_is_value(fbatch->folios[i])) { in truncate_folio_batch_exceptionals() 117 folio_batch_remove_exceptionals(fbatch); in truncate_folio_batch_exceptionals() 371 struct folio_batch fbatch; in truncate_inode_pages_range() local 398 folio_batch_init(&fbatch); in truncate_inode_pages_range() 401 &fbatch, indices)) { in truncate_inode_pages_range() 402 truncate_folio_batch_exceptionals(mapping, &fbatch, indices); in truncate_inode_pages_range() 403 for (i = 0; i < folio_batch_count(&fbatch); i++) in truncate_inode_pages_range() [all …]
|
| H A D | mlock.c | 33 struct folio_batch fbatch; member 186 static void mlock_folio_batch(struct folio_batch *fbatch) in mlock_folio_batch() argument 193 for (i = 0; i < folio_batch_count(fbatch); i++) { in mlock_folio_batch() 194 folio = fbatch->folios[i]; in mlock_folio_batch() 197 fbatch->folios[i] = folio; in mlock_folio_batch() 209 folios_put(fbatch); in mlock_folio_batch() 214 struct folio_batch *fbatch; in mlock_drain_local() local 217 fbatch = this_cpu_ptr(&mlock_fbatch.fbatch); in mlock_drain_local() 218 if (folio_batch_count(fbatch)) in mlock_drain_local() 219 mlock_folio_batch(fbatch); in mlock_drain_local() [all …]
|
| H A D | filemap.c | 280 struct folio_batch *fbatch) in page_cache_delete_batch() argument 282 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); in page_cache_delete_batch() 289 if (i >= folio_batch_count(fbatch)) in page_cache_delete_batch() 302 if (folio != fbatch->folios[i]) { in page_cache_delete_batch() 304 fbatch->folios[i]->index, folio); in page_cache_delete_batch() 321 struct folio_batch *fbatch) in delete_from_page_cache_batch() argument 325 if (!folio_batch_count(fbatch)) in delete_from_page_cache_batch() 330 for (i = 0; i < folio_batch_count(fbatch); i++) { in delete_from_page_cache_batch() 331 struct folio *folio = fbatch->folios[i]; in delete_from_page_cache_batch() 336 page_cache_delete_batch(mapping, fbatch); in delete_from_page_cache_batch() [all …]
|
| H A D | shmem.c | 1061 struct folio_batch fbatch; in shmem_unlock_mapping() local 1064 folio_batch_init(&fbatch); in shmem_unlock_mapping() 1069 filemap_get_folios(mapping, &index, ~0UL, &fbatch)) { in shmem_unlock_mapping() 1070 check_move_unevictable_folios(&fbatch); in shmem_unlock_mapping() 1071 folio_batch_release(&fbatch); in shmem_unlock_mapping() 1115 struct folio_batch fbatch; in shmem_undo_range() local 1129 folio_batch_init(&fbatch); in shmem_undo_range() 1132 &fbatch, indices)) { in shmem_undo_range() 1133 for (i = 0; i < folio_batch_count(&fbatch); i++) { in shmem_undo_range() 1134 folio = fbatch.folios[i]; in shmem_undo_range() [all …]
|
| H A D | page-writeback.c | 2407 folio = folio_batch_next(&wbc->fbatch); in folio_prepare_writeback() 2409 folio_batch_release(&wbc->fbatch); in folio_prepare_writeback() 2412 wbc_to_tag(wbc), &wbc->fbatch); in folio_prepare_writeback() 2413 folio = folio_batch_next(&wbc->fbatch); in folio_prepare_writeback() 2458 folio_batch_init(&wbc->fbatch); in writeback_get_folio() 2538 folio_batch_release(&wbc->fbatch); in writeback_iter()
|
| H A D | gup.c | 3444 struct folio_batch fbatch; 3475 folio_batch_init(&fbatch); in memfd_pin_folios() 3486 &fbatch); in memfd_pin_folios() 3493 folio = fbatch.folios[i]; in memfd_pin_folios() 3496 folio_batch_release(&fbatch); in memfd_pin_folios() 3510 folio_batch_release(&fbatch); in memfd_pin_folios() 3455 struct folio_batch fbatch; memfd_pin_folios() local
|
| /linux/fs/nilfs2/ |
| H A D | page.c | 246 struct folio_batch fbatch; in nilfs_copy_dirty_pages() local 251 folio_batch_init(&fbatch); in nilfs_copy_dirty_pages() 254 PAGECACHE_TAG_DIRTY, &fbatch)) in nilfs_copy_dirty_pages() 257 for (i = 0; i < folio_batch_count(&fbatch); i++) { in nilfs_copy_dirty_pages() 258 struct folio *folio = fbatch.folios[i], *dfolio; in nilfs_copy_dirty_pages() 282 folio_batch_release(&fbatch); in nilfs_copy_dirty_pages() 301 struct folio_batch fbatch; in nilfs_copy_back_pages() local 305 folio_batch_init(&fbatch); in nilfs_copy_back_pages() 307 n = filemap_get_folios(smap, &start, ~0UL, &fbatch); in nilfs_copy_back_pages() 311 for (i = 0; i < folio_batch_count(&fbatch); i++) { in nilfs_copy_back_pages() [all …]
|
| H A D | segment.c | 704 struct folio_batch fbatch; in nilfs_lookup_dirty_data_buffers() local 718 folio_batch_init(&fbatch); in nilfs_lookup_dirty_data_buffers() 722 PAGECACHE_TAG_DIRTY, &fbatch)) in nilfs_lookup_dirty_data_buffers() 725 for (i = 0; i < folio_batch_count(&fbatch); i++) { in nilfs_lookup_dirty_data_buffers() 727 struct folio *folio = fbatch.folios[i]; in nilfs_lookup_dirty_data_buffers() 749 folio_batch_release(&fbatch); in nilfs_lookup_dirty_data_buffers() 757 folio_batch_release(&fbatch); in nilfs_lookup_dirty_data_buffers() 767 struct folio_batch fbatch; in nilfs_lookup_dirty_node_buffers() local 774 folio_batch_init(&fbatch); in nilfs_lookup_dirty_node_buffers() 777 (pgoff_t)-1, PAGECACHE_TAG_DIRTY, &fbatch)) { in nilfs_lookup_dirty_node_buffers() [all …]
|
| /linux/fs/ramfs/ |
| H A D | file-nommu.c | 208 struct folio_batch fbatch; in ramfs_nommu_get_unmapped_area() local 224 folio_batch_init(&fbatch); in ramfs_nommu_get_unmapped_area() 228 ULONG_MAX, &fbatch); in ramfs_nommu_get_unmapped_area() 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() 250 folio_batch_release(&fbatch); in ramfs_nommu_get_unmapped_area() 256 folio_batch_release(&fbatch); in ramfs_nommu_get_unmapped_area()
|
| /linux/fs/netfs/ |
| H A D | rolling_buffer.c | 199 struct folio_batch fbatch; in rolling_buffer_clear() local 202 folio_batch_init(&fbatch); in rolling_buffer_clear() 213 if (!folio_batch_add(&fbatch, folio)) in rolling_buffer_clear() 214 folio_batch_release(&fbatch); in rolling_buffer_clear() 221 folio_batch_release(&fbatch); in rolling_buffer_clear()
|
| H A D | misc.c | 81 struct folio_batch fbatch; in netfs_free_folioq_buffer() local 83 folio_batch_init(&fbatch); in netfs_free_folioq_buffer() 94 if (folio_batch_add(&fbatch, folio)) in netfs_free_folioq_buffer() 95 folio_batch_release(&fbatch); in netfs_free_folioq_buffer() 103 folio_batch_release(&fbatch); in netfs_free_folioq_buffer()
|
| /linux/drivers/gpu/drm/i915/gem/ |
| H A D | i915_gem_shmem.c | 27 static void check_release_folio_batch(struct folio_batch *fbatch) in check_release_folio_batch() argument 29 check_move_unevictable_folios(fbatch); in check_release_folio_batch() 30 __folio_batch_release(fbatch); in check_release_folio_batch() 38 struct folio_batch fbatch; in shmem_sg_free_table() local 44 folio_batch_init(&fbatch); in shmem_sg_free_table() 56 if (!folio_batch_add(&fbatch, folio)) in shmem_sg_free_table() 57 check_release_folio_batch(&fbatch); in shmem_sg_free_table() 59 if (fbatch.nr) in shmem_sg_free_table() 60 check_release_folio_batch(&fbatch); in shmem_sg_free_table()
|
| /linux/drivers/gpu/drm/ |
| H A D | drm_gem.c | 633 static void drm_gem_check_release_batch(struct folio_batch *fbatch) in drm_gem_check_release_batch() argument 635 check_move_unevictable_folios(fbatch); in drm_gem_check_release_batch() 636 __folio_batch_release(fbatch); in drm_gem_check_release_batch() 670 struct folio_batch fbatch; in drm_gem_get_pages() local 717 folio_batch_init(&fbatch); in drm_gem_get_pages() 721 if (!folio_batch_add(&fbatch, f)) in drm_gem_get_pages() 722 drm_gem_check_release_batch(&fbatch); in drm_gem_get_pages() 725 if (fbatch.nr) in drm_gem_get_pages() 726 drm_gem_check_release_batch(&fbatch); in drm_gem_get_pages() 745 struct folio_batch fbatch; in drm_gem_put_pages() local [all …]
|
| /linux/fs/ceph/ |
| H A D | addr.c | 609 struct folio_batch fbatch; member 1015 folio_batch_init(&ceph_wbc->fbatch); in ceph_folio_batch_init() 1022 folio_batch_release(&ceph_wbc->fbatch); in ceph_folio_batch_reinit() 1297 folio = ceph_wbc->fbatch.folios[i]; in ceph_process_folio_batch() 1325 ceph_wbc->fbatch.folios[i] = NULL; in ceph_process_folio_batch() 1329 ceph_wbc->fbatch.folios[i] = NULL; in ceph_process_folio_batch() 1336 ceph_wbc->fbatch.folios[i] = NULL; in ceph_process_folio_batch() 1374 ceph_wbc->fbatch.folios[i] = NULL; in ceph_process_folio_batch() 1382 void ceph_shift_unused_folios_left(struct folio_batch *fbatch) in ceph_shift_unused_folios_left() argument 1387 for (j = 0; j < folio_batch_count(fbatch); j++) { in ceph_shift_unused_folios_left() [all …]
|
| /linux/fs/iomap/ |
| H A D | iter.c | 12 folio_batch_release(iter->fbatch); in iomap_iter_reset_iomap() 13 folio_batch_reinit(iter->fbatch); in iomap_iter_reset_iomap()
|
| H A D | buffered-io.c | 857 struct folio *folio = folio_batch_next(iter->fbatch); in __iomap_get_folio() 1593 if (!iter->fbatch) { in iomap_fill_dirty_folios() 1598 count = filemap_get_folios_dirty(mapping, &pstart, pend, iter->fbatch); in iomap_fill_dirty_folios() 1610 struct folio_batch fbatch; in iomap_zero_range() local 1617 .fbatch = &fbatch, in iomap_zero_range() 1623 folio_batch_init(&fbatch); in iomap_zero_range()
|
| /linux/drivers/gpu/drm/i915/ |
| H A D | i915_gpu_error.c | 191 static void pool_fini(struct folio_batch *fbatch) in pool_fini() argument 193 folio_batch_release(fbatch); in pool_fini() 196 static int pool_refill(struct folio_batch *fbatch, gfp_t gfp) in pool_refill() argument 198 while (folio_batch_space(fbatch)) { in pool_refill() 205 folio_batch_add(fbatch, folio); in pool_refill() 211 static int pool_init(struct folio_batch *fbatch, gfp_t gfp) in pool_init() argument 215 folio_batch_init(fbatch); in pool_init() 217 err = pool_refill(fbatch, gfp); in pool_init() 219 pool_fini(fbatch); in pool_init() 224 static void *pool_alloc(struct folio_batch *fbatch, gfp_t gfp) in pool_alloc() argument [all …]
|
| /linux/fs/btrfs/ |
| H A D | extent_io.c | 272 struct folio_batch fbatch; in __process_folios_contig() local 275 folio_batch_init(&fbatch); in __process_folios_contig() 280 end_index, &fbatch); in __process_folios_contig() 282 struct folio *folio = fbatch.folios[i]; in __process_folios_contig() 287 folio_batch_release(&fbatch); in __process_folios_contig() 311 struct folio_batch fbatch; in lock_delalloc_folios() local 313 folio_batch_init(&fbatch); in lock_delalloc_folios() 318 end_index, &fbatch); in lock_delalloc_folios() 323 struct folio *folio = fbatch.folios[i]; in lock_delalloc_folios() 341 folio_batch_release(&fbatch); in lock_delalloc_folios() [all …]
|
| H A D | compression.c | 256 struct folio_batch fbatch; in end_compressed_writeback() local 264 folio_batch_init(&fbatch); in end_compressed_writeback() 267 &fbatch); in end_compressed_writeback() 273 struct folio *folio = fbatch.folios[i]; in end_compressed_writeback() 278 folio_batch_release(&fbatch); in end_compressed_writeback()
|
| /linux/fs/hugetlbfs/ |
| H A D | inode.c | 583 struct folio_batch fbatch; in remove_inode_hugepages() local 588 folio_batch_init(&fbatch); in remove_inode_hugepages() 590 while (filemap_get_folios(mapping, &next, end - 1, &fbatch)) { in remove_inode_hugepages() 591 for (i = 0; i < folio_batch_count(&fbatch); ++i) { in remove_inode_hugepages() 592 struct folio *folio = fbatch.folios[i]; in remove_inode_hugepages() 608 folio_batch_release(&fbatch); in remove_inode_hugepages()
|
| /linux/fs/ |
| H A D | buffer.c | 1739 struct folio_batch fbatch; in clean_bdev_aliases() local 1747 folio_batch_init(&fbatch); in clean_bdev_aliases() 1748 while (filemap_get_folios(bd_mapping, &index, end, &fbatch)) { in clean_bdev_aliases() 1749 count = folio_batch_count(&fbatch); in clean_bdev_aliases() 1751 struct folio *folio = fbatch.folios[i]; in clean_bdev_aliases() 1780 folio_batch_release(&fbatch); in clean_bdev_aliases()
|