Lines Matching +full:lock +full:- +full:less

1 // SPDX-License-Identifier: GPL-2.0-only
13 #include "memory-alloc.h"
38 * @flag_ptr: Location of the allocation-allowed flag
71 * performance-critical stage for us, so a linked list should be fine.
80 spinlock_t lock; member
101 spin_lock_irqsave(&memory_stats.lock, flags); in add_kmalloc_block()
105 spin_unlock_irqrestore(&memory_stats.lock, flags); in add_kmalloc_block()
112 spin_lock_irqsave(&memory_stats.lock, flags); in remove_kmalloc_block()
113 memory_stats.kmalloc_blocks--; in remove_kmalloc_block()
114 memory_stats.kmalloc_bytes -= size; in remove_kmalloc_block()
115 spin_unlock_irqrestore(&memory_stats.lock, flags); in remove_kmalloc_block()
122 spin_lock_irqsave(&memory_stats.lock, flags); in add_vmalloc_block()
123 block->next = memory_stats.vmalloc_list; in add_vmalloc_block()
126 memory_stats.vmalloc_bytes += block->size; in add_vmalloc_block()
128 spin_unlock_irqrestore(&memory_stats.lock, flags); in add_vmalloc_block()
137 spin_lock_irqsave(&memory_stats.lock, flags); in remove_vmalloc_block()
140 block_ptr = &block->next) { in remove_vmalloc_block()
141 if (block->ptr == ptr) { in remove_vmalloc_block()
142 *block_ptr = block->next; in remove_vmalloc_block()
143 memory_stats.vmalloc_blocks--; in remove_vmalloc_block()
144 memory_stats.vmalloc_bytes -= block->size; in remove_vmalloc_block()
149 spin_unlock_irqrestore(&memory_stats.lock, flags); in remove_vmalloc_block()
166 * block is bigger than PAGE_SIZE / 2 bytes, kmalloc will never give you less space than the
167 * corresponding vmalloc allocation. Sometimes vmalloc will use less overhead than kmalloc.
172 * have used vmalloc as a backup to kmalloc in the past, and a follow-up vmalloc of 32KB will work.
179 * additional 6374 vmalloc calls, which is much less efficient for tracking.
205 * freeing memory such as compaction (which removes fragmentation) and page-out. There is in vdo_allocate_memory()
210 * The caller must handle failure, but can reasonably do so by failing a higher-level in vdo_allocate_memory()
211 * request, or completing it only in a much less efficient manner. in vdo_allocate_memory()
220 return -EINVAL; in vdo_allocate_memory()
264 if (jiffies_to_msecs(jiffies - start_time) > 1000) { in vdo_allocate_memory()
276 block->ptr = p; in vdo_allocate_memory()
277 block->size = PAGE_ALIGN(size); in vdo_allocate_memory()
288 size, what, jiffies_to_msecs(jiffies - start_time)); in vdo_allocate_memory()
289 return -ENOMEM; in vdo_allocate_memory()
382 spin_lock_init(&memory_stats.lock); in vdo_memory_init()
401 spin_lock_irqsave(&memory_stats.lock, flags); in vdo_get_memory_stats()
404 spin_unlock_irqrestore(&memory_stats.lock, flags); in vdo_get_memory_stats()
421 spin_lock_irqsave(&memory_stats.lock, flags); in vdo_report_memory_usage()
427 spin_unlock_irqrestore(&memory_stats.lock, flags); in vdo_report_memory_usage()