Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\vmalloc.c Create Date:2022-07-28 14:59:06
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Purges all lazily-freed vmap areas.

Proto:static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end)

Type:bool

Parameter:

TypeParameterName
unsigned longstart
unsigned longend
1280  lockdep_assert_held( & Serialize vmap purging. There is no actual criticial section protected* by this look, but we want to avoid concurrent calls for performance* reasons and to make the pcpu_get_vm_areas more deterministic.)
1282  valist = llist_del_all - delete all entries from lock-less list*@head: the head of lock-less list to delete all entries* If list is empty, return NULL, otherwise, delete all entries and* return the pointer to the first entry. The order of entries
1283  If Value for the false possibility is greater at compile time(valist == NULL) Then Return false
1290  Implement a stub for vmalloc_sync_all() if the architecture chose not to* have one.* The purpose of this function is to make sure the vmalloc area* mappings are identical in all page-tables in the system.
1297  If va_start < start Then start = va_start
1299  If va_end > end Then end = va_end
1303  flush_tlb_kernel_range(start, end)
1304  resched_threshold = lazy_max_pages() << 1
1306  spin_lock( & free_vmap_area_lock)
1308  nr = va_end - va_start >> PAGE_SHIFT determines the page size
1309  orig_start = va_start
1310  orig_end = va_end
1317  va = Merge de-allocated chunk of VA memory with previous* and next free blocks. If coalesce is not done a new* free area is inserted. If VA has been merged, it is* freed.
1320  If is_vmalloc_or_module_addr((void * )orig_start) Then kasan_release_vmalloc(orig_start, orig_end, va_start, va_end)
1324  atomic_long_sub(nr, & vmap_lazy_nr)
1326  If atomic_long_read( & vmap_lazy_nr) < resched_threshold Then cond_resched_lock( & free_vmap_area_lock)
1329  spin_unlock( & free_vmap_area_lock)
1330  Return true
Caller
NameDescribe
try_purge_vmap_area_lazyKick off a purge of the outstanding lazy areas. Don't bother if somebody* is already purging.
purge_vmap_area_lazy
_vm_unmap_aliases