Home
last modified time | relevance | path

Searched refs:cma (Results 1 – 25 of 147) sorted by relevance

123456

/linux/mm/
H A Dcma.c37 struct cma cma_areas[MAX_CMA_AREAS];
40 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument
42 WARN_ON_ONCE(cma->nranges != 1); in cma_get_base()
43 return PFN_PHYS(cma->ranges[0].base_pfn); in cma_get_base()
46 unsigned long cma_get_size(const struct cma *cma) in cma_get_size() argument
48 return cma->count << PAGE_SHIFT; in cma_get_size()
51 const char *cma_get_name(const struct cma *cma) in cma_get_name() argument
53 return cma->name; in cma_get_name()
56 static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, in cma_bitmap_aligned_mask() argument
59 if (align_order <= cma->order_per_bit) in cma_bitmap_aligned_mask()
[all …]
H A Dcma_debug.c36 struct cma *cma = data; in cma_used_get() local
38 spin_lock_irq(&cma->lock); in cma_used_get()
39 *val = cma->count - cma->available_count; in cma_used_get()
40 spin_unlock_irq(&cma->lock); in cma_used_get()
48 struct cma *cma = data; in cma_maxchunk_get() local
55 spin_lock_irq(&cma->lock); in cma_maxchunk_get()
56 for (r = 0; r < cma->nranges; r++) { in cma_maxchunk_get()
57 cmr = &cma->ranges[r]; in cma_maxchunk_get()
58 bitmap_maxno = cma_bitmap_maxno(cma, cmr); in cma_maxchunk_get()
62 spin_unlock_irq(&cma->lock); in cma_maxchunk_get()
[all …]
H A Dcma_sysfs.c17 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_success_pages() argument
19 atomic64_add(nr_pages, &cma->nr_pages_succeeded); in cma_sysfs_account_success_pages()
22 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_fail_pages() argument
24 atomic64_add(nr_pages, &cma->nr_pages_failed); in cma_sysfs_account_fail_pages()
27 void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_release_pages() argument
29 atomic64_add(nr_pages, &cma->nr_pages_released); in cma_sysfs_account_release_pages()
32 static inline struct cma *cma_from_kobj(struct kobject *kobj) in cma_from_kobj()
34 return container_of(kobj, struct cma_kobject, kobj)->cma; in cma_from_kobj()
40 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_success_show() local
43 atomic64_read(&cma->nr_pages_succeeded)); in alloc_pages_success_show()
[all …]
H A Dcma.h10 struct cma *cma; member
39 struct cma { struct
74 extern struct cma cma_areas[MAX_CMA_AREAS]; argument
77 static inline unsigned long cma_bitmap_maxno(struct cma *cma, in cma_bitmap_maxno() argument
80 return cmr->count >> cma->order_per_bit; in cma_bitmap_maxno()
84 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages);
85 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages);
86 void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages);
88 static inline void cma_sysfs_account_success_pages(struct cma *cma, in cma_sysfs_account_success_pages() argument
90 static inline void cma_sysfs_account_fail_pages(struct cma *cma, in cma_sysfs_account_fail_pages() argument
[all …]
H A Dhugetlb_cma.c16 static struct cma *hugetlb_cma[MAX_NUMNODES] __ro_after_init;
62 struct cma *cma; in hugetlb_cma_alloc_bootmem() local
66 cma = hugetlb_cma[*nid]; in hugetlb_cma_alloc_bootmem()
67 m = cma_reserve_early(cma, huge_page_size(h)); in hugetlb_cma_alloc_bootmem()
73 cma = hugetlb_cma[node]; in hugetlb_cma_alloc_bootmem()
74 if (!cma || node == *nid) in hugetlb_cma_alloc_bootmem()
76 m = cma_reserve_early(cma, huge_page_size(h)); in hugetlb_cma_alloc_bootmem()
86 m->cma = cma; in hugetlb_cma_alloc_bootmem()
H A Dinternal.h1011 struct cma;
1014 bool cma_validate_zones(struct cma *cma);
1015 void *cma_reserve_early(struct cma *cma, unsigned long size);
1018 static inline bool cma_validate_zones(struct cma *cma) in cma_validate_zones() argument
1022 static inline void *cma_reserve_early(struct cma *cma, unsigned long size) in cma_reserve_early() argument
/linux/include/linux/
H A Dcma.h23 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);
33 bool fixed, const char *name, struct cma **res_cma,
38 bool fixed, const char *name, struct cma **res_cma) in cma_declare_contiguous()
45 const char *name, struct cma **res_cma, int nid);
49 struct cma **res_cma);
50 extern struct page *cma_alloc(struct cma *cma, unsigned long count, unsigned int align,
52 extern bool cma_release(struct cma *cma, const struct page *pages, unsigned long count);
[all …]
H A Ddma-map-ops.h13 struct cma;
94 extern struct cma *dma_contiguous_default_area;
96 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
105 phys_addr_t limit, struct cma **res_cma, bool fixed);
116 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
124 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
/linux/kernel/dma/
H A Dcontiguous.c56 struct cma *dma_contiguous_default_area;
106 static struct cma *dma_contiguous_numa_area[MAX_NUMNODES];
108 static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES];
176 struct cma **cma; in dma_numa_cma_reserve() local
186 cma = &dma_contiguous_pernuma_area[nid]; in dma_numa_cma_reserve()
189 0, false, name, cma, nid); in dma_numa_cma_reserve()
197 cma = &dma_contiguous_numa_area[nid]; in dma_numa_cma_reserve()
200 name, cma, nid); in dma_numa_cma_reserve()
296 phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
350 static struct page *cma_alloc_aligned(struct cma *cma, size_t size, gfp_t gfp) in cma_alloc_aligned() argument
[all …]
H A Dpool.c60 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/Documentation/ABI/testing/
H A Dsysfs-kernel-mm-cma1 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/drivers/dma-buf/heaps/
H A Dcma_heap.c33 static struct cma *dma_areas[MAX_CMA_AREAS] __initdata;
36 int __init dma_heap_cma_register_heap(struct cma *cma) in dma_heap_cma_register_heap() argument
41 dma_areas[dma_areas_num++] = cma; in dma_heap_cma_register_heap()
48 struct cma *cma; member
278 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in cma_heap_dma_buf_release()
322 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, false); in cma_heap_allocate()
378 cma_release(cma_heap->cma, cma_pages, pagecount); in cma_heap_allocate()
389 static int __init __add_cma_heap(struct cma *cma, const char *name) in __add_cma_heap() argument
397 cma_heap->cma = cma; in __add_cma_heap()
416 struct cma *default_cma = dev_get_cma_area(NULL); in add_cma_heaps()
[all …]
/linux/include/linux/dma-buf/heaps/
H A Dcma.h5 struct cma;
8 int dma_heap_cma_register_heap(struct cma *cma);
10 static inline int dma_heap_cma_register_heap(struct cma *cma) in dma_heap_cma_register_heap() argument
/linux/Documentation/userspace-api/
H A Ddma-buf-heaps.rst22 through the ``cma`` parameter, a memory region Device-Tree node with
23 the ``linux,cma-default`` property set, or through the
26 ``reserved``, ``linux,cma``, or ``default-pool``, depending on the
32 ``default-cma-region``.
67 ``cma-video`` wouldn't.
/linux/Documentation/admin-guide/mm/
H A Dcma_debugfs.rst8 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/arch/xtensa/boot/dts/
H A Dkc705.dts22 linux,cma {
28 linux,cma-default;
/linux/kernel/
H A Dkexec_core.c563 struct page *cma = image->segment_cma[i]; in kimage_free_cma() local
566 if (!cma) in kimage_free_cma()
569 arch_kexec_pre_free_pages(page_address(cma), nr_pages); in kimage_free_cma()
570 dma_release_from_contiguous(NULL, cma, nr_pages); in kimage_free_cma()
745 struct page *cma = image->segment_cma[idx]; in kimage_load_cma_segment() local
746 char *ptr = page_address(cma); in kimage_load_cma_segment()
963 struct page *cma; in kimage_map_segment() local
967 cma = image->segment_cma[idx]; in kimage_map_segment()
968 if (cma) in kimage_map_segment()
969 return page_address(cma); in kimage_map_segment()
/linux/arch/arm64/boot/dts/cix/
H A Dsky1-xcp.dts29 linux,cma {
33 linux,cma-default;
H A Dsky1-orion-o6.dts29 linux,cma {
33 linux,cma-default;
/linux/arch/s390/mm/
H A Dinit.c221 static int s390_cma_check_range(struct cma *cma, void *data) in s390_cma_check_range() argument
227 if (cma_intersects(cma, mem_data->start, mem_data->end)) in s390_cma_check_range()
/linux/arch/arm64/boot/dts/realtek/
H A Drtd1861b-krypton.dtsi22 linux,cma {
28 linux,cma-default;
H A Drtd1501s-phantom.dtsi23 linux,cma {
29 linux,cma-default;
H A Drtd1920s-smallville.dtsi33 linux,cma {
39 linux,cma-default;
/linux/arch/loongarch/boot/dts/
H A Dloongson-2k0500-ref.dts35 linux,cma {
39 linux,cma-default;
H A Dloongson-2k2000-ref.dts33 linux,cma {
37 linux,cma-default;

123456