函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\fork.c Create Date:2022-07-27 09:57:31
Last Modify:2020-03-17 11:04:53 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Decrement the use count and release all resources for an mm.

函数原型:void mmput(struct mm_struct *mm)

返回类型:void

参数:

类型参数名称
struct mm_struct *mm
1100  might_sleep()
1102  如果atomic_dec_and_test( & *@mm_users: The number of users including userspace. * Use mmget()/mmget_not_zero()/mmput() to modify. When this * drops to 0 (i.e. when the task exits and there are no other * temporary reference holders), we also release a reference on *@mm_count (which )则__mmput(mm)
调用者
名称描述
mm_access
dup_mmdup_mm() - duplicates an existing mm structure*@tsk: the task_struct with which the new mm will be associated.*@oldmm: the mm to duplicate.* Allocates a new mm structure and duplicates the provided @oldmm structure* content into it.
copy_process创建进程
exit_mmTurn us into a lazy TLB process if we* aren't already..
ptrace_access_vmAccess another process' address space via ptrace.* Source/target buffer must be kernel space,* Do not walk the page table directly, use get_user_pages
getrusage
cpuset_migrate_mm_workfn
cpuset_migrate_mm
update_tasks_nodemaskpdate_tasks_nodemask - Update the nodemasks of tasks in the cpuset.*@cs: the cpuset in which each task's mems_allowed mask needs to be changed* Iterate through each task of @cs updating its mems_allowed to the* effective cpuset's
cpuset_attach
trace_user_stack_printTRACE_USER_STACK
perf_event_addr_filters_applyUpdate event's address range filters based on the* task's existing mappings, if any.
build_map_info
register_for_each_vma
access_process_vmAccess another process' address space.* - source/target buffer must be kernel space
access_process_vmAccess another process' address space.* Source/target buffer must be kernel space,* Do not walk the page table directly, use get_user_pages
process_vm_rw_coreprocess_vm_rw_core - core of reading/writing pages from task specified*@pid: PID of process to read/write from/to*@iter: where to copy to/from locally*@rvec: iovec array specifying where to copy to/from in the other process*@riovcnt: size of rvec
try_to_unuseIf the boolean frontswap is true, only unuse pages_to_unuse pages;* pages_to_unuse==0 means all pages; ignored if frontswap is false
kernel_migrate_pages
kernel_move_pagesMove a list of pages in the address space of the currently executing* process.
mem_cgroup_clear_mc
mem_cgroup_can_attach
__do_execve_filesys_execve() executes a new program.
userfaultfd_release
userfaultfd_register
userfaultfd_unregister
userfaultfd_copy
userfaultfd_zeropage
io_sq_thread
__io_worker_unuseNote: drops the wqe->lock if returning true! The caller must re-acquire* the lock in that case. Some callers need to restart handling if this* happens, so we can't just re-acquire the lock on behalf of the caller.
get_cmdlineget_cmdline() - copy the cmdline value to a buffer.*@task: the task whose cmdline value to copy.*@buffer: the buffer to copy to.*@buflen: the length of the buffer. Larger cmdline values are truncated* to this length.
exec_mmap