函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\sched\mm.h Create Date:2022-07-27 06:42:44
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:mmdrop

函数原型:static inline void mmdrop(struct mm_struct *mm)

返回类型:void

参数:

类型参数名称
struct mm_struct *mm
48  如果此条件成立可能性小(为编译器优化)(atomic_dec_and_test( & *@mm_count: The number of references to &struct mm_struct * (@mm_users count as 1). * Use mmgrab()/mmdrop() to modify. When this drops to 0, the * &struct mm_struct is freed.))则Called when the last reference to the mm* is dropped: either by a lazy thread or by* mmput. Free the page directory and the mm.
调用者
名称描述
__mmput
finish_task_switchsh_task_switch - clean up after a task-switch*@prev: the thread we just switched away from
drop_futex_key_refsDrop a reference to the resource addressed by a key.* The hash bucket spinlock must not be held. This is* a no-op for private futexes, see comment in the get* counterpart.
__oom_kill_process
use_mmse_mm* Makes the calling kernel thread take on the specified* mm context.* (Note: this routine is intended to be called only* from a kernel thread context)
mmu_notifier_unregisterThis releases the mm_count pin automatically and frees the mm* structure if it was the last user of it. It serializes against* running mmu notifiers with SRCU and against mmu_notifier_unregister* with the unregister lock + SRCU
mmu_notifier_free_rcu
mmu_interval_notifier_removemmu_interval_notifier_remove - Remove a interval notifier*@mni: Interval notifier to unregister* This function must be paired with mmu_interval_notifier_insert()
scan_get_next_rmap_item
__ksm_exit
__khugepaged_exit
collect_mm_slot
bprm_mm_initCreate a new mm_struct and populate it with a temporary stack* vm_area_struct. We don't have enough context at this point to set the stack* flags, permissions, and offset, so we use temporary values. We'll update* them later in setup_arg_pages().
exec_mmap
userfaultfd_ctx_putserfaultfd_ctx_put - Releases a reference to the internal userfaultfd* context.*@ctx: [in] Pointer to userfaultfd context.* The userfaultfd context reference must have been previously acquired either* with userfaultfd_ctx_get() or userfaultfd_ctx_fdget().
SYSCALL_DEFINE1
io_sq_offload_start
io_ring_ctx_free