Home
last modified time | relevance | path

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

123

/Linux-v5.15/mm/
Dcma.c38 struct cma cma_areas[MAX_CMA_AREAS];
41 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument
43 return PFN_PHYS(cma->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()
61 return (1UL << (align_order - cma->order_per_bit)) - 1; in cma_bitmap_aligned_mask()
[all …]
Dcma_debug.c36 struct cma *cma = data; in cma_used_get() local
39 spin_lock_irq(&cma->lock); in cma_used_get()
41 used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma)); in cma_used_get()
42 spin_unlock_irq(&cma->lock); in cma_used_get()
43 *val = (u64)used << cma->order_per_bit; in cma_used_get()
51 struct cma *cma = data; in cma_maxchunk_get() local
54 unsigned long bitmap_maxno = cma_bitmap_maxno(cma); in cma_maxchunk_get()
56 spin_lock_irq(&cma->lock); in cma_maxchunk_get()
58 start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end); in cma_maxchunk_get()
61 end = find_next_bit(cma->bitmap, bitmap_maxno, start); in cma_maxchunk_get()
[all …]
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 static inline struct cma *cma_from_kobj(struct kobject *kobj) in cma_from_kobj()
29 return container_of(kobj, struct cma_kobject, kobj)->cma; in cma_from_kobj()
35 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_success_show() local
38 atomic64_read(&cma->nr_pages_succeeded)); in alloc_pages_success_show()
45 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_fail_show() local
47 return sysfs_emit(buf, "%llu\n", atomic64_read(&cma->nr_pages_failed)); in alloc_pages_fail_show()
[all …]
Dcma.h10 struct cma *cma; member
13 struct cma { struct
35 extern struct cma cma_areas[MAX_CMA_AREAS]; argument
38 static inline unsigned long cma_bitmap_maxno(struct cma *cma) in cma_bitmap_maxno() argument
40 return cma->count >> cma->order_per_bit; in cma_bitmap_maxno()
44 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages);
45 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages);
47 static inline void cma_sysfs_account_success_pages(struct cma *cma, in cma_sysfs_account_success_pages() argument
49 static inline void cma_sysfs_account_fail_pages(struct cma *cma, in cma_sysfs_account_fail_pages() argument
/Linux-v5.15/include/linux/
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()
46 struct cma **res_cma);
47 extern struct page *cma_alloc(struct cma *cma, unsigned long count, unsigned int align,
49 extern bool cma_release(struct cma *cma, const struct page *pages, unsigned long count);
51 extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data);
Ddma-map-ops.h12 struct cma;
102 extern struct cma *dma_contiguous_default_area;
104 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
113 phys_addr_t limit, struct cma **res_cma, bool fixed);
124 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
132 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
/Linux-v5.15/kernel/dma/
Dcontiguous.c60 struct cma *dma_contiguous_default_area;
101 static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES];
141 struct cma **cma = &dma_contiguous_pernuma_area[nid]; in dma_pernuma_cma_reserve() local
145 0, false, name, cma, nid); in dma_pernuma_cma_reserve()
228 phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
282 static struct page *cma_alloc_aligned(struct cma *cma, size_t size, gfp_t gfp) in cma_alloc_aligned() argument
286 return cma_alloc(cma, size >> PAGE_SHIFT, align, gfp & __GFP_NOWARN); in cma_alloc_aligned()
320 struct cma *cma = dma_contiguous_pernuma_area[nid]; in dma_alloc_contiguous() local
323 if (cma) { in dma_alloc_contiguous()
324 page = cma_alloc_aligned(cma, size, gfp); in dma_alloc_contiguous()
[all …]
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()
DKconfig131 You can disable CMA by specifying "cma=0" on the kernel's command
159 default, but it can be enabled by passing cma=size[MG] to the kernel.
171 enabled by passing cma=size[MG] to the kernel.
/Linux-v5.15/Documentation/ABI/testing/
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
/Linux-v5.15/Documentation/admin-guide/mm/
Dcma_debugfs.rst8 Each CMA zone represents a directory under <debugfs>/cma/, indexed by the
11 <debugfs>/cma/cma-0
21 echo 5 > <debugfs>/cma/cma-2/alloc
23 would try to allocate 5 pages from the cma-2 area.
/Linux-v5.15/drivers/dma-buf/heaps/
Dcma_heap.c28 struct cma *cma; member
257 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in cma_heap_dma_buf_release()
301 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, false); in cma_heap_allocate()
357 cma_release(cma_heap->cma, cma_pages, pagecount); in cma_heap_allocate()
368 static int __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument
376 cma_heap->cma = cma; in __add_cma_heap()
378 exp_info.name = cma_get_name(cma); in __add_cma_heap()
395 struct cma *default_cma = dev_get_cma_area(NULL); in add_default_cma_heap()
/Linux-v5.15/arch/s390/mm/
Dinit.c244 static int s390_cma_check_range(struct cma *cma, void *data) in s390_cma_check_range() argument
250 start = cma_get_base(cma); in s390_cma_check_range()
251 end = start + cma_get_size(cma); in s390_cma_check_range()
/Linux-v5.15/arch/xtensa/boot/dts/
Dkc705.dts22 linux,cma {
28 linux,cma-default;
/Linux-v5.15/Documentation/devicetree/bindings/reserved-memory/
Dreserved-memory.txt88 - If a "linux,cma-default" property is present, then Linux will use the
106 one default of all device drivers (named linux,cma@72000000 and 64MiB in size),
125 linux,cma {
130 linux,cma-default;
/Linux-v5.15/arch/arm64/boot/dts/amlogic/
Dmeson-a1.dtsi52 linux,cma {
57 linux,cma-default;
/Linux-v5.15/arch/arm/boot/dts/
Dimx6ul-ccimx6ulsom.dtsi20 linux,cma {
24 linux,cma-default;
Dbcm283x.dtsi38 cma: linux,cma { label
42 linux,cma-default;
/Linux-v5.15/drivers/gpu/drm/nouveau/include/nvkm/subdev/
Dpci.h24 bool cma; member
/Linux-v5.15/drivers/infiniband/core/
DMakefile25 rdma_cm-y := cma.o cma_trace.o
/Linux-v5.15/arch/arm/mach-davinci/
Ddevices-da8xx.c887 struct cma *cma; in da8xx_rproc_reserve_cma() local
901 ret = dma_contiguous_reserve_area(rproc_size, rproc_base, 0, &cma, in da8xx_rproc_reserve_cma()
908 da8xx_dsp.dev.cma_area = cma; in da8xx_rproc_reserve_cma()
/Linux-v5.15/include/trace/events/
Dcma.h3 #define TRACE_SYSTEM cma
/Linux-v5.15/drivers/gpu/drm/nouveau/
Dnouveau_ttm.c275 drm->agp.cma = pci->agp.cma; in nouveau_ttm_init()
/Linux-v5.15/arch/arm/mach-shmobile/
Dsetup-rcar-gen2.c188 static struct cma *rcar_gen2_dma_contiguous; in rcar_gen2_reserve()
/Linux-v5.15/drivers/gpu/drm/nouveau/nvkm/subdev/pci/
Dagp.c135 pci->agp.cma = info.cant_use_aperture; in nvkm_agp_ctor()

123