函数逻辑报告 |
Source Code:mm\slub.c |
Create Date:2022-07-27 17:22:23 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:分配高速缓存区
函数原型:void *kmem_cache_alloc(struct kmem_cache *s, gfp_t gfpflags)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct kmem_cache * | s | |
| gfp_t | gfpflags |
| 2772 | ret等于slab_alloc(s, gfpflags, _RET_IP_) |
| 2774 | trace_kmem_cache_alloc(_RET_IP_, ret, The size of an object without metadata , The size of an object including metadata , gfpflags) |
| 2777 | 返回:ret |
| 名称 | 描述 |
|---|---|
| radix_tree_node_alloc | This assumes that the caller has performed appropriate preallocation, and* that the caller has pinned this thread of control to the current CPU. |
| __radix_tree_preload | Load up this CPU's radix_tree_node buffer with sufficient objects to* ensure that the addition of a single element in the tree cannot fail |
| xas_nomem | xas_nomem() - Allocate memory if needed.*@xas: XArray operation state.*@gfp: Memory allocation flags.* If we need to add new nodes to the XArray, we try to allocate memory* with GFP_NOWAIT while holding the lock, which will usually succeed. |
| __xas_nomem | __xas_nomem() - Drop locks and allocate memory if needed.*@xas: XArray operation state.*@gfp: Memory allocation flags.* Internal variant of xas_nomem().* Return: true if memory was needed, and was successfully allocated. |
| xas_alloc | |
| kmem_cache_oob | |
| memcg_accounted_kmem_cache | |
| kmem_cache_double_free | |
| kmem_cache_invalid_free | |
| do_kmem_cache_size | Test kmem_cache with given parameters: |
| do_kmem_cache_rcu_persistent | Check that the data written to an RCU-allocated object survives* reallocation. |
| btree_alloc | 为内存池分配功能 |
| lc_create | lc_create - prepares to track objects in an active set*@name: descriptive name only used in lc_seq_printf_stats and lc_seq_dump_details*@max_pending_changes: maximum changes to accumulate until a transaction is required*@e_count: number of elements |
| vm_area_dup | |
| copy_sighand | 复制信号句柄 |
| __sigqueue_alloc | allocate a new signal queue record* - this may be called without locks if and only if t == current, otherwise an* appropriate lock must be held to stop the target task from exiting |
| alloc_pid | 分配进程句柄 |
| create_nsproxy | |
| prepare_creds | prepare_creds - Prepare a new set of credentials for modification* Prepare a new set of task credentials for modification |
| prepare_kernel_cred | prepare_kernel_cred - Prepare a set of credentials for a kernel service*@daemon: A userspace daemon to be used as a reference* Prepare a set of credentials for a kernel service |
| create_uts_ns | |
| audit_buffer_alloc | |
| __trace_define_field | |
| trace_create_new_event | |
| __kmem_cache_alloc_bulk | |
| split_vma | split a vma into two pieces at address 'addr', a new vma is allocated either* for the first part or the tail. |
| ptlock_alloc | |
| anon_vma_alloc | |
| anon_vma_chain_alloc | |
| adjust_va_to_fit_type | |
| zswap_entry_cache_alloc | |
| mpol_new | This function just creates a new policy, does some check and simple* initialization. You must invoke mpol_set_nodemask() to set nodes. |
| __mpol_dup | Slow path of a mempolicy duplicate |
| sp_alloc | |
| shared_policy_replace | Replace a policy range. |
| alloc_stable_node | |
| slab_mem_going_online_callback | |
| mem_pool_alloc | Memory pool allocation and freeing. kmemleak_lock must not be held. |
| add_scan_area | Add a scanning area to the object. If at least one such area is added,* kmemleak will only scan these ranges rather than the whole memory block. |
| cache_alloc_handle | |
| cache_alloc_zspage | |
| alloc_slots | |
| fasync_alloc | |
| __d_alloc | __d_alloc - allocate a dcache entry*@sb: filesystem it will belong to*@name: qstr of the name* Allocates a dentry. It returns %NULL if there is insufficient memory* available. On a success the dentry is returned. The name passed in is |
| alloc_inode | |
| dup_fd | Allocate a new files structure and copy contents from the* passed in files structure.* errorp will be valid only when the returned files_struct is NULL. |
| copy_fs_struct | |
| bdev_alloc_inode | |
| do_blockdev_direct_IO | This is a library function for use by filesystem drivers |
| fsnotify_attach_connector_to_object | |
| fcntl_dirnotify | When a process calls fcntl to attach a dnotify watch to a directory it ends* up here. Allocate both a mark for fsnotify to add and a dnotify_struct to be* attached to the fsnotify_mark. |
| inotify_new_watch | |
| fanotify_alloc_event | |
| fanotify_add_new_mark | |
| ep_ptable_queue_proc | |
| ep_insert | Must be called with "mtx" held. |
| dup_userfaultfd | |
| SYSCALL_DEFINE1 | |
| aio_get_req | aio_get_req* Allocate a slot for an aio request.* Returns NULL if no requests are free.* The refcount is initialized to 2 - one for the async op completion,* one for the synchronous code that does this. |
| io_ring_ctx_alloc | |
| io_get_req | |
| locks_get_lock_context | |
| mb_cache_entry_create | mb_cache_entry_create - create entry in cache*@cache - cache where the entry should be created*@mask - gfp mask with which the entry should be allocated*@key - key of the entry*@value - value of the entry*@reusable - is the entry reusable by others? |
| alloc_dcookie |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |