Home
last modified time | relevance | path

Searched full:pages (Results 1 – 25 of 2653) sorted by relevance

12345678910>>...107

/linux/drivers/iommu/iommufd/
H A Dpages.c73 * allocation can hold about 26M of 4k pages and 13G of 2M pages in an
167 static void iopt_pages_add_npinned(struct iopt_pages *pages, size_t npages) in iopt_pages_add_npinned() argument
171 rc = check_add_overflow(pages->npinned, npages, &pages->npinned); in iopt_pages_add_npinned()
173 WARN_ON(rc || pages->npinned > pages->npages); in iopt_pages_add_npinned()
176 static void iopt_pages_sub_npinned(struct iopt_pages *pages, size_t npages) in iopt_pages_sub_npinned() argument
180 rc = check_sub_overflow(pages->npinned, npages, &pages->npinned); in iopt_pages_sub_npinned()
182 WARN_ON(rc || pages->npinned > pages->npages); in iopt_pages_sub_npinned()
185 static void iopt_pages_err_unpin(struct iopt_pages *pages, in iopt_pages_err_unpin() argument
193 iopt_pages_sub_npinned(pages, npages); in iopt_pages_err_unpin()
199 * covers a portion of the first and last pages in the range.
[all …]
H A Dio_pagetable.c26 struct iopt_pages *pages; member
45 if (!iter->area->pages) { in iopt_area_contig_init()
68 !iter->area->pages) { in iopt_area_contig_next()
207 * The area takes a slice of the pages from start_bytes to start_byte + length
210 struct iopt_pages *pages, unsigned long iova, in iopt_insert_area() argument
216 if ((iommu_prot & IOMMU_WRITE) && !pages->writable) in iopt_insert_area()
232 if (WARN_ON(area->pages_node.last >= pages->npages)) in iopt_insert_area()
236 * The area is inserted with a NULL pages indicating it is not fully in iopt_insert_area()
282 switch (elm->pages->type) { in iopt_alloc_area_pages()
284 start = elm->start_byte + (uintptr_t)elm->pages->uptr; in iopt_alloc_area_pages()
[all …]
/linux/mm/
H A Dpercpu-vm.c23 * pcpu_get_pages - get temp pages array
30 * Pointer to temp pages array on success.
34 static struct page **pages; in pcpu_get_pages() local
35 size_t pages_size = pcpu_nr_units * pcpu_unit_pages * sizeof(pages[0]); in pcpu_get_pages()
39 if (!pages) in pcpu_get_pages()
40 pages = pcpu_mem_zalloc(pages_size, GFP_KERNEL); in pcpu_get_pages()
41 return pages; in pcpu_get_pages()
45 * pcpu_free_pages - free pages which were allocated for @chunk
46 * @chunk: chunk pages were allocated for
47 * @pages: array of pages to be freed, indexed by pcpu_page_idx()
[all …]
H A Dballoon_compaction.c
H A Dgup_test.c11 static void put_back_pages(unsigned int cmd, struct page **pages, in put_back_pages()
20 put_page(pages[i]); in put_back_pages()
26 unpin_user_pages(pages, nr_pages); in put_back_pages()
30 unpin_user_pages(pages, nr_pages); in put_back_pages()
33 put_page(pages[i]); in put_back_pages()
40 static void verify_dma_pinned(unsigned int cmd, struct page **pages, in verify_dma_pinned()
51 folio = page_folio(pages[i]); in verify_dma_pinned()
54 "pages[%lu] is NOT dma-pinned\n", i)) { in verify_dma_pinned()
60 "pages[%lu] is NOT pinnable but pinned\n", in verify_dma_pinned()
70 static void dump_pages_test(struct gup_test *gup, struct page **pages, in dump_pages_test()
10 put_back_pages(unsigned int cmd,struct page ** pages,unsigned long nr_pages,unsigned int gup_test_flags) put_back_pages() argument
39 verify_dma_pinned(unsigned int cmd,struct page ** pages,unsigned long nr_pages) verify_dma_pinned() argument
69 dump_pages_test(struct gup_test * gup,struct page ** pages,unsigned long nr_pages) dump_pages_test() argument
106 struct page **pages; __gup_test_ioctl() local
227 struct page **pages; pin_longterm_test_start() local
[all...]
H A Dgup.c31 static inline void sanity_check_pinned_pages(struct page **pages, in sanity_check_pinned_pages() argument
38 * We only pin anonymous pages if they are exclusive. Once pinned, we in sanity_check_pinned_pages()
42 * We'd like to verify that our pinned anonymous pages are still mapped in sanity_check_pinned_pages()
49 for (; npages; npages--, pages++) { in sanity_check_pinned_pages()
50 struct page *page = *pages; in sanity_check_pinned_pages()
180 * Pages that were pinned via pin_user_pages*() must be released via either
182 * that such pages can be separately tracked and uniquely handled. In
263 * unpin_user_pages_dirty_lock() - release and optionally dirty gup-pinned pages
264 * @pages: array of pages t
284 unpin_user_pages_dirty_lock(struct page ** pages,unsigned long npages,bool make_dirty) unpin_user_pages_dirty_lock() argument
375 gup_fast_unpin_user_pages(struct page ** pages,unsigned long npages) gup_fast_unpin_user_pages() argument
401 unpin_user_pages(struct page ** pages,unsigned long npages) unpin_user_pages() argument
1356 __get_user_pages(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages,int * locked) __get_user_pages() argument
1652 __get_user_pages_locked(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,struct page ** pages,int * locked,unsigned int flags) __get_user_pages_locked() argument
1980 __get_user_pages_locked(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,struct page ** pages,int * locked,unsigned int foll_flags) __get_user_pages_locked() argument
2209 struct page **pages; global() member
2437 check_and_migrate_movable_pages(unsigned long nr_pages,struct page ** pages) check_and_migrate_movable_pages() argument
2449 check_and_migrate_movable_pages(unsigned long nr_pages,struct page ** pages) check_and_migrate_movable_pages() argument
2468 __gup_longterm_locked(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,struct page ** pages,int * locked,unsigned int gup_flags) __gup_longterm_locked() argument
2500 is_valid_gup_args(struct page ** pages,int * locked,unsigned int * gup_flags_p,unsigned int to_set) is_valid_gup_args() argument
2605 get_user_pages_remote(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages,int * locked) get_user_pages_remote() argument
2623 get_user_pages_remote(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages,int * locked) get_user_pages_remote() argument
2645 get_user_pages(unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages) get_user_pages() argument
2673 get_user_pages_unlocked(unsigned long start,unsigned long nr_pages,struct page ** pages,unsigned int gup_flags) get_user_pages_unlocked() argument
2810 gup_fast_undo_dev_pagemap(int * nr,int nr_start,unsigned int flags,struct page ** pages) gup_fast_undo_dev_pagemap() argument
2841 gup_fast_pte_range(pmd_t pmd,pmd_t * pmdp,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pte_range() argument
2928 gup_fast_pte_range(pmd_t pmd,pmd_t * pmdp,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pte_range() argument
2936 gup_fast_pmd_leaf(pmd_t orig,pmd_t * pmdp,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pmd_leaf() argument
2979 gup_fast_pud_leaf(pud_t orig,pud_t * pudp,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pud_leaf() argument
3023 gup_fast_pmd_range(pud_t * pudp,pud_t pud,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pmd_range() argument
3055 gup_fast_pud_range(p4d_t * p4dp,p4d_t p4d,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pud_range() argument
3081 gup_fast_p4d_range(pgd_t * pgdp,pgd_t pgd,unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_p4d_range() argument
3104 gup_fast_pgd_range(unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pgd_range() argument
3124 gup_fast_pgd_range(unsigned long addr,unsigned long end,unsigned int flags,struct page ** pages,int * nr) gup_fast_pgd_range() argument
3141 gup_fast(unsigned long start,unsigned long end,unsigned int gup_flags,struct page ** pages) gup_fast() argument
3187 gup_fast_fallback(unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages) gup_fast_fallback() argument
3254 get_user_pages_fast_only(unsigned long start,int nr_pages,unsigned int gup_flags,struct page ** pages) get_user_pages_fast_only() argument
3288 get_user_pages_fast(unsigned long start,int nr_pages,unsigned int gup_flags,struct page ** pages) get_user_pages_fast() argument
3322 pin_user_pages_fast(unsigned long start,int nr_pages,unsigned int gup_flags,struct page ** pages) pin_user_pages_fast() argument
3355 pin_user_pages_remote(struct mm_struct * mm,unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages,int * locked) pin_user_pages_remote() argument
3388 pin_user_pages(unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page ** pages) pin_user_pages() argument
3408 pin_user_pages_unlocked(unsigned long start,unsigned long nr_pages,struct page ** pages,unsigned int gup_flags) pin_user_pages_unlocked() argument
[all...]
/linux/net/ceph/
H A Dpagevec.c13 void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty) in ceph_put_page_vector() argument
19 set_page_dirty_lock(pages[i]); in ceph_put_page_vector()
20 put_page(pages[i]); in ceph_put_page_vector()
22 kvfree(pages); in ceph_put_page_vector()
26 void ceph_release_page_vector(struct page **pages, int num_pages) in ceph_release_page_vector() argument
31 __free_pages(pages[i], 0); in ceph_release_page_vector()
32 kfree(pages); in ceph_release_page_vector()
37 * allocate a vector new pages
41 struct page **pages; in ceph_alloc_page_vector() local
44 pages = kmalloc_objs(*pages, num_pages, flags); in ceph_alloc_page_vector()
[all …]
/linux/Documentation/mm/
H A Dunevictable-lru.rst34 main memory will have over 32 million 4k pages in a single node. When a large
35 fraction of these pages are not evictable for any reason [see below], vmscan
37 of pages that are evictable. This can result in a situation where all CPUs are
41 The unevictable list addresses the following classes of unevictable pages:
51 The infrastructure may also be able to handle other conditions that make pages
104 lru_list enum element). The memory controller tracks the movement of pages to
108 not attempt to reclaim pages on the unevictable list. This has a couple of
111 (1) Because the pages are "hidden" from reclaim on the unevictable list, the
112 reclaim process can be more efficient, dealing only with pages that have a
115 (2) On the other hand, if too many of the pages charged to the control group
[all …]
/linux/Documentation/admin-guide/mm/
H A Dksm.rst18 which have been registered with it, looking for pages of identical
21 content). The amount of pages that KSM daemon scans in a single pass
25 KSM only merges anonymous (private) pages, never pagecache (file) pages.
26 KSM's merged pages were originally locked into kernel memory, but can now
27 be swapped out just like other user pages (but sharing is broken when they
45 to cancel that advice and restore unshared pages: whereupon KSM
55 cannot contain any pages which KSM could actually merge; even if
80 how many pages to scan before ksmd goes to sleep
95 specifies if pages from different NUMA nodes can be merged.
96 When set to 0, ksm merges only pages which physically reside
[all …]
H A Dzswap.rst8 Zswap is a lightweight compressed cache for swap pages. It takes pages that are
26 Zswap evicts pages from compressed cache on an LRU basis to the backing swap
40 When zswap is disabled at runtime it will stop storing pages that are
42 back into memory all of the pages stored in the compressed pool. The
43 pages stored in zswap will remain in the compressed pool until they are
45 pages out of the compressed pool, a swapoff on the swap device(s) will
46 fault back into memory all swapped out pages, including those in the
52 Zswap receives pages for compression from the swap subsystem and is able to
53 evict pages from its own compressed pool on an LRU basis and write them back to
60 pages are freed. The pool is not preallocated.
[all …]
H A Dconcepts.rst41 The physical system memory is divided into page frames, or pages. The
48 pages. These mappings are described by page tables that allow
53 addresses of actual pages used by the software. The tables at higher
54 levels contain physical addresses of the pages belonging to the lower
64 Huge Pages
75 Many modern CPU architectures allow mapping of the memory pages
77 it is possible to map 2M and even 1G pages using entries in the second
78 and the third level page tables. In Linux such pages are called
79 `huge`. Usage of huge pages significantly reduces pressure on TLB,
83 memory with the huge pages. The first one is `HugeTLB filesystem`, or
[all …]
H A Dtranshuge.rst11 using huge pages for the backing of virtual memory with huge pages
51 increments of a power-of-2 number of pages. mTHP can back anonymous
66 collapses sequences of basic pages into PMD-sized huge pages.
123 Transparent Huge Pages globally. This is because ``madvise(...,
125 PMD-sized huge pages unconditionally.
155 pages unless hugepages are immediately available. Clearly if we spend CPU
157 use hugepages later instead of regular pages. This isn't always
171 allocation failure and directly reclaim pages and compact
178 to reclaim pages and wake kcompactd to compact memory so that
180 of khugepaged to then install the THP pages later.
[all …]
H A Didle_page_tracking.rst8 The idle page tracking feature allows to track which memory pages are being
37 Only accesses to user memory pages are tracked. These are pages mapped to a
38 process address space, page cache and buffer pages, swap cache pages. For other
39 page types (e.g. SLAB pages) an attempt to mark a page idle is silently ignored,
40 and hence such pages are never reported idle.
42 For huge pages the idle flag is set only on the head page, so one has to read
43 ``/proc/kpageflags`` in order to correctly count idle huge pages.
50 That said, in order to estimate the amount of pages that are not used by a
53 1. Mark all the workload's pages as idle by setting corresponding bits in
54 ``/sys/kernel/mm/page_idle/bitmap``. The pages can be found by reading
[all …]
H A Dpagemap.rst37 swap. Unmapped pages return a null PFN. This allows determining
38 precisely which pages are mapped (or in swap) and comparing mapped
39 pages between processes.
44 for pages part of a larger allocation (e.g., THP) can differ: bit 56 is set
45 if all pages part of the corresponding large allocation are *certainly*
117 An order N block has 2^N physically contiguous pages, with the BUDDY flag
118 set for all pages.
121 A compound page with order N consists of 2^N physically contiguous pages.
124 pages are hugeTLB pages (Documentation/admin-guide/mm/hugetlbpage.rst),
126 However in this interface, only huge/giga pages are made visible
[all …]
/linux/io_uring/
H A Dmemmap.c18 static bool io_mem_alloc_compound(struct page **pages, int nr_pages, in io_mem_alloc_compound() argument
35 pages[i] = page + i; in io_mem_alloc_compound()
43 struct page **pages; in io_pin_pages() local
59 pages = kvmalloc_objs(struct page *, nr_pages, GFP_KERNEL_ACCOUNT); in io_pin_pages()
60 if (!pages) in io_pin_pages()
64 pages); in io_pin_pages()
65 /* success, mapped all pages */ in io_pin_pages()
68 return pages; in io_pin_pages()
73 /* if we did partial map, release any pages we did get */ in io_pin_pages()
75 unpin_user_pages(pages, ret); in io_pin_pages()
[all …]
/linux/drivers/gpu/drm/i915/gem/selftests/
H A Dhuge_gem_object.c12 struct sg_table *pages) in huge_free_pages() argument
18 for_each_sgt_page(page, sgt_iter, pages) { in huge_free_pages()
24 sg_free_table(pages); in huge_free_pages()
25 kfree(pages); in huge_free_pages()
34 struct sg_table *pages; in huge_get_pages() local
41 pages = kmalloc_obj(*pages, GFP); in huge_get_pages()
42 if (!pages) in huge_get_pages()
45 if (sg_alloc_table(pages, npages, GFP)) { in huge_get_pages()
46 kfree(pages); in huge_get_pages()
50 sg = pages->sgl; in huge_get_pages()
[all …]
/linux/Documentation/admin-guide/sysctl/
H A Dvm.rst90 admin_reserve_kbytes defaults to min(3% of free pages, 8MB)
119 huge pages although processes will also directly compact memory as required.
129 Note that compaction has a non-trivial system-wide impact as pages
148 allowed to examine the unevictable lru (mlocked pages) for pages to compact.
151 compaction from moving pages that are unevictable. Default value is 1.
160 and maintain the ability to produce huge pages / higher-order pages.
181 Contains, as a percentage of total available memory that contains free pages
182 and reclaimable pages, the number of pages at which the background kernel
199 Note: the minimum value allowed for dirty_bytes is two pages (in bytes); any
216 Contains, as a percentage of total available memory that contains free pages
[all …]
/linux/drivers/gpu/drm/xen/
H A Dxen_drm_front_gem.c31 struct page **pages; member
50 xen_obj->pages = kvmalloc_objs(struct page *, xen_obj->num_pages); in gem_alloc_pages_array()
51 return !xen_obj->pages ? -ENOMEM : 0; in gem_alloc_pages_array()
56 kvfree(xen_obj->pages); in gem_free_pages_array()
57 xen_obj->pages = NULL; in gem_free_pages_array()
88 * touch the memory. Insert pages now, so both CPU and GPU are happy. in xen_drm_front_gem_object_mmap()
90 * FIXME: as we insert all the pages now then no .fault handler must in xen_drm_front_gem_object_mmap()
93 ret = vm_map_pages(vma, xen_obj->pages, xen_obj->num_pages); in xen_drm_front_gem_object_mmap()
95 DRM_ERROR("Failed to map pages into vma: %d\n", ret); in xen_drm_front_gem_object_mmap()
149 * only allocate array of pointers to pages in gem_create()
[all …]
/linux/drivers/media/pci/intel/ipu6/
H A Dipu6-dma.c23 struct page **pages; member
49 * Ensure that the allocated pages are zeroed, and that any data in __clear_buffer()
62 struct page **pages; in __alloc_buffer() local
65 pages = kvzalloc(array_size, GFP_KERNEL); in __alloc_buffer()
66 if (!pages) in __alloc_buffer()
74 pages[i] = alloc_pages(gfp, order); in __alloc_buffer()
75 while (!pages[i] && order) in __alloc_buffer()
76 pages[i] = alloc_pages(gfp, --order); in __alloc_buffer()
77 if (!pages[i]) in __alloc_buffer()
81 split_page(pages[i], order); in __alloc_buffer()
[all …]
/linux/fs/isofs/
H A Dcompress.c37 * to one zisofs block. Store the data in the @pages array with @pcount
42 struct page **pages, unsigned poffset, in zisofs_uncompress_block() argument
68 if (!pages[i]) in zisofs_uncompress_block()
70 memzero_page(pages[i], 0, PAGE_SIZE); in zisofs_uncompress_block()
71 SetPageUptodate(pages[i]); in zisofs_uncompress_block()
121 if (pages[curpage]) { in zisofs_uncompress_block()
122 stream.next_out = kmap_local_page(pages[curpage]) in zisofs_uncompress_block()
174 if (pages[curpage]) { in zisofs_uncompress_block()
175 flush_dcache_page(pages[curpage]); in zisofs_uncompress_block()
176 SetPageUptodate(pages[curpage]); in zisofs_uncompress_block()
[all …]
/linux/drivers/xen/
H A Dxlate_mmu.c47 /* Break down the pages in 4KB chunk and call fn for each gfn */
48 static void xen_for_each_gfn(struct page **pages, unsigned nr_gfn, in xen_for_each_gfn() argument
57 page = pages[i / XEN_PFN_PER_PAGE]; in xen_for_each_gfn()
71 struct page **pages; member
99 struct page *page = info->pages[info->index++]; in remap_pte_fn()
148 struct page **pages) in xen_xlate_remap_gfn_array() argument
163 data.pages = pages; in xen_xlate_remap_gfn_array()
184 int nr, struct page **pages) in xen_xlate_unmap_gfn_range() argument
186 xen_for_each_gfn(pages, nr, unmap_gfn, NULL); in xen_xlate_unmap_gfn_range()
205 * xen_xlate_map_ballooned_pages - map a new set of ballooned pages
[all …]
/linux/drivers/staging/media/ipu7/
H A Dipu7-dma.c23 struct page **pages; member
49 * Ensure that the allocated pages are zeroed, and that any data in __clear_buffer()
62 struct page **pages; in __alloc_buffer() local
65 pages = kvzalloc(array_size, GFP_KERNEL); in __alloc_buffer()
66 if (!pages) in __alloc_buffer()
74 pages[i] = alloc_pages(gfp, order); in __alloc_buffer()
75 while (!pages[i] && order) in __alloc_buffer()
76 pages[i] = alloc_pages(gfp, --order); in __alloc_buffer()
77 if (!pages[i]) in __alloc_buffer()
81 split_page(pages[i], order); in __alloc_buffer()
[all …]
/linux/drivers/misc/
H A Dvmw_balloon.c8 * acts like a "balloon" that can be inflated to reclaim physical pages by
10 * freeing up the underlying machine pages so they can be allocated to
51 /* Maximum number of refused pages we accumulate during inflation cycle */
147 * ballooned pages (up to 512).
149 * pages that are about to be deflated from the
152 * for 2MB pages.
155 * pages.
240 struct list_head pages; member
315 * @batch_max_pages: maximum pages that can be locked/unlocked.
317 * Indicates the number of pages that the hypervisor can lock or unlock
[all …]
/linux/drivers/gpu/drm/i915/gem/
H A Di915_gem_pages.c24 struct sg_table *pages) in __i915_gem_object_set_pages() argument
36 /* Make the pages coherent with the GPU (flushing any swapin). */ in __i915_gem_object_set_pages()
41 drm_clflush_sg(pages); in __i915_gem_object_set_pages()
45 obj->mm.get_page.sg_pos = pages->sgl; in __i915_gem_object_set_pages()
47 obj->mm.get_dma_page.sg_pos = pages->sgl; in __i915_gem_object_set_pages()
50 obj->mm.pages = pages; in __i915_gem_object_set_pages()
52 obj->mm.page_sizes.phys = i915_sg_dma_sizes(pages->sgl); in __i915_gem_object_set_pages()
60 * 64K or 4K pages, although in practice this will depend on a number of in __i915_gem_object_set_pages()
121 /* Ensure that the associated pages are gathered from the backing storage
124 * i915_gem_object_unpin_pages() - once the pages are no longer referenced
[all …]
/linux/include/drm/ttm/
H A Dttm_tt.h44 * struct ttm_tt - This is a structure holding the pages, caching- and aperture
49 /** @pages: Array of pages backing the data. */
50 struct page **pages; member
56 * TTM_TT_FLAG_SWAPPED: Set by TTM when the pages have been unpopulated
58 * pages back in, and unset the flag. Drivers should in general never
61 * TTM_TT_FLAG_ZERO_ALLOC: Set if the pages will be zeroed on
64 * TTM_TT_FLAG_EXTERNAL: Set if the underlying pages were allocated
66 * TTM swapping out such pages. Also important is to prevent TTM from
67 * ever directly mapping these pages.
74 * still valid to use TTM to map the pages directly. This is useful when
[all …]

12345678910>>...107