| /linux/include/linux/ |
| H A D | hugetlb.h | 45 struct hstate *hstate; member 119 struct hugepage_subpool *hugepage_new_subpool(struct hstate *h, long max_hpages, 168 bool hugetlbfs_pagecache_present(struct hstate *h, 242 unsigned long hugetlb_mask_last_page(struct hstate *h); 502 struct hstate *hstate; member 533 static inline struct hstate *hstate_inode(struct inode *i) in hstate_inode() 535 return HUGETLBFS_SB(i->i_sb)->hstate; in hstate_inode() 547 static inline struct hstate *hstate_inode(struct inode *i) in hstate_inode() 661 struct hstate { struct 688 struct hstate *hstate; argument [all …]
|
| /linux/arch/powerpc/mm/book3s64/ |
| H A D | radix_hugetlbpage.c | 13 struct hstate *hstate = hstate_file(vma->vm_file); in radix__flush_hugetlb_page() local 15 psize = hstate_get_psize(hstate); in radix__flush_hugetlb_page() 22 struct hstate *hstate = hstate_file(vma->vm_file); in radix__local_flush_hugetlb_page() local 24 psize = hstate_get_psize(hstate); in radix__local_flush_hugetlb_page() 32 struct hstate *hstate = hstate_file(vma->vm_file); in radix__flush_hugetlb_tlb_range() local 34 psize = hstate_get_psize(hstate); in radix__flush_hugetlb_tlb_range()
|
| /linux/mm/ |
| H A D | hugetlb_sysfs.c | 26 static struct hstate *kobj_to_node_hstate(struct kobject *kobj, int *nidp); 28 static struct hstate *kobj_to_hstate(struct kobject *kobj, int *nidp) in kobj_to_hstate() 45 struct hstate *h; in nr_hugepages_show_common() 62 struct hstate *h; in nr_hugepages_store_common() 113 struct hstate *h = kobj_to_hstate(kobj, NULL); in nr_overcommit_hugepages_show() 122 struct hstate *h = kobj_to_hstate(kobj, NULL); in nr_overcommit_hugepages_store() 142 struct hstate *h; in free_hugepages_show() 159 struct hstate *h = kobj_to_hstate(kobj, NULL); in resv_hugepages_show() 167 struct hstate *h; in surplus_hugepages_show() 187 struct hstate *h; in demote_store() [all …]
|
| H A D | hugetlb_internal.h | 19 static inline bool hstate_is_gigantic_no_runtime(struct hstate *h) in hstate_is_gigantic_no_runtime() 71 static inline int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed) in hstate_next_node_to_free() 95 extern void remove_hugetlb_folio(struct hstate *h, struct folio *folio, 97 extern void add_hugetlb_folio(struct hstate *h, struct folio *folio, 100 extern void prep_and_add_allocated_folios(struct hstate *h, 102 extern long demote_pool_huge_page(struct hstate *src, 106 struct hstate *h, int nid,
|
| H A D | hugetlb.c | 57 struct hstate hstates[HUGE_MAX_HSTATE]; 82 static struct hstate * __initdata parsed_hstate; 117 static int hugetlb_acct_memory(struct hstate *h, long delta); 156 hugetlb_acct_memory(spool->hstate, in unlock_or_release_subpool() 162 struct hugepage_subpool *hugepage_new_subpool(struct hstate *h, long max_hpages, in hugepage_new_subpool() 174 spool->hstate = h; in hugepage_new_subpool() 499 struct hstate *h, in record_hugetlb_cgroup_uncharge_info() 581 long to, struct hstate *h, struct hugetlb_cgroup *cg, in hugetlb_resv_map_add() 607 struct hstate *h, long *regions_needed) in add_reservation_in_range() 739 long in_regions_needed, struct hstate *h, in region_add() [all …]
|
| H A D | hugetlb_cma.h | 9 struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid, 15 bool hugetlb_early_cma(struct hstate *h); 28 struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid, in hugetlb_cma_alloc_bootmem() 52 static inline bool hugetlb_early_cma(struct hstate *h) in hugetlb_early_cma()
|
| H A D | hugetlb_vmemmap.c | 454 static int __hugetlb_vmemmap_restore_folio(const struct hstate *h, in __hugetlb_vmemmap_restore_folio() 500 int hugetlb_vmemmap_restore_folio(const struct hstate *h, struct folio *folio) in hugetlb_vmemmap_restore_folio() 518 long hugetlb_vmemmap_restore_folios(const struct hstate *h, in hugetlb_vmemmap_restore_folios() 550 static bool vmemmap_should_optimize_folio(const struct hstate *h, struct folio *folio) in vmemmap_should_optimize_folio() 564 static int __hugetlb_vmemmap_optimize_folio(const struct hstate *h, in __hugetlb_vmemmap_optimize_folio() 626 void hugetlb_vmemmap_optimize_folio(const struct hstate *h, struct folio *folio) in hugetlb_vmemmap_optimize_folio() 634 static int hugetlb_vmemmap_split_folio(const struct hstate *h, struct folio *folio) in hugetlb_vmemmap_split_folio() 653 static void __hugetlb_vmemmap_optimize_folios(struct hstate *h, in __hugetlb_vmemmap_optimize_folios() 737 void hugetlb_vmemmap_optimize_folios(struct hstate *h, struct list_head *folio_list) in hugetlb_vmemmap_optimize_folios() 742 void hugetlb_vmemmap_optimize_bootmem_folios(struct hstate *h, struct list_head *folio_list) in hugetlb_vmemmap_optimize_bootmem_folios() [all …]
|
| H A D | page_vma_mapped.c | 196 struct hstate *hstate = hstate_vma(vma); in page_vma_mapped_walk() local 197 unsigned long size = huge_page_size(hstate); in page_vma_mapped_walk() 210 pvmw->ptl = huge_pte_lock(hstate, mm, pvmw->pte); in page_vma_mapped_walk() 211 if (!check_pte(pvmw, pages_per_huge_page(hstate))) in page_vma_mapped_walk()
|
| H A D | hugetlb_sysctl.c | 32 struct hstate *h = &default_hstate; in hugetlb_sysctl_handler_common() 71 struct hstate *h = &default_hstate; in hugetlb_overcommit_handler()
|
| H A D | hugetlb_cma.c | 56 hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid, bool node_exact) in hugetlb_cma_alloc_bootmem() 271 bool __init hugetlb_early_cma(struct hstate *h) in hugetlb_early_cma()
|
| H A D | pagewalk.c | 312 static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr, in hugetlb_entry_end() 323 struct hstate *h = hstate_vma(vma); in walk_hugetlb_range()
|
| H A D | memfd.c | 82 struct hstate *h = hstate_file(memfd); in memfd_alloc_folio()
|
| /linux/Documentation/translations/zh_CN/mm/ |
| H A D | hugetlbfs_reserv.rst | 39 这是一个全局的(per-hstate)预留的巨页的计数。预留的巨页只对预留它们的任 240 有一个结构体hstate与每个巨页尺寸相关联。hstate跟踪所有指定大小的巨页。一个子池代表一 241 个hstate中的页面子集,它与一个已挂载的hugetlbfs文件系统相关 344 long vma_needs_reservation(struct hstate *h, 350 long vma_commit_reservation(struct hstate *h, 359 void vma_end_reservation(struct hstate *h, 366 long vma_add_reservation(struct hstate *h, 409 当git第一次被用来管理Linux代码时,每个节点的巨页列表就存在于hstate结构中。预留的概念是
|
| /linux/fs/hugetlbfs/ |
| H A D | inode.c | 53 struct hstate *hstate; member 111 struct hstate *h = hstate_file(file); in hugetlbfs_file_mmap_prepare() 198 struct hstate *h = hstate_file(file); in hugetlb_get_unmapped_area() 242 struct hstate *h = hstate_file(file); in hugetlbfs_read_iter() 399 static void hugetlb_unmap_file_folio(struct hstate *h, in hugetlb_unmap_file_folio() 518 static bool remove_inode_single_folio(struct hstate *h, struct inode *inode, in remove_inode_single_folio() 580 struct hstate *h = hstate_inode(inode); in remove_inode_hugepages() 642 struct hstate *h = hstate_inode(inode); in hugetlb_vmtruncate() 656 static void hugetlbfs_zero_partial_page(struct hstate *h, in hugetlbfs_zero_partial_page() 683 struct hstate *h = hstate_inode(inode); in hugetlbfs_punch_hole() [all …]
|
| /linux/arch/powerpc/mm/nohash/ |
| H A D | e500_hugetlbpage.c | 189 struct hstate *hstate = hstate_file(vma->vm_file); in flush_hugetlb_page() local 190 unsigned long tsize = huge_page_shift(hstate) - 10; in flush_hugetlb_page()
|
| /linux/kernel/events/ |
| H A D | uprobes.c | 735 static inline struct uprobe *hprobe_consume(struct hprobe *hprobe, enum hprobe_state *hstate) in hprobe_consume() argument 737 *hstate = xchg(&hprobe->state, HPROBE_CONSUMED); in hprobe_consume() 738 switch (*hstate) { in hprobe_consume() 746 WARN(1, "hprobe invalid state %d", *hstate); in hprobe_consume() 756 static void hprobe_finalize(struct hprobe *hprobe, enum hprobe_state hstate) in hprobe_finalize() argument 758 switch (hstate) { in hprobe_finalize() 769 WARN(1, "hprobe invalid state %d", hstate); in hprobe_finalize() 792 enum hprobe_state hstate; in hprobe_expire() local 804 hstate = READ_ONCE(hprobe->state); in hprobe_expire() 805 switch (hstate) { in hprobe_expire() [all …]
|
| /linux/arch/riscv/include/asm/ |
| H A D | hugetlb.h | 15 bool arch_hugetlb_migration_supported(struct hstate *h);
|
| /linux/arch/powerpc/include/asm/ |
| H A D | kvm_book3s_asm.h | 140 struct kvmppc_host_state hstate; member
|
| /linux/arch/arm64/include/asm/ |
| H A D | hugetlb.h | 19 extern bool arch_hugetlb_migration_supported(struct hstate *h);
|
| /linux/arch/riscv/mm/ |
| H A D | hugetlbpage.c | 128 unsigned long hugetlb_mask_last_page(struct hstate *h) in hugetlb_mask_last_page() 434 bool arch_hugetlb_migration_supported(struct hstate *h) in arch_hugetlb_migration_supported()
|
| /linux/Documentation/mm/ |
| H A D | hugetlbfs_reserv.rst | 34 This is a global (per-hstate) count of reserved huge pages. Reserved 301 There is a struct hstate associated with each huge page size. The hstate 303 of pages within a hstate that is associated with a mounted hugetlbfs 466 long vma_needs_reservation(struct hstate *h, 473 long vma_commit_reservation(struct hstate *h, 485 void vma_end_reservation(struct hstate *h, 494 long vma_add_reservation(struct hstate *h, 555 Per-node huge page lists existed in struct hstate when git was first used
|
| /linux/arch/arm64/mm/ |
| H A D | hugetlbpage.c | 69 bool arch_hugetlb_migration_supported(struct hstate *h) in arch_hugetlb_migration_supported() 323 unsigned long hugetlb_mask_last_page(struct hstate *h) in hugetlb_mask_last_page()
|
| /linux/mm/damon/ |
| H A D | vaddr.c | 365 struct hstate *h = hstate_vma(walk->vma); in damon_mkold_hugetlb_entry() 485 struct hstate *h = hstate_vma(walk->vma); in damon_young_hugetlb_entry()
|
| /linux/arch/powerpc/mm/ |
| H A D | pgtable.c | 278 struct hstate *h = hstate_vma(vma); in huge_ptep_set_access_flags()
|
| /linux/ipc/ |
| H A D | shm.c | 741 struct hstate *hs; in newseg() 943 struct hstate *h = hstate_file(shp->shm_file); in shm_add_rss_swap()
|