Function report |
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 activity | Download SCCT | Chinese |
Name:Purges all lazily-freed vmap areas.
Proto:static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end)
Type:bool
Parameter:
Type | Parameter | Name |
---|---|---|
unsigned long | start | |
unsigned long | end |
1283 | If Value for the false possibility is greater at compile time(valist == NULL) Then Return false |
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 |
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 |
Name | Describe |
---|---|
try_purge_vmap_area_lazy | Kick off a purge of the outstanding lazy areas. Don't bother if somebody* is already purging. |
purge_vmap_area_lazy | |
_vm_unmap_aliases |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |