/linux-master/include/linux/ |
H A D | memremap.h | 101 int (*memory_failure)(struct dev_pagemap *pgmap, unsigned long pfn, 143 static inline bool pgmap_has_memory_failure(struct dev_pagemap *pgmap) argument 145 return pgmap->ops && pgmap->ops->memory_failure; 148 static inline struct vmem_altmap *pgmap_altmap(struct dev_pagemap *pgmap) argument 150 if (pgmap->flags & PGMAP_ALTMAP_VALID) 151 return &pgmap->altmap; 155 static inline unsigned long pgmap_vmemmap_nr(struct dev_pagemap *pgmap) argument 157 return 1 << pgmap->vmemmap_shift; 164 page->pgmap 202 devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) argument 214 devm_memunmap_pages(struct device *dev, struct dev_pagemap *pgmap) argument 219 get_dev_pagemap(unsigned long pfn, struct dev_pagemap *pgmap) argument 225 pgmap_pfn_valid(struct dev_pagemap *pgmap, unsigned long pfn) argument 237 put_dev_pagemap(struct dev_pagemap *pgmap) argument [all...] |
H A D | huge_mm.h | 346 pmd_t *pmd, int flags, struct dev_pagemap **pgmap); 348 pud_t *pud, int flags, struct dev_pagemap **pgmap); 507 unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) 513 unsigned long addr, pud_t *pud, int flags, struct dev_pagemap **pgmap) 506 follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) argument 512 follow_devmap_pud(struct vm_area_struct *vma, unsigned long addr, pud_t *pud, int flags, struct dev_pagemap **pgmap) argument
|
H A D | memory_hotplug.h | 135 struct dev_pagemap *pgmap; member in struct:mhp_params 370 struct dev_pagemap *pgmap);
|
/linux-master/mm/ |
H A D | memremap.c | 46 static void devmap_managed_enable_put(struct dev_pagemap *pgmap) argument 48 if (pgmap->type == MEMORY_DEVICE_FS_DAX) 52 static void devmap_managed_enable_get(struct dev_pagemap *pgmap) argument 54 if (pgmap->type == MEMORY_DEVICE_FS_DAX) 58 static void devmap_managed_enable_get(struct dev_pagemap *pgmap) argument 61 static void devmap_managed_enable_put(struct dev_pagemap *pgmap) argument 73 static unsigned long pfn_first(struct dev_pagemap *pgmap, int range_id) argument 75 struct range *range = &pgmap->ranges[range_id]; 80 return pfn + vmem_altmap_offset(pgmap_altmap(pgmap)); 83 bool pgmap_pfn_valid(struct dev_pagemap *pgmap, unsigne argument 98 pfn_end(struct dev_pagemap *pgmap, int range_id) argument 105 pfn_len(struct dev_pagemap *pgmap, unsigned long range_id) argument 111 pageunmap_range(struct dev_pagemap *pgmap, int range_id) argument 137 memunmap_pages(struct dev_pagemap *pgmap) argument 165 struct dev_pagemap *pgmap = container_of(ref, struct dev_pagemap, ref); local 170 pagemap_range(struct dev_pagemap *pgmap, struct mhp_params *params, int range_id, int nid) argument 292 memremap_pages(struct dev_pagemap *pgmap, int nid) argument 403 devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) argument 420 devm_memunmap_pages(struct device *dev, struct dev_pagemap *pgmap) argument 434 get_dev_pagemap(unsigned long pfn, struct dev_pagemap *pgmap) argument [all...] |
H A D | sparse-vmemmap.c | 373 struct dev_pagemap *pgmap) 375 unsigned long nr_pages = pgmap_vmemmap_nr(pgmap); 377 PHYS_PFN(pgmap->ranges[pgmap->nr_range].start); 402 struct dev_pagemap *pgmap) 408 if (reuse_compound_section(start_pfn, pgmap)) { 421 size = min(end - start, pgmap_vmemmap_nr(pgmap) * sizeof(struct page)); 454 struct dev_pagemap *pgmap) 464 if (vmemmap_can_optimize(altmap, pgmap)) 465 r = vmemmap_populate_compound_pages(pfn, start, end, nid, pgmap); 372 reuse_compound_section(unsigned long start_pfn, struct dev_pagemap *pgmap) argument 399 vmemmap_populate_compound_pages(unsigned long start_pfn, unsigned long start, unsigned long end, int node, struct dev_pagemap *pgmap) argument 452 __populate_section_memmap(unsigned long pfn, unsigned long nr_pages, int nid, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument [all...] |
H A D | sparse.c | 430 struct dev_pagemap *pgmap) 633 struct dev_pagemap *pgmap) 635 return __populate_section_memmap(pfn, nr_pages, nid, altmap, pgmap); 705 struct dev_pagemap *pgmap) 830 struct dev_pagemap *pgmap) 862 memmap = populate_section_memmap(pfn, nr_pages, nid, altmap, pgmap); 877 * @pgmap: alternate compound page geometry for devmap mappings 892 struct dev_pagemap *pgmap) 903 memmap = section_activate(nid, start_pfn, nr_pages, altmap, pgmap); 428 __populate_section_memmap(unsigned long pfn, unsigned long nr_pages, int nid, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument 631 populate_section_memmap(unsigned long pfn, unsigned long nr_pages, int nid, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument 703 populate_section_memmap(unsigned long pfn, unsigned long nr_pages, int nid, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument 828 section_activate(int nid, unsigned long pfn, unsigned long nr_pages, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument 890 sparse_add_section(int nid, unsigned long start_pfn, unsigned long nr_pages, struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument
|
H A D | mm_init.c | 974 struct dev_pagemap *pgmap) 989 * ZONE_DEVICE pages union ->lru with a ->pgmap back pointer 993 page->pgmap = pgmap; 1015 if (pgmap->type == MEMORY_DEVICE_PRIVATE || 1016 pgmap->type == MEMORY_DEVICE_COHERENT) 1029 struct dev_pagemap *pgmap) 1031 if (!vmemmap_can_optimize(altmap, pgmap)) 1032 return pgmap_vmemmap_nr(pgmap); 1040 struct dev_pagemap *pgmap, 972 __init_zone_device_page(struct page *page, unsigned long pfn, unsigned long zone_idx, int nid, struct dev_pagemap *pgmap) argument 1028 compound_nr_pages(struct vmem_altmap *altmap, struct dev_pagemap *pgmap) argument 1037 memmap_init_compound(struct page *head, unsigned long head_pfn, unsigned long zone_idx, int nid, struct dev_pagemap *pgmap, unsigned long nr_pages) argument 1064 memmap_init_zone_device(struct zone *zone, unsigned long start_pfn, unsigned long nr_pages, struct dev_pagemap *pgmap) argument [all...] |
H A D | gup.c | 29 struct dev_pagemap *pgmap; member in struct:follow_page_context 581 struct dev_pagemap **pgmap) 618 * case since they are only valid while holding the pgmap 621 *pgmap = get_dev_pagemap(pte_pfn(pte), *pgmap); 622 if (*pgmap) 709 page = follow_devmap_pmd(vma, address, pmd, flags, &ctx->pgmap); 716 return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); 728 return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); 735 follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); 579 follow_page_pte(struct vm_area_struct *vma, unsigned long address, pmd_t *pmd, unsigned int flags, struct dev_pagemap **pgmap) argument 2583 struct dev_pagemap *pgmap = NULL; local 2699 struct dev_pagemap *pgmap = NULL; local [all...] |
H A D | memory-failure.c | 1746 struct dev_pagemap *pgmap) 1769 switch (pgmap->type) { 2145 struct dev_pagemap *pgmap) 2150 if (!pgmap_pfn_valid(pgmap, pfn)) 2157 if (pgmap_has_memory_failure(pgmap)) { 2158 rc = pgmap->ops->memory_failure(pgmap, pfn, 1, flags); 2167 rc = mf_generic_kill_procs(pfn, flags, pgmap); 2169 /* drop pgmap ref acquired in caller */ 2170 put_dev_pagemap(pgmap); 1745 mf_generic_kill_procs(unsigned long long pfn, int flags, struct dev_pagemap *pgmap) argument 2144 memory_failure_dev_pagemap(unsigned long pfn, int flags, struct dev_pagemap *pgmap) argument 2201 struct dev_pagemap *pgmap; local [all...] |
/linux-master/drivers/xen/ |
H A D | unpopulated-alloc.c | 36 struct dev_pagemap *pgmap; local 84 pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL); 85 if (!pgmap) { 90 pgmap->type = MEMORY_DEVICE_GENERIC; 91 pgmap->range = (struct range) { 95 pgmap->nr_range = 1; 96 pgmap->owner = res; 121 vaddr = memremap_pages(pgmap, NUMA_NO_NODE); 139 kfree(pgmap); [all...] |
/linux-master/drivers/dax/ |
H A D | pmem.c | 19 struct dev_pagemap pgmap = { }; local 33 rc = nvdimm_setup_pfn(nd_pfn, &pgmap); 53 range = pgmap.range; 64 .pgmap = &pgmap,
|
H A D | device.c | 85 if (dev_dax->pgmap->vmemmap_shift) 397 struct dev_pagemap *pgmap; local 406 "static pgmap / multi-range device conflict\n"); 410 pgmap = dev_dax->pgmap; 412 if (dev_dax->pgmap) { 418 pgmap = devm_kzalloc(dev, 419 struct_size(pgmap, ranges, dev_dax->nr_range - 1), 421 if (!pgmap) 424 pgmap [all...] |
H A D | dax-private.h | 59 * @pgmap - pgmap for memmap setup / lifetime (driver owned) 72 struct dev_pagemap *pgmap; member in struct:dev_dax
|
H A D | bus.h | 23 struct dev_pagemap *pgmap; member in struct:dev_dax_data
|
H A D | bus.c | 173 * (IORESOURCE_DAX_STATIC). On static dax devices, the @pgmap is pre-assigned 177 * cleared @pgmap field (see kill_dev_dax()). 435 * Dynamic dax region have the pgmap allocated via dev_kzalloc() 436 * and thus freed by devm. Clear the pgmap to not have stale pgmap 440 dev_dax->pgmap = NULL; 1441 kfree(dev_dax->pgmap); 1493 if (data->pgmap) { 1497 dev_dax->pgmap = kmemdup(data->pgmap, [all...] |
/linux-master/drivers/pci/ |
H A D | p2pdma.c | 33 struct dev_pagemap pgmap; member in struct:pci_p2pdma_pagemap 36 static struct pci_p2pdma_pagemap *to_p2p_pgmap(struct dev_pagemap *pgmap) argument 38 return container_of(pgmap, struct pci_p2pdma_pagemap, pgmap); 196 struct pci_p2pdma_pagemap *pgmap = to_p2p_pgmap(page->pgmap); local 199 rcu_dereference_protected(pgmap->provider->p2pdma, 1); 289 struct dev_pagemap *pgmap; local 316 pgmap = &p2p_pgmap->pgmap; 967 pci_p2pdma_map_type(struct dev_pagemap *pgmap, struct device *dev) argument [all...] |
/linux-master/tools/testing/nvdimm/test/ |
H A D | iomap.c | 99 struct dev_pagemap *pgmap = _pgmap; local 101 WARN_ON(!pgmap); 103 percpu_ref_kill(&pgmap->ref); 105 wait_for_completion(&pgmap->done); 106 percpu_ref_exit(&pgmap->ref); 111 struct dev_pagemap *pgmap = container_of(ref, struct dev_pagemap, ref); local 113 complete(&pgmap->done); 116 void *__wrap_devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) argument 119 resource_size_t offset = pgmap->range.start; 123 return devm_memremap_pages(dev, pgmap); [all...] |
H A D | nfit_test.h | 214 void *__wrap_devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap);
|
/linux-master/drivers/nvdimm/ |
H A D | pmem.h | 29 struct dev_pagemap pgmap; member in struct:pmem_device
|
H A D | pmem.c | 434 static int pmem_pagemap_memory_failure(struct dev_pagemap *pgmap, argument 438 container_of(pgmap, struct pmem_device, pgmap); 482 rc = nvdimm_setup_pfn(nd_pfn, &pmem->pgmap); 511 pmem->pgmap.owner = pmem; 514 pmem->pgmap.type = MEMORY_DEVICE_FS_DAX; 515 pmem->pgmap.ops = &fsdax_pagemap_ops; 516 addr = devm_memremap_pages(dev, &pmem->pgmap); 520 range_len(&pmem->pgmap.range); 522 bb_range = pmem->pgmap [all...] |
H A D | pfn_devs.c | 682 static int __nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap) argument 684 struct range *range = &pgmap->range; 685 struct vmem_altmap *altmap = &pgmap->altmap; 705 pgmap->nr_range = 1; 720 pgmap->flags |= PGMAP_ALTMAP_VALID; 855 int nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap) argument 867 return __nvdimm_setup_pfn(nd_pfn, pgmap);
|
/linux-master/drivers/gpu/drm/amd/amdkfd/ |
H A D | kfd_migrate.c | 209 return (addr + adev->kfd.pgmap.range.start) >> PAGE_SHIFT; 239 return (addr - adev->kfd.pgmap.range.start); 1017 struct dev_pagemap *pgmap; local 1029 pgmap = &kfddev->pgmap; 1030 memset(pgmap, 0, sizeof(*pgmap)); 1037 pgmap->range.start = adev->gmc.aper_base; 1038 pgmap->range.end = adev->gmc.aper_base + adev->gmc.aper_size - 1; 1039 pgmap [all...] |
H A D | kfd_svm.h | 203 #define KFD_IS_SVM_API_SUPPORTED(adev) ((adev)->kfd.pgmap.type != 0 ||\
|
/linux-master/arch/powerpc/include/asm/book3s/64/ |
H A D | radix.h | 367 bool vmemmap_can_optimize(struct vmem_altmap *altmap, struct dev_pagemap *pgmap); 374 struct dev_pagemap *pgmap);
|
/linux-master/fs/fuse/ |
H A D | virtio_fs.c | 861 struct dev_pagemap *pgmap; local 891 pgmap = devm_kzalloc(&vdev->dev, sizeof(*pgmap), GFP_KERNEL); 892 if (!pgmap) 895 pgmap->type = MEMORY_DEVICE_FS_DAX; 898 * devm_memremap_pages() wants its own copy in pgmap. So 902 pgmap->range = (struct range) { 906 pgmap->nr_range = 1; 908 fs->window_kaddr = devm_memremap_pages(&vdev->dev, pgmap);
|