Function report | 
Source Code:mm\kmemleak.c | 
Create Date:2022-07-28 16:21:29 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Create the metadata (struct kmemleak_object) corresponding to an allocated* memory block and add it to the object_list and object_tree_root.
Proto:static struct kmemleak_object *create_object(unsigned long ptr, size_t size, int min_count, gfp_t gfp)
Type:struct kmemleak_object
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| unsigned long | ptr | |
| size_t | size | |
| int | min_count | |
| gfp_t | gfp | 
| 579 | If Not object Then | 
| 588 | Process spin lock initialization( & lock) | 
| 596 | creation timestamp = jiffies | 
| 601 | pid of the current task = 0 | 
| 602 | strncpy(xecutable name , "hardirq", size of xecutable name ) | 
| 603 | Else if in_serving_softirq() Then | 
| 604 | pid of the current task = 0 | 
| 605 | strncpy(xecutable name , "softirq", size of xecutable name ) | 
| 606 | Else | 
| 607 | pid of the current task = pid | 
| 614 | strncpy(xecutable name , comm, size of xecutable name ) | 
| 622 | untagged_ptr = kasan_reset_tag((void * )ptr) | 
| 624 | max_addr = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(max_addr, untagged_ptr + size) | 
| 626 | rb_parent = NULL | 
| 629 | parent = rb_entry(rb_parent, structkmemleak_object, rb_node) | 
| 634 | Else | 
| 635 | Macro invoked when a serious kmemleak condition occurred and cannot be* recovered from. Kmemleak will be disabled and further allocation/freeing* tracing no longer available.("Cannot insert 0x%lx into the object search tree (overlaps existing)\n", ptr) | 
| 643 | object = NULL | 
| 644 | Go to out | 
| 647 | rb_link_node( & rb_node, rb_parent, link) | 
| 648 | rb_insert_color( & rb_node, & search tree for object boundaries ) | 
| 651 | out : | 
| 652 | write_unlock_irqrestore( & w_lock protecting the access to object_list and object_tree_root , flags) | 
| 653 | Return object | 
| Name | Describe | 
|---|---|
| delete_object_part | Look up the metadata (struct kmemleak_object) corresponding to ptr and* delete it. If the memory block is partially freed, the function may create* additional metadata for the remaining parts of the block. | 
| kmemleak_alloc | kmemleak_alloc - register a newly allocated object*@ptr: pointer to beginning of the object*@size: size of the object*@min_count: minimum number of references to this object. If during memory* scanning a number of references less than @min_count is found, | 
| kmemleak_alloc_percpu | kmemleak_alloc_percpu - register a newly allocated __percpu object*@ptr: __percpu pointer to beginning of the object*@size: size of the object*@gfp: flags used for kmemleak internal memory allocations* This function is called from the kernel percpu | 
| kmemleak_vmalloc | kmemleak_vmalloc - register a newly vmalloc'ed object*@area: pointer to vm_struct*@size: size of the object*@gfp: __vmalloc() flags used for kmemleak internal memory allocations* This function is called from the vmalloc() kernel allocator when a new | 
| kmemleak_init | Kmemleak initialization. | 
| 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  |