Home
last modified time | relevance | path

Searched refs:ptdesc (Results 1 – 20 of 20) sorted by relevance

/linux/arch/powerpc/mm/
H A Dpgtable-frag.c21 struct ptdesc *ptdesc; in pte_frag_destroy() local
23 ptdesc = virt_to_ptdesc(pte_frag); in pte_frag_destroy()
27 if (atomic_sub_and_test(PTE_FRAG_NR - count, &ptdesc->pt_frag_refcount)) { in pte_frag_destroy()
28 pagetable_dtor(ptdesc); in pte_frag_destroy()
29 pagetable_free(ptdesc); in pte_frag_destroy()
58 struct ptdesc *ptdesc; in __alloc_for_ptecache() local
61 ptdesc = pagetable_alloc(PGALLOC_GFP | __GFP_ACCOUNT, 0); in __alloc_for_ptecache()
62 if (!ptdesc) in __alloc_for_ptecache()
111 struct ptdesc *ptdesc; pte_free_now() local
120 struct ptdesc *ptdesc = virt_to_ptdesc(table); pte_fragment_free() local
[all...]
/linux/arch/m68k/include/asm/
H A Dmcf_pgalloc.h17 struct ptdesc *ptdesc = pagetable_alloc((GFP_DMA | __GFP_ZERO) & in pte_alloc_one_kernel() local
20 if (!ptdesc) in pte_alloc_one_kernel()
23 return ptdesc_address(ptdesc); in pte_alloc_one_kernel()
38 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); in __pte_free_tlb() local
40 pagetable_dtor(ptdesc); in __pte_free_tlb()
41 pagetable_free(ptdesc); in __pte_free_tlb()
46 struct ptdesc *ptdesc in pte_alloc_one() local
62 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); pte_free() local
82 struct ptdesc *ptdesc = pagetable_alloc((GFP_DMA | __GFP_NOWARN) & pgd_alloc() local
[all...]
/linux/arch/s390/mm/
H A Dpgalloc.c46 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL, CRST_ALLOC_ORDER); in crst_table_alloc() local
49 if (!ptdesc) in crst_table_alloc()
51 table = ptdesc_to_virt(ptdesc); in crst_table_alloc()
143 struct ptdesc *page_table_alloc_pgste(struct mm_struct *mm) in page_table_alloc_pgste()
145 struct ptdesc *ptdesc; in page_table_alloc_pgste() local
148 ptdesc = pagetable_alloc(GFP_KERNEL, 0); in page_table_alloc_pgste()
149 if (ptdesc) { in page_table_alloc_pgste()
150 table = (u64 *)ptdesc_to_virt(ptdesc); in page_table_alloc_pgste()
155 return ptdesc; in page_table_alloc_pgste()
158 void page_table_free_pgste(struct ptdesc *ptdesc) in page_table_free_pgste() argument
[all …]
H A Dgmap.c1240 struct ptdesc *ptdesc; in gmap_unshadow_pgt() local
1253 ptdesc = page_ptdesc(phys_to_page(pgt)); in gmap_unshadow_pgt()
1254 page_table_free_pgste(ptdesc); in gmap_unshadow_pgt()
1268 struct ptdesc *ptdesc; in __gmap_unshadow_sgt() local
1280 ptdesc = page_ptdesc(phys_to_page(pgt)); in __gmap_unshadow_sgt()
1281 page_table_free_pgste(ptdesc); in __gmap_unshadow_sgt()
1736 static void gmap_pgste_set_pgt_addr(struct ptdesc *ptdesc, unsigned long pgt_addr) in gmap_pgste_set_pgt_addr() argument
1738 unsigned long *pgstes = page_to_virt(ptdesc_page(ptdesc)); in gmap_pgste_set_pgt_addr()
1771 struct ptdesc *ptdesc; in gmap_shadow_pgt() local
1777 ptdesc = page_table_alloc_pgste(sg->mm); in gmap_shadow_pgt()
[all …]
/linux/arch/arm64/include/asm/
H A Dtlb.h78 struct ptdesc *ptdesc = page_ptdesc(pte); in tlb_flush()
80 tlb_remove_ptdesc(tlb, ptdesc); in __pte_free_tlb()
87 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); in __pte_free_tlb()
89 tlb_remove_ptdesc(tlb, ptdesc);
97 struct ptdesc *ptdesc = virt_to_ptdesc(pudp); in __pmd_free_tlb()
102 tlb_remove_ptdesc(tlb, ptdesc); in __pud_free_tlb()
110 struct ptdesc *ptdes in __pud_free_tlb()
83 struct ptdesc *ptdesc = page_ptdesc(pte); __pte_free_tlb() local
93 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); __pmd_free_tlb() local
104 struct ptdesc *ptdesc = virt_to_ptdesc(pudp); __pud_free_tlb() local
[all...]
/linux/arch/mips/include/asm/
H A Dpgalloc.h62 struct ptdesc *ptdesc;
64 ptdesc = pagetable_alloc(GFP_KERNEL_ACCOUNT, PMD_TABLE_ORDER);
65 if (!ptdesc) in pmd_alloc_one()
68 if (!pagetable_pmd_ctor(ptdesc)) { in pmd_alloc_one() local
69 pagetable_free(ptdesc); in pmd_alloc_one()
73 pmd = ptdesc_address(ptdesc); in pmd_alloc_one()
87 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM,
90 if (!ptdesc) in pud_alloc_one()
93 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, pud_alloc_one() local
[all...]
/linux/arch/loongarch/include/asm/
H A Dpgalloc.h69 struct ptdesc *ptdesc; in pmd_alloc_one() local
71 ptdesc = pagetable_alloc(GFP_KERNEL_ACCOUNT, 0); in pmd_alloc_one()
72 if (!ptdesc) in pmd_alloc_one()
75 if (!pagetable_pmd_ctor(ptdesc)) { in pmd_alloc_one()
76 pagetable_free(ptdesc); in pmd_alloc_one()
80 pmd = ptdesc_address(ptdesc); in pmd_alloc_one()
94 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); in pud_alloc_one() local
96 if (!ptdesc) in pud_alloc_one()
[all...]
/linux/arch/arm/include/asm/
H A Dtlb.h35 struct ptdesc *ptdesc = page_ptdesc(pte); in __tlb_remove_table()
46 tlb_remove_ptdesc(tlb, ptdesc); in __pte_free_tlb()
53 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); in __pte_free_tlb()
55 tlb_remove_ptdesc(tlb, ptdesc); in __pte_free_tlb()
42 struct ptdesc *ptdesc = page_ptdesc(pte); __pte_free_tlb() local
62 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); __pmd_free_tlb() local
/linux/arch/x86/mm/
H A Dpgtable.c26 struct ptdesc *ptdesc = (struct ptdesc *)table; in paravirt_tlb_remove_table()
28 pagetable_dtor(ptdesc);
29 tlb_remove_page(tlb, ptdesc_page(ptdesc));
103 struct ptdesc *ptdesc = virt_to_ptdesc(pgd); in pgd_list_del()
105 list_add(&ptdesc->pt_list, &pgd_list); in pgd_list_del() local
110 struct ptdesc *ptdesc
63 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); ___pmd_free_tlb() local
79 struct ptdesc *ptdesc = virt_to_ptdesc(pud); ___pud_free_tlb() local
98 struct ptdesc *ptdesc = virt_to_ptdesc(pgd); pgd_list_add() local
219 struct ptdesc *ptdesc; free_pmds() local
243 struct ptdesc *ptdesc = pagetable_alloc(gfp, 0); preallocate_pmds() local
[all...]
/linux/include/linux/
H A Dmm_types.h460 struct ptdesc { struct
498 static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt)) argument
511 static_assert(sizeof(struct ptdesc) <= sizeof(struct page));
514 const struct ptdesc *: (const struct page *)(pt), \
515 struct ptdesc *: (struct page *)(pt)))
518 const struct ptdesc *: (const struct folio *)(pt), \
519 struct ptdesc *: (struct folio *)(pt)))
522 const struct page *: (const struct ptdesc *)(p), \
523 struct page *: (struct ptdesc *)(p)))
526 static inline void ptdesc_pmd_pts_init(struct ptdesc *ptdesc) in ptdesc_pmd_pts_init() argument
[all …]
H A Dmm.h2868 static inline struct ptdesc *virt_to_ptdesc(const void *x) in virt_to_ptdesc()
2873 static inline void *ptdesc_to_virt(const struct ptdesc *pt) in ptdesc_to_virt()
2878 static inline void *ptdesc_address(const struct ptdesc *pt) in ptdesc_address()
2883 static inline bool pagetable_is_reserved(struct ptdesc *pt) in pagetable_is_reserved()
2898 static inline struct ptdesc *pagetable_alloc_noprof(gfp_t gfp, unsigned int order) in pagetable_alloc_noprof()
2913 static inline void pagetable_free(struct ptdesc *pt) in pagetable_free()
2923 bool ptlock_alloc(struct ptdesc *ptdesc);
2924 void ptlock_free(struct ptdesc *ptdesc);
2926 static inline spinlock_t *ptlock_ptr(struct ptdesc *ptdesc) in ptlock_ptr() argument
2928 return ptdesc->ptl; in ptlock_ptr()
[all …]
/linux/arch/mips/mm/
H A Dpgtable.c14 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, pgd_alloc() local
/linux/arch/powerpc/mm/book3s64/
H A Dmmu_context.c249 struct ptdesc *ptdesc; in pmd_frag_destroy() local
251 ptdesc = virt_to_ptdesc(pmd_frag); in pmd_frag_destroy()
255 if (atomic_sub_and_test(PMD_FRAG_NR - count, &ptdesc->pt_frag_refcount)) { in pmd_frag_destroy()
256 pagetable_dtor(ptdesc); in pmd_frag_destroy()
257 pagetable_free(ptdesc); in pmd_frag_destroy()
/linux/arch/loongarch/mm/
H A Dpgtable.c27 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); pgd_alloc() local
/linux/arch/s390/include/asm/
H A Dpgalloc.h26 struct ptdesc *page_table_alloc_pgste(struct mm_struct *mm);
28 void page_table_free_pgste(struct ptdesc *ptdesc);
/linux/arch/riscv/mm/
H A Dinit.c410 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); in alloc_pte_late() local
412 BUG_ON(!ptdesc || !pagetable_pte_ctor(ptdesc)); in alloc_pte_late()
413 return __pa((pte_t *)ptdesc_address(ptdesc)); in alloc_pte_late()
490 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); in alloc_pmd_late() local
492 BUG_ON(!ptdesc || !pagetable_pmd_ctor(ptdesc)); in alloc_pmd_late()
493 return __pa((pmd_t *)ptdesc_address(ptdesc)); in alloc_pmd_late()
1570 struct ptdesc *ptdesc = page_ptdesc(page); in free_pte_table() local
1580 pagetable_dtor(ptdesc); in free_pte_table()
1584 pagetable_free(ptdesc); in free_pte_table()
1591 struct ptdesc *ptdesc = page_ptdesc(page); in free_pmd_table() local
[all …]
/linux/arch/sparc/mm/
H A Dinit_64.c2898 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL | __GFP_ZERO, 0); in pte_alloc_one() local
2900 if (!ptdesc) in pte_alloc_one()
2902 if (!pagetable_pte_ctor(ptdesc)) { in pte_alloc_one()
2903 pagetable_free(ptdesc); in pte_alloc_one()
2906 return ptdesc_address(ptdesc); in pte_alloc_one()
2916 struct ptdesc *ptdesc = virt_to_ptdesc(pte); in __pte_free() local
2918 pagetable_dtor(ptdesc); in __pte_free()
2919 pagetable_free(ptdesc); in __pte_free()
[all...]
/linux/include/asm-generic/
H A Dtlb.h214 struct ptdesc *ptdesc = (struct ptdesc *)table;
216 pagetable_dtor_free(ptdesc);
513 static inline void tlb_remove_page_ptdesc(struct mmu_gather *tlb, struct ptdesc *pt) in tlb_change_page_size()
/linux/mm/
H A Dmemory.c7058 bool ptlock_alloc(struct ptdesc *ptdesc) in ptlock_alloc() argument
7065 ptdesc->ptl = ptl; in ptlock_alloc()
7069 void ptlock_free(struct ptdesc *ptdesc) in ptlock_free() argument
7071 if (ptdesc->ptl) in ptlock_free()
7072 kmem_cache_free(page_ptl_cachep, ptdesc->ptl); in ptlock_free()
/linux/Documentation/mm/
H A Dprocess_addrs.rst609 physical page metadata in the form of a :c:struct:`!struct ptdesc`, acquired by
621 the :c:struct:`!struct ptdesc` associated with the physical PTE page. The lock