Lines Matching refs:percpu
3 * mm/percpu.c - percpu memory allocator
10 * This is percpu allocator which can handle both static and dynamic
13 * chunk is used for static percpu variables in the kernel image
28 * Percpu access can be done by configuring percpu base registers
31 * There are usually many small percpu allocations many of them being
50 * regular address to percpu pointer and back if they need to be
53 * - use pcpu_setup_first_chunk() during percpu area initialization to
54 * setup the first chunk containing the kernel static percpu area
65 #include <linux/percpu.h>
80 /* default addr <-> pcpu_ptr mapping, override in asm/percpu.h if necessary */
158 * general, percpu memory can't be allocated with irq off but
504 * uncommon for percpu allocations.
657 #include "percpu-km.c"
659 #include "percpu-vm.c"
691 * pcpu_alloc - the percpu allocator
696 * Allocate percpu area of @size bytes aligned at @align.
714 "percpu allocation\n", size, align);
820 * __alloc_percpu - allocate dynamic percpu area
824 * Allocate percpu area of @size bytes aligned at @align. Might
840 * __alloc_reserved_percpu - allocate reserved percpu area
844 * Allocate percpu area of @size bytes aligned at @align from reserved
845 * percpu area if arch has set it up; otherwise, allocation is served
898 * free_percpu - free percpu area
901 * Free percpu area @ptr.
941 * is_kernel_percpu_address - test whether address is from static percpu area
944 * Test whether @addr belongs to in-kernel static percpu area. Module
945 * static percpu areas are not considered. For those, use
949 * %true if @addr is from in-kernel static percpu area, %false otherwise.
967 * per_cpu_ptr_to_phys - convert translated percpu address to physical address
971 * percpu access macros, this function translates it into its physical
1016 * pcpu_alloc_alloc_info - allocate percpu allocation info
1060 * pcpu_free_alloc_info - free percpu allocation info
1072 * @reserved_size: the size of reserved percpu area in bytes
1078 * and other parameters considering needed percpu size, allocation
1283 * pcpu_setup_first_chunk - initialize the first percpu chunk
1284 * @ai: pcpu_alloc_info describing how to percpu area is shaped
1287 * Initialize the first percpu chunk which contains the kernel static
1288 * perpcu area. This function is to be called from arch percpu area
1292 * chunk and prime the dynamic percpu allocator.
1294 * @ai->static_size is the size of static percpu area.
1299 * percpu allocation. This is primarily used to serve module percpu
1302 * percpu symbols fall inside the relocatable range.
1320 * percpu areas. Units which should be colocated are put into the
1444 * static percpu allocation).
1522 * pcpu_embed_first_chunk - embed the first percpu chunk into bootmem
1523 * @reserved_size: the size of reserved percpu area in bytes
1527 * @alloc_fn: function to allocate percpu page
1528 * @free_fn: funtion to free percpu page
1530 * This is a helper to ease setting up embedded first percpu chunk and
1655 * @reserved_size: the size of reserved percpu area in bytes
1656 * @alloc_fn: function to allocate percpu page, always called with PAGE_SIZE
1657 * @free_fn: funtion to free percpu page, always called with PAGE_SIZE
1660 * This is a helper to ease setting up page-remapped first percpu
1663 * This is the basic allocator. Static percpu area is allocated
1729 panic("failed to map percpu area, err=%d\n", rc);
1756 * Generic percpu area setup.
1759 * the original non-dynamic generic percpu area setup. This is
1761 * fail if the percpu area is located far away from the previous
1763 * generally a good idea TLB-wise because percpu area can piggy back
1789 * Always reserve area for module percpu variables. That's
1796 panic("Failed to initialized percpu areas.");