| /linux-6.15/mm/ |
| H A D | cma.c | 44 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument 50 unsigned long cma_get_size(const struct cma *cma) in cma_get_size() argument 55 const char *cma_get_name(const struct cma *cma) in cma_get_name() argument 106 bool cma_validate_zones(struct cma *cma) in cma_validate_zones() argument 201 cma->available_count = cma->count = 0; in cma_activate_area() 225 struct cma *cma; in cma_new_area() local 275 struct cma *cma; in cma_init_reserved_mem() local 301 cma->ranges[0].count = cma->count; in cma_init_reserved_mem() 382 struct cma *cma; in cma_declare_contiguous_multi() local 858 if (!cma || !cma->count) in __cma_alloc() [all …]
|
| H A D | cma_debug.c | 36 struct cma *cma = data; in cma_used_get() local 39 *val = cma->count - cma->available_count; in cma_used_get() 48 struct cma *cma = data; in cma_maxchunk_get() local 57 cmr = &cma->ranges[r]; in cma_maxchunk_get() 77 static void cma_add_to_cma_mem_list(struct cma *cma, struct cma_mem *mem) in cma_add_to_cma_mem_list() argument 84 static struct cma_mem *cma_get_entry_from_list(struct cma *cma) in cma_get_entry_from_list() argument 98 static int cma_free_mem(struct cma *cma, int count) in cma_free_mem() argument 131 struct cma *cma = data; in cma_free_write() local 137 static int cma_alloc_mem(struct cma *cma, int count) in cma_alloc_mem() argument 163 struct cma *cma = data; in cma_alloc_write() local [all …]
|
| H A D | cma_sysfs.c | 17 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_success_pages() argument 22 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_fail_pages() argument 27 void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_release_pages() argument 40 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_success_show() local 50 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_fail_show() local 59 struct cma *cma = cma_from_kobj(kobj); in release_pages_success_show() local 68 struct cma *cma = cma_from_kobj(kobj); in total_pages_show() local 77 struct cma *cma = cma_from_kobj(kobj); in available_pages_show() local 85 struct cma *cma = cma_from_kobj(kobj); in cma_kobj_release() local 112 struct cma *cma; in cma_sysfs_init() local [all …]
|
| H A D | cma.h | 10 struct cma *cma; member 37 struct cma { struct 72 extern struct cma cma_areas[MAX_CMA_AREAS]; argument 75 static inline unsigned long cma_bitmap_maxno(struct cma *cma, in cma_bitmap_maxno() argument 78 return cmr->count >> cma->order_per_bit; in cma_bitmap_maxno() 82 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages); 83 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages); 84 void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages); 86 static inline void cma_sysfs_account_success_pages(struct cma *cma, in cma_sysfs_account_success_pages() argument 88 static inline void cma_sysfs_account_fail_pages(struct cma *cma, in cma_sysfs_account_fail_pages() argument [all …]
|
| H A D | hugetlb_cma.c | 16 static struct cma *hugetlb_cma[MAX_NUMNODES]; 59 struct cma *cma; in hugetlb_cma_alloc_bootmem() local 63 cma = hugetlb_cma[*nid]; in hugetlb_cma_alloc_bootmem() 64 m = cma_reserve_early(cma, huge_page_size(h)); in hugetlb_cma_alloc_bootmem() 70 cma = hugetlb_cma[node]; in hugetlb_cma_alloc_bootmem() 71 if (!cma || node == *nid) in hugetlb_cma_alloc_bootmem() 73 m = cma_reserve_early(cma, huge_page_size(h)); in hugetlb_cma_alloc_bootmem() 83 m->cma = cma; in hugetlb_cma_alloc_bootmem()
|
| /linux-6.15/include/linux/ |
| H A D | cma.h | 23 struct cma; 26 extern phys_addr_t cma_get_base(const struct cma *cma); 27 extern unsigned long cma_get_size(const struct cma *cma); 28 extern const char *cma_get_name(const struct cma *cma); 55 extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data); 58 extern void cma_reserve_pages_on_error(struct cma *cma); 61 struct folio *cma_alloc_folio(struct cma *cma, int order, gfp_t gfp); 62 bool cma_free_folio(struct cma *cma, const struct folio *folio); 63 bool cma_validate_zones(struct cma *cma); 70 static inline bool cma_free_folio(struct cma *cma, const struct folio *folio) in cma_free_folio() argument [all …]
|
| H A D | dma-map-ops.h | 13 struct cma; 100 extern struct cma *dma_contiguous_default_area; 102 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 111 phys_addr_t limit, struct cma **res_cma, bool fixed); 122 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 130 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
|
| /linux-6.15/kernel/dma/ |
| H A D | contiguous.c | 55 struct cma *dma_contiguous_default_area; 165 struct cma **cma; in dma_numa_cma_reserve() local 178 0, false, name, cma, nid); in dma_numa_cma_reserve() 189 name, cma, nid); in dma_numa_cma_reserve() 328 static struct page *cma_alloc_aligned(struct cma *cma, size_t size, gfp_t gfp) in cma_alloc_aligned() argument 366 struct cma *cma = dma_contiguous_pernuma_area[nid]; in dma_alloc_contiguous() local 369 if (cma) { in dma_alloc_contiguous() 376 if (cma) { in dma_alloc_contiguous() 460 struct cma *cma; in rmem_cma_setup() local 487 dma_contiguous_default_area = cma; in rmem_cma_setup() [all …]
|
| H A D | pool.c | 60 struct cma *cma; in cma_in_zone() local 62 cma = dev_get_cma_area(NULL); in cma_in_zone() 63 if (!cma) in cma_in_zone() 66 size = cma_get_size(cma); in cma_in_zone() 71 end = cma_get_base(cma) + size - 1; in cma_in_zone()
|
| /linux-6.15/Documentation/ABI/testing/ |
| H A D | sysfs-kernel-mm-cma | 1 What: /sys/kernel/mm/cma/ 5 /sys/kernel/mm/cma/ contains a subdirectory for each CMA 9 /sys/kernel/mm/cma/<cma-heap-name> directory) contains the 15 What: /sys/kernel/mm/cma/<cma-heap-name>/alloc_pages_success 21 What: /sys/kernel/mm/cma/<cma-heap-name>/alloc_pages_fail 27 What: /sys/kernel/mm/cma/<cma-heap-name>/release_pages_success 33 What: /sys/kernel/mm/cma/<cma-heap-name>/total_pages 39 What: /sys/kernel/mm/cma/<cma-heap-name>/available_pages
|
| /linux-6.15/drivers/dma-buf/heaps/ |
| H A D | cma_heap.c | 28 struct cma *cma; member 258 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in cma_heap_dma_buf_release() 302 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, false); in cma_heap_allocate() 358 cma_release(cma_heap->cma, cma_pages, pagecount); in cma_heap_allocate() 369 static int __init __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument 377 cma_heap->cma = cma; in __add_cma_heap() 379 exp_info.name = cma_get_name(cma); in __add_cma_heap() 396 struct cma *default_cma = dev_get_cma_area(NULL); in add_default_cma_heap()
|
| /linux-6.15/Documentation/userspace-api/ |
| H A D | dma-buf-heaps.rst | 19 - The ``cma`` heap allocates physically contiguous, cacheable, 22 `cma` parameter, a memory region Device-Tree node with the 23 `linux,cma-default` property set, or through the `CMA_SIZE_MBYTES` or 25 might be called ``reserved``, ``linux,cma``, or ``default-pool``.
|
| /linux-6.15/Documentation/admin-guide/mm/ |
| H A D | cma_debugfs.rst | 8 Each CMA area represents a directory under <debugfs>/cma/, represented by 11 <debugfs>/cma/<cma_name> 27 echo 5 > <debugfs>/cma/<cma_name>/alloc
|
| /linux-6.15/arch/xtensa/boot/dts/ |
| H A D | kc705.dts | 22 linux,cma { 28 linux,cma-default;
|
| /linux-6.15/arch/loongarch/boot/dts/ |
| H A D | loongson-2k0500-ref.dts | 35 linux,cma { 39 linux,cma-default;
|
| H A D | loongson-2k2000-ref.dts | 33 linux,cma { 37 linux,cma-default;
|
| H A D | loongson-2k1000-ref.dts | 34 linux,cma { 38 linux,cma-default;
|
| /linux-6.15/arch/arm64/boot/dts/qcom/ |
| H A D | qrb5165-rb5-vision-mezzanine.dtso | 14 linux,cma { 18 linux,cma-default;
|
| H A D | sdm845-db845c-navigation-mezzanine.dtso | 14 linux,cma { 18 linux,cma-default;
|
| /linux-6.15/arch/s390/mm/ |
| H A D | init.c | 223 static int s390_cma_check_range(struct cma *cma, void *data) in s390_cma_check_range() argument 229 if (cma_intersects(cma, mem_data->start, mem_data->end)) in s390_cma_check_range()
|
| /linux-6.15/arch/arm64/boot/dts/freescale/ |
| H A D | imx93-phycore-som.dtsi | 24 linux,cma { 29 linux,cma-default;
|
| H A D | tqma8xx.dtsi | 37 linux,cma { 42 linux,cma-default;
|
| /linux-6.15/arch/arm64/boot/dts/ti/ |
| H A D | k3-am62a-phycore-som.dtsi | 53 /* global cma region */ 54 linux,cma { 59 linux,cma-default;
|
| /linux-6.15/arch/arm/boot/dts/nxp/imx/ |
| H A D | imx6ul-ccimx6ulsom.dtsi | 20 linux,cma { 24 linux,cma-default;
|
| /linux-6.15/drivers/gpu/drm/nouveau/include/nvkm/subdev/ |
| H A D | pci.h | 23 bool cma; member
|