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 |