Home
last modified time | relevance | path

Searched full:cma (Results 1 – 25 of 155) sorted by relevance

1234567

/kernel/linux/linux-5.10/mm/
Dcma_debug.c3 * CMA DebugFS Interface
10 #include <linux/cma.h>
16 #include "cma.h"
36 struct cma *cma = data; in cma_used_get() local
39 mutex_lock(&cma->lock); in cma_used_get()
41 used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma)); in cma_used_get()
42 mutex_unlock(&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()
[all …]
Dcma.c15 #define pr_fmt(fmt) "cma: " fmt
31 #include <linux/cma.h>
35 #include <trace/events/cma.h>
37 #include "cma.h"
39 struct cma cma_areas[MAX_CMA_AREAS];
43 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument
45 return PFN_PHYS(cma->base_pfn); in cma_get_base()
48 unsigned long cma_get_size(const struct cma *cma) in cma_get_size() argument
50 return cma->count << PAGE_SHIFT; in cma_get_size()
53 const char *cma_get_name(const struct cma *cma) in cma_get_name() argument
[all …]
Dcma.h7 struct cma { struct
21 extern struct cma cma_areas[MAX_CMA_AREAS]; argument
24 static inline unsigned long cma_bitmap_maxno(struct cma *cma) in cma_bitmap_maxno() argument
26 return cma->count >> cma->order_per_bit; in cma_bitmap_maxno()
DKconfig312 depends on (NUMA || ARCH_ENABLE_MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU
328 def_bool (MEMORY_ISOLATION && COMPACTION) || CMA
536 config CMA config
544 CMA reserves a region of memory and allows only movable pages to
552 bool "CMA debug messages (DEVELOPMENT)"
553 depends on DEBUG_KERNEL && CMA
555 Turns on debug messages in CMA. This produces KERN_DEBUG
556 messages for every CMA call as well as various messages while
561 bool "CMA debugfs interface"
562 depends on CMA && DEBUG_FS
[all …]
/kernel/linux/linux-5.10/include/linux/
Dcma.h10 * There is always at least global CMA area and a few optional
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);
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, size_t count, unsigned int align,
49 extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count);
[all …]
Ddma-map-ops.h12 struct cma;
101 extern struct cma *dma_contiguous_default_area;
103 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
112 phys_addr_t limit, struct cma **res_cma, bool fixed);
123 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area()
131 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
/kernel/linux/linux-5.10/Documentation/admin-guide/mm/
Dcma_debugfs.rst2 CMA Debugfs Interface
5 The CMA debugfs interface is useful to retrieve basic information out of the
6 different CMA areas and to test allocation/release in each of the areas.
8 Each CMA zone represents a directory under <debugfs>/cma/, indexed by the
9 kernel's CMA index. So the first CMA zone would be:
11 <debugfs>/cma/cma-0
16 - [RO] count: Amount of memory in the CMA area.
19 - [WO] alloc: Allocate N pages from that CMA area. For example::
21 echo 5 > <debugfs>/cma/cma-2/alloc
23 would try to allocate 5 pages from the cma-2 area.
[all …]
/kernel/linux/linux-5.10/kernel/dma/
Dcontiguous.c11 * The Contiguous Memory Allocator (CMA) makes it possible to
32 * CMA tries to solve this issue by operating on memory regions
38 #define pr_fmt(fmt) "cma: " fmt
52 #include <linux/cma.h>
60 struct cma *dma_contiguous_default_area;
63 * Default global CMA area size can be defined in kernel's .config.
69 * Users, who want to set the size of global CMA area for their system
70 * should use cma= kernel parameter.
97 early_param("cma", early_cma);
101 static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES];
[all …]
DKconfig112 depends on HAVE_DMA_CONTIGUOUS && CMA
118 You can disable CMA by specifying "cma=0" on the kernel's command
130 Enable this option to get pernuma CMA areas so that devices like
133 You can set the size of pernuma CMA by specifying "cma_pernuma=size"
145 Memory Allocator. If the size of 0 is selected, CMA is disabled by
146 default, but it can be enabled by passing cma=size[MG] to the kernel.
157 If 0 percent is selected, CMA is disabled by default, but it can be
158 enabled by passing cma=size[MG] to the kernel.
Dpool.c6 #include <linux/cma.h>
63 struct cma *cma; in cma_in_zone() local
65 cma = dev_get_cma_area(NULL); in cma_in_zone()
66 if (!cma) in cma_in_zone()
69 size = cma_get_size(cma); in cma_in_zone()
73 /* CMA can't cross zone boundaries, see cma_activate_area() */ in cma_in_zone()
74 end = cma_get_base(cma) + size - 1; in cma_in_zone()
/kernel/linux/linux-5.10/drivers/staging/android/ion/
Dion_cma_heap.c3 * ION Memory Allocator CMA heap exporter
13 #include <linux/cma.h>
21 struct cma *cma; member
26 /* ION CMA heap operations functions */
42 pages = cma_alloc(cma_heap->cma, nr_pages, align, false); in ion_cma_allocate()
79 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_allocate()
90 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_free()
104 static struct ion_heap *__ion_cma_heap_create(struct cma *cma) in __ion_cma_heap_create() argument
114 cma_heap->cma = cma; in __ion_cma_heap_create()
119 static int __ion_add_cma_heaps(struct cma *cma, void *data) in __ion_add_cma_heaps() argument
[all …]
DKconfig22 bool "Ion CMA heap support"
25 Choose this option to enable CMA heaps with Ion. This heap is backed
26 by the Contiguous Memory Allocator (CMA). If your system has these
/kernel/linux/linux-5.10/drivers/dma-buf/heaps/
Dcma_heap.c3 * DMABUF CMA heap exporter
9 #include <linux/cma.h>
26 struct cma *cma; member
38 cma_release(cma_heap->cma, cma_pages, nr_pages); in cma_heap_free()
42 /* dmabuf heap CMA operations functions */
69 cma_pages = cma_alloc(cma_heap->cma, nr_pages, align, false); in cma_heap_allocate()
130 cma_release(cma_heap->cma, cma_pages, nr_pages); in cma_heap_allocate()
140 static int __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument
148 cma_heap->cma = cma; in __add_cma_heap()
150 exp_info.name = cma_get_name(cma); in __add_cma_heap()
[all …]
DKconfig9 bool "DMA-BUF CMA Heap"
12 Choose this option to enable dma-buf CMA heap. This heap is backed
13 by the Contiguous Memory Allocator (CMA). If your system has these
/kernel/linux/linux-5.10/drivers/gpu/drm/
Ddrm_gem_cma_helper.c3 * drm gem CMA (contiguous memory allocator) helper functions
26 * DOC: cma helpers
31 * The DRM GEM/CMA helpers use this allocator as a means to provide buffer
37 * __drm_gem_cma_create - Create a GEM CMA object without allocating memory
41 * This function creates and initializes a GEM CMA object of the given size,
85 * This function creates a CMA GEM object and allocates a contiguous chunk of
130 * This function creates a CMA GEM object, allocating a physically contiguous
167 * drm_gem_cma_free_object - free resources associated with a CMA GEM object
170 * This function frees the backing memory of the CMA GEM object, cleans up the
173 * Drivers using the CMA helpers should set this as their
[all …]
Ddrm_fb_cma_helper.c3 * drm kms/fb cma (contiguous memory allocator) helper functions
21 * DOC: framebuffer cma helper functions
23 * Provides helper functions for creating a cma (contiguous memory allocator)
27 * callback function to create a cma backed framebuffer.
31 * drm_fb_cma_get_gem_obj() - Get CMA GEM object for framebuffer
35 * Return the CMA GEM object for given framebuffer.
59 * Return the CMA GEM address for given framebuffer.
/kernel/linux/linux-5.10/include/drm/
Ddrm_gem_cma_helper.h12 * struct drm_gem_cma_object - GEM object backed by CMA memory allocations
25 /* For objects with DMA memory allocated by GEM CMA */
40 * DEFINE_DRM_GEM_CMA_FOPS() - macro to generate file operations for CMA drivers
43 * This macro autogenerates a suitable &struct file_operations for CMA based
113 * DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE - CMA GEM driver operations
134 * DRM_GEM_CMA_DRIVER_OPS - CMA GEM driver operations
149 * DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE - CMA GEM driver operations
173 * DRM_GEM_CMA_DRIVER_OPS_VMAP - CMA GEM driver operations ensuring a virtual
/kernel/linux/build/test/kernel_ltp/syscalls/cma/
DBUILD.gn19 sources = [ "//third_party/ltp/testcases/kernel/syscalls/cma/process_vm01.c" ]
25 [ "//third_party/ltp/testcases/kernel/syscalls/cma/process_vm_readv02.c" ]
31 [ "//third_party/ltp/testcases/kernel/syscalls/cma/process_vm_readv03.c" ]
37 "//third_party/ltp/testcases/kernel/syscalls/cma/process_vm_writev02.c",
/kernel/linux/linux-5.10/arch/s390/mm/
Dinit.c31 #include <linux/cma.h>
232 /* Prevent memory blocks which contain cma regions from going offline */
239 static int s390_cma_check_range(struct cma *cma, void *data) in s390_cma_check_range() argument
245 start = cma_get_base(cma); in s390_cma_check_range()
246 end = start + cma_get_size(cma); in s390_cma_check_range()
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/reserved-memory/
Dreserved-memory.txt71 - If a "linux,cma-default" property is present, then Linux will use the
89 one default of all device drivers (named linux,cma@72000000 and 64MiB in size),
107 linux,cma {
112 linux,cma-default;
/kernel/linux/build/test/moduletest/runtest/bin/mem_debug_t/testcases/bin/
Dmem_debug02.sh16 # Description: Sum of static memory excluding cma test
48 tst_res TPASS "Sum of static memory excluding cma test pass."
50 tst_res TFAIL "Sum of static memory excluding cma test failed!"
/kernel/linux/build/test/kernel_ltp/syscalls/
DBUILD.gn107 "cma:process_vm01",
108 "cma:process_vm_readv02",
109 "cma:process_vm_readv03",
110 "cma:process_vm_writev02",
/kernel/linux/linux-5.10/arch/xtensa/boot/dts/
Dkc705.dts22 linux,cma {
28 linux,cma-default;
/kernel/linux/linux-5.10/lib/
Dshow_mem.c9 #include <linux/cma.h>
39 printk("%lu pages cma reserved\n", totalcma_pages); in show_mem()
/kernel/linux/linux-5.10/drivers/of/
Dof_reserved_mem.c126 /* Need adjust the alignment to satisfy the CMA requirement */ in __reserved_mem_alloc_size()
475 int cma = 0; in dt_reserved_memory_debug_show() local
479 " [d/s] [cma] [name]\n"); in dt_reserved_memory_debug_show()
482 cma = 0; in dt_reserved_memory_debug_show()
494 /* find out cma reserved memory node */ in dt_reserved_memory_debug_show()
497 cma = 1; in dt_reserved_memory_debug_show()
508 (cma == 1) ? "y" : "n", in dt_reserved_memory_debug_show()

1234567