Home
last modified time | relevance | path

Searched refs:folio (Results 1 – 25 of 170) sorted by relevance

1234567

/linux/include/linux/
H A Dhugetlb_cgroup.h61 __hugetlb_cgroup_from_folio(struct folio *folio, bool rsvd) in __hugetlb_cgroup_from_folio() argument
63 VM_BUG_ON_FOLIO(!folio_test_hugetlb(folio), folio); in __hugetlb_cgroup_from_folio()
65 return folio->_hugetlb_cgroup_rsvd; in __hugetlb_cgroup_from_folio()
67 return folio->_hugetlb_cgroup; in __hugetlb_cgroup_from_folio()
70 static inline struct hugetlb_cgroup *hugetlb_cgroup_from_folio(struct folio *folio) in hugetlb_cgroup_from_folio() argument
72 return __hugetlb_cgroup_from_folio(folio, false); in hugetlb_cgroup_from_folio()
76 hugetlb_cgroup_from_folio_rsvd(struct folio *folio) in hugetlb_cgroup_from_folio_rsvd() argument
78 return __hugetlb_cgroup_from_folio(folio, true); in hugetlb_cgroup_from_folio_rsvd()
81 static inline void __set_hugetlb_cgroup(struct folio *folio, in __set_hugetlb_cgroup() argument
84 VM_BUG_ON_FOLIO(!folio_test_hugetlb(folio), folio); in __set_hugetlb_cgroup()
[all …]
H A Dmemremap.h83 void (*folio_free)(struct folio *folio);
108 void (*folio_split)(struct folio *head, struct folio *tail);
166 static inline bool folio_is_device_private(const struct folio *folio) in folio_is_device_private() argument
169 folio_is_zone_device(folio) && in folio_is_device_private()
170 folio->pgmap->type == MEMORY_DEVICE_PRIVATE; in folio_is_device_private()
179 static inline bool folio_is_pci_p2pdma(const struct folio *folio) in folio_is_pci_p2pdma() argument
182 folio_is_zone_device(folio) && in folio_is_pci_p2pdma()
183 folio->pgmap->type == MEMORY_DEVICE_PCI_P2PDMA; in folio_is_pci_p2pdma()
186 static inline void *folio_zone_device_data(const struct folio *folio) in folio_zone_device_data() argument
188 VM_WARN_ON_FOLIO(!folio_is_device_private(folio), folio); in folio_zone_device_data()
[all …]
H A Dmigrate.h10 typedef struct folio *new_folio_t(struct folio *folio, unsigned long private);
11 typedef void free_folio_t(struct folio *folio, unsigned long private);
57 int migrate_folio(struct address_space *mapping, struct folio *dst,
58 struct folio *src, enum migrate_mode mode);
62 struct folio *alloc_migration_target(struct folio *src, unsigned long private);
64 bool isolate_folio_to_list(struct folio *folio, struct list_head *list);
67 struct folio *dst, struct folio *src);
70 void folio_migrate_flags(struct folio *newfolio, struct folio *folio);
72 struct folio *newfolio, struct folio *folio, int extra_count);
82 static inline struct folio *alloc_migration_target(struct folio *src, in alloc_migration_target()
[all …]
H A Dpage-flags.h301 const struct page *: (const struct folio *)_compound_head(p), \
302 struct page *: (struct folio *)_compound_head(p)))
313 #define folio_page(folio, n) (&(folio)->page + (n)) argument
340 static const unsigned long *const_folio_flags(const struct folio *folio, in const_folio_flags() argument
343 const struct page *page = &folio->page; in const_folio_flags()
350 static unsigned long *folio_flags(struct folio *folio, unsigned n) in folio_flags() argument
352 struct page *page = &folio->page; in folio_flags()
411 static __always_inline bool folio_test_##name(const struct folio *folio) \
412 { return test_bit(PG_##name, const_folio_flags(folio, page)); }
415 static __always_inline void folio_set_##name(struct folio *folio) \
[all …]
H A Dhighmem.h132 static inline void *kmap_local_folio(const struct folio *folio, size_t offset);
320 struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, in vma_alloc_zeroed_movable_folio()
323 struct folio *folio; in vma_alloc_zeroed_movable_folio() local
325 folio = vma_alloc_folio(GFP_HIGHUSER_MOVABLE, 0, vma, vaddr); in vma_alloc_zeroed_movable_folio()
326 if (folio && user_alloc_needs_zeroing()) in vma_alloc_zeroed_movable_folio()
327 clear_user_highpage(&folio->page, vaddr); in vma_alloc_zeroed_movable_folio()
329 return folio; in vma_alloc_zeroed_movable_folio()
500 static inline void memcpy_folio(struct folio *dst_folio, size_t dst_off, in memcpy_folio()
501 struct folio *src_folio, size_t src_off, size_t len) in memcpy_folio()
575 static inline void memcpy_from_folio(char *to, struct folio *folio, in memcpy_from_folio() argument
[all …]
H A Dhugetlb.h22 void free_huge_folio(struct folio *folio);
131 struct folio *, zap_flags_t);
135 struct folio *, zap_flags_t zap_flags);
148 struct folio **foliop);
154 bool folio_isolate_hugetlb(struct folio *folio, struct list_head *list);
155 int get_hwpoison_hugetlb_folio(struct folio *folio, bool *hugetlb, bool unpoison);
156 void folio_putback_hugetlb(struct folio *folio);
157 void move_hugetlb_state(struct folio *old_folio, struct folio *new_folio, int reason);
168 struct address_space *hugetlb_folio_mapping_lock_write(struct folio *folio);
296 struct folio *folio) in hugetlb_folio_mapping_lock_write() argument
[all …]
/linux/include/trace/events/
H A Dpagemap.h19 #define trace_pagemap_flags(folio) ( \ argument
20 (folio_test_anon(folio) ? PAGEMAP_ANONYMOUS : PAGEMAP_FILE) | \
21 (folio_mapped(folio) ? PAGEMAP_MAPPED : 0) | \
22 (folio_test_swapcache(folio) ? PAGEMAP_SWAPCACHE : 0) | \
23 (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \
24 (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \
25 (folio_test_private(folio) ? PAGEMAP_BUFFERS : 0) \
30 TP_PROTO(struct folio *folio),
32 TP_ARGS(folio),
35 __field(struct folio *, folio )
[all …]
/linux/fs/ecryptfs/
H A Dmmap.c33 struct folio *folio = NULL; in ecryptfs_writepages() local
36 while ((folio = writeback_iter(mapping, wbc, folio, &error))) { in ecryptfs_writepages()
37 error = ecryptfs_encrypt_page(folio); in ecryptfs_writepages()
41 folio->index); in ecryptfs_writepages()
42 folio_clear_uptodate(folio); in ecryptfs_writepages()
45 folio_unlock(folio); in ecryptfs_writepages()
91 ecryptfs_copy_up_encrypted_with_header(struct folio *folio, in ecryptfs_copy_up_encrypted_with_header() argument
100 loff_t view_extent_num = ((loff_t)folio->index in ecryptfs_copy_up_encrypted_with_header()
110 page_virt = kmap_local_folio(folio, 0); in ecryptfs_copy_up_encrypted_with_header()
117 page_virt, folio->mapping->host); in ecryptfs_copy_up_encrypted_with_header()
[all …]
/linux/fs/
H A Dmpage.c51 folio_end_read(fi.folio, err == 0); in mpage_read_end_io()
63 mapping_set_error(fi.folio->mapping, err); in mpage_write_end_io()
64 folio_end_writeback(fi.folio); in mpage_write_end_io()
96 static void map_buffer_to_folio(struct folio *folio, struct buffer_head *bh, in map_buffer_to_folio() argument
99 struct inode *inode = folio->mapping->host; in map_buffer_to_folio()
103 head = folio_buffers(folio); in map_buffer_to_folio()
109 if (inode->i_blkbits == folio_shift(folio) && in map_buffer_to_folio()
111 folio_mark_uptodate(folio); in map_buffer_to_folio()
114 head = create_empty_buffers(folio, i_blocksize(inode), 0); in map_buffer_to_folio()
132 struct folio *folio; member
[all …]
/linux/fs/xfs/scrub/
H A Dxfile.c126 struct folio *folio; in xfile_load() local
130 if (shmem_get_folio(inode, pos >> PAGE_SHIFT, 0, &folio, in xfile_load()
133 if (!folio) { in xfile_load()
143 folio_unlock(folio); in xfile_load()
144 folio_put(folio); in xfile_load()
148 offset = offset_in_folio(folio, pos); in xfile_load()
149 len = min_t(ssize_t, count, folio_size(folio) - offset); in xfile_load()
150 memcpy(buf, folio_address(folio) + offset, len); in xfile_load()
152 folio_unlock(folio); in xfile_load()
153 folio_put(folio); in xfile_load()
[all …]
/linux/fs/netfs/
H A Dbuffered_write.c19 static struct folio *netfs_grab_folio_for_write(struct address_space *mapping, in netfs_grab_folio_for_write()
102 struct folio *folio = NULL, *writethrough = NULL; in netfs_perform_write() local
162 folio = netfs_grab_folio_for_write(mapping, pos, part); in netfs_perform_write()
163 if (IS_ERR(folio)) { in netfs_perform_write()
164 ret = PTR_ERR(folio); in netfs_perform_write()
168 flen = folio_size(folio); in netfs_perform_write()
169 fpos = folio_pos(folio); in netfs_perform_write()
177 if (folio_get_private(folio) && in netfs_perform_write()
178 folio_wait_writeback_killable(folio)) { in netfs_perform_write()
188 finfo = netfs_folio_info(folio); in netfs_perform_write()
[all …]
H A Dread_pgpriv2.c19 static void netfs_pgpriv2_copy_folio(struct netfs_io_request *creq, struct folio *folio) in netfs_pgpriv2_copy_folio() argument
22 size_t fsize = folio_size(folio), flen = fsize; in netfs_pgpriv2_copy_folio()
23 loff_t fpos = folio_pos(folio), i_size; in netfs_pgpriv2_copy_folio()
37 folio_end_private_2(folio); in netfs_pgpriv2_copy_folio()
53 trace_netfs_folio(folio, netfs_folio_trace_store_copy); in netfs_pgpriv2_copy_folio()
56 if (rolling_buffer_append(&creq->buffer, folio, 0) < 0) { in netfs_pgpriv2_copy_folio()
98 struct netfs_io_request *rreq, struct folio *folio) in netfs_pgpriv2_begin_copy_to_cache() argument
105 creq = netfs_create_write_req(rreq->mapping, NULL, folio_pos(folio), in netfs_pgpriv2_begin_copy_to_cache()
132 void netfs_pgpriv2_copy_to_cache(struct netfs_io_request *rreq, struct folio *folio) in netfs_pgpriv2_copy_to_cache() argument
137 creq = netfs_pgpriv2_begin_copy_to_cache(rreq, folio); in netfs_pgpriv2_copy_to_cache()
[all …]
H A Dbuffered_read.c376 static int netfs_create_singular_buffer(struct netfs_io_request *rreq, struct folio *folio, in netfs_create_singular_buffer() argument
384 added = rolling_buffer_append(&rreq->buffer, folio, rollbuf_flags); in netfs_create_singular_buffer()
394 static int netfs_read_gaps(struct file *file, struct folio *folio) in netfs_read_gaps() argument
397 struct address_space *mapping = folio->mapping; in netfs_read_gaps()
398 struct netfs_group *group = netfs_folio_group(folio); in netfs_read_gaps()
399 struct netfs_folio *finfo = netfs_folio_info(folio); in netfs_read_gaps()
401 struct folio *sink = NULL; in netfs_read_gaps()
406 size_t flen = folio_size(folio); in netfs_read_gaps()
411 _enter("%lx", folio->index); in netfs_read_gaps()
413 rreq = netfs_alloc_request(mapping, file, folio_pos(folio), flen, NETFS_READ_GAPS); in netfs_read_gaps()
[all …]
H A Dmisc.c34 struct folio *folio; in netfs_alloc_folioq_buffer() local
54 folio = folio_alloc(gfp, order); in netfs_alloc_folioq_buffer()
55 if (!folio && order > 0) in netfs_alloc_folioq_buffer()
56 folio = folio_alloc(gfp, 0); in netfs_alloc_folioq_buffer()
57 if (!folio) in netfs_alloc_folioq_buffer()
60 folio->mapping = mapping; in netfs_alloc_folioq_buffer()
61 folio->index = *_cur_size / PAGE_SIZE; in netfs_alloc_folioq_buffer()
62 trace_netfs_folio(folio, netfs_folio_trace_alloc_buffer); in netfs_alloc_folioq_buffer()
63 slot = folioq_append_mark(tail, folio); in netfs_alloc_folioq_buffer()
87 struct folio *folio = folioq_folio(fq, slot); in netfs_free_folioq_buffer() local
[all …]
H A Dwrite_issue.c45 struct folio *folio) in netfs_kill_dirty_pages() argument
55 priv = folio_detach_private(folio); in netfs_kill_dirty_pages()
75 trace_netfs_folio(folio, why); in netfs_kill_dirty_pages()
77 folio_start_writeback(folio); in netfs_kill_dirty_pages()
78 folio_unlock(folio); in netfs_kill_dirty_pages()
79 folio_end_writeback(folio); in netfs_kill_dirty_pages()
84 } while ((folio = writeback_iter(mapping, wbc, folio, &error))); in netfs_kill_dirty_pages()
322 struct folio *folio) in netfs_write_folio() argument
330 size_t fsize = folio_size(folio), flen = fsize, foff = 0; in netfs_write_folio()
331 loff_t fpos = folio_pos(folio), i_size; in netfs_write_folio()
[all …]
/linux/arch/arm/mm/
H A Dflush.c199 void __flush_dcache_folio(struct address_space *mapping, struct folio *folio) in __flush_dcache_folio() argument
206 if (!folio_test_highmem(folio)) { in __flush_dcache_folio()
207 __cpuc_flush_dcache_area(folio_address(folio), in __flush_dcache_folio()
208 folio_size(folio)); in __flush_dcache_folio()
212 for (i = 0; i < folio_nr_pages(folio); i++) { in __flush_dcache_folio()
213 void *addr = kmap_local_folio(folio, in __flush_dcache_folio()
219 for (i = 0; i < folio_nr_pages(folio); i++) { in __flush_dcache_folio()
220 void *addr = kmap_high_get(folio_page(folio, i)); in __flush_dcache_folio()
223 kunmap_high(folio_page(folio, i)); in __flush_dcache_folio()
235 flush_pfn_alias(folio_pfn(folio), folio_pos(folio)); in __flush_dcache_folio()
[all …]
/linux/fs/qnx6/
H A Ddir.c29 struct folio **foliop) in qnx6_get_folio()
31 struct folio *folio = read_mapping_folio(dir->i_mapping, n, NULL); in qnx6_get_folio() local
33 if (IS_ERR(folio)) in qnx6_get_folio()
34 return folio; in qnx6_get_folio()
35 *foliop = folio; in qnx6_get_folio()
36 return kmap_local_folio(folio, 0); in qnx6_get_folio()
50 struct folio **foliop) in qnx6_longname()
57 struct folio *folio = read_mapping_folio(mapping, n, NULL); in qnx6_longname() local
59 if (IS_ERR(folio)) in qnx6_longname()
60 return ERR_CAST(folio); in qnx6_longname()
[all …]
/linux/virt/kvm/
H A Dguest_memfd.c48 * @folio: The folio which contains this index.
53 static inline kvm_pfn_t folio_file_pfn(struct folio *folio, pgoff_t index) in folio_file_pfn()
55 return folio_pfn(folio) + (index & (folio_nr_pages(folio) - 1)); in folio_file_pfn()
64 pgoff_t index, struct folio *folio) in __kvm_gmem_prepare_folio()
67 kvm_pfn_t pfn = folio_file_pfn(folio, index); in __kvm_gmem_prepare_folio()
69 int rc = kvm_arch_gmem_prepare(kvm, gfn, pfn, folio_order(folio)); in __kvm_gmem_prepare_folio()
52 folio_file_pfn(struct folio * folio,pgoff_t index) folio_file_pfn() argument
63 __kvm_gmem_prepare_folio(struct kvm * kvm,struct kvm_memory_slot * slot,pgoff_t index,struct folio * folio) __kvm_gmem_prepare_folio() argument
86 kvm_gmem_prepare_folio(struct kvm * kvm,struct kvm_memory_slot * slot,gfn_t gfn,struct folio * folio) kvm_gmem_prepare_folio() argument
123 struct folio *folio; kvm_gmem_get_folio() local
269 struct folio *folio; kvm_gmem_allocate() local
394 struct folio *folio; kvm_gmem_fault_user_mapping() local
498 kvm_gmem_error_folio(struct address_space * mapping,struct folio * folio) kvm_gmem_error_folio() argument
526 kvm_gmem_free_folio(struct folio * folio) kvm_gmem_free_folio() argument
759 struct folio *folio; __kvm_gmem_get_pfn() local
793 struct folio *folio; kvm_gmem_get_pfn() local
829 struct folio *folio; __kvm_gmem_populate() local
[all...]
/linux/mm/
H A Dmemfd_luo.c96 struct folio **folios; in memfd_luo_preserve_folios()
150 struct folio *folio = folios[i]; in memfd_luo_preserve_folios() local
152 err = kho_preserve_folio(folio); in memfd_luo_preserve_folios()
156 folio_lock(folio); in memfd_luo_preserve_folios()
177 folio_mark_dirty(folio); in memfd_luo_preserve_folios()
191 if (!folio_test_uptodate(folio)) { in memfd_luo_preserve_folios()
192 folio_zero_range(folio, 0, folio_size(folio)); in memfd_luo_preserve_folios()
193 flush_dcache_folio(folio); in memfd_luo_preserve_folios()
194 folio_mark_uptodate(folio); in memfd_luo_preserve_folios()
197 folio_unlock(folio); in memfd_luo_preserve_folios()
[all …]
H A Dhugetlb_vmemmap.c396 struct folio *folio, unsigned long flags) in __hugetlb_vmemmap_restore_folio() argument
401 VM_WARN_ON_ONCE_FOLIO(!folio_test_hugetlb(folio), folio); in __hugetlb_vmemmap_restore_folio()
402 VM_WARN_ON_ONCE_FOLIO(folio_ref_count(folio), folio); in __hugetlb_vmemmap_restore_folio()
404 if (!folio_test_hugetlb_vmemmap_optimized(folio)) in __hugetlb_vmemmap_restore_folio()
407 vmemmap_start = (unsigned long)&folio->page; in __hugetlb_vmemmap_restore_folio()
420 folio_clear_hugetlb_vmemmap_optimized(folio); in __hugetlb_vmemmap_restore_folio()
435 int hugetlb_vmemmap_restore_folio(const struct hstate *h, struct folio *folio) in hugetlb_vmemmap_restore_folio() argument
437 return __hugetlb_vmemmap_restore_folio(h, folio, 0); in hugetlb_vmemmap_restore_folio()
457 struct folio *folio, *t_folio; in hugetlb_vmemmap_restore_folios() local
462 list_for_each_entry_safe(folio, t_folio, folio_list, lru) { in hugetlb_vmemmap_restore_folios()
[all …]
/linux/arch/mips/include/asm/
H A Dcacheflush.h39 #define folio_test_dcache_dirty(folio) \ argument
40 test_bit(PG_dcache_dirty, &(folio)->flags.f)
41 #define folio_set_dcache_dirty(folio) \ argument
42 set_bit(PG_dcache_dirty, &(folio)->flags.f)
43 #define folio_clear_dcache_dirty(folio) \ argument
44 clear_bit(PG_dcache_dirty, &(folio)->flags.f)
53 void __flush_dcache_folio_pages(struct folio *folio, struct page *page, unsigned int nr);
56 static inline void flush_dcache_folio(struct folio *folio) in flush_dcache_folio() argument
59 __flush_dcache_folio_pages(folio, folio_page(folio, 0), in flush_dcache_folio()
60 folio_nr_pages(folio)); in flush_dcache_folio()
[all …]
/linux/fs/ntfs/
H A Dbitmap.c20 struct folio *folio; in ntfs_trim_fs() local
52 folio = ntfs_get_locked_folio(vol->lcnbmp_ino->i_mapping, in ntfs_trim_fs()
54 if (IS_ERR(folio)) { in ntfs_trim_fs()
55 ret = PTR_ERR(folio); in ntfs_trim_fs()
59 kaddr = kmap_local_folio(folio, 0); in ntfs_trim_fs()
90 folio_unlock(folio); in ntfs_trim_fs()
91 folio_put(folio); in ntfs_trim_fs()
126 struct folio *folio; in __ntfs_bitmap_set_bits_in_run() local
150 folio = read_mapping_folio(mapping, index, NULL); in __ntfs_bitmap_set_bits_in_run()
151 if (IS_ERR(folio)) { in __ntfs_bitmap_set_bits_in_run()
[all …]
/linux/arch/xtensa/mm/
H A Dcache.c90 struct folio *folio = page_folio(page); in clear_user_highpage() local
96 set_bit(PG_arch_1, folio_flags(folio, 0)); in clear_user_highpage()
105 struct folio *folio = page_folio(dst); in copy_user_highpage() local
114 set_bit(PG_arch_1, folio_flags(folio, 0)); in copy_user_highpage()
126 void flush_dcache_folio(struct folio *folio) in flush_dcache_folio() argument
128 struct address_space *mapping = folio_flush_mapping(folio); in flush_dcache_folio()
137 if (!test_bit(PG_arch_1, &folio->flags.f)) in flush_dcache_folio()
138 set_bit(PG_arch_1, &folio->flags.f); in flush_dcache_folio()
142 unsigned long phys = folio_pfn(folio) * PAGE_SIZE; in flush_dcache_folio()
143 unsigned long temp = folio_pos(folio); in flush_dcache_folio()
[all …]
/linux/arch/csky/abiv1/
H A Dcacheflush.c18 void flush_dcache_folio(struct folio *folio) in flush_dcache_folio() argument
22 if (is_zero_pfn(folio_pfn(folio))) in flush_dcache_folio()
25 mapping = folio_flush_mapping(folio); in flush_dcache_folio()
27 if (mapping && !folio_mapped(folio)) in flush_dcache_folio()
28 clear_bit(PG_dcache_clean, &folio->flags.f); in flush_dcache_folio()
33 set_bit(PG_dcache_clean, &folio->flags.f); in flush_dcache_folio()
48 struct folio *folio; in update_mmu_cache_range() local
58 folio = page_folio(pfn_to_page(pfn)); in update_mmu_cache_range()
59 if (!test_and_set_bit(PG_dcache_clean, &folio->flags.f)) in update_mmu_cache_range()
62 if (folio_flush_mapping(folio)) { in update_mmu_cache_range()
/linux/arch/nios2/mm/
H A Dcacheflush.c74 static void flush_aliases(struct address_space *mapping, struct folio *folio) in flush_aliases() argument
80 unsigned long nr = folio_nr_pages(folio); in flush_aliases()
82 pgoff = folio->index; in flush_aliases()
163 static void __flush_dcache_folio(struct folio *folio) in __flush_dcache_folio() argument
170 unsigned long start = (unsigned long)folio_address(folio); in __flush_dcache_folio()
172 __flush_dcache(start, start + folio_size(folio)); in __flush_dcache_folio()
175 void flush_dcache_folio(struct folio *folio) in flush_dcache_folio() argument
183 if (is_zero_pfn(folio_pfn(folio))) in flush_dcache_folio()
186 mapping = folio_flush_mapping(folio); in flush_dcache_folio()
190 clear_bit(PG_dcache_clean, &folio->flags.f); in flush_dcache_folio()
[all …]

1234567