函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\mempolicy.c Create Date:2022-07-27 17:06:46
Last Modify:2020-03-17 22:28:11 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:mpol_shared_policy_init - initialize shared policy for inode*@sp: pointer to inode shared policy*@mpol: struct mempolicy to install* Install non-NULL @mpol in inode's shared policy rb-tree.* On entry, the current task has a reference on a non-NULL @mpol.

函数原型:void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol)

返回类型:void

参数:

类型参数名称
struct shared_policy *sp
struct mempolicy *mpol
2603  root =
2604  rwlock_init( & lock)
2606  如果mpol
2609  NODEMASK_SCRATCH(scratch)
2611  如果非scratch则转到:put_mpol
2614  new等于This function just creates a new policy, does some check and simple* initialization. You must invoke mpol_set_nodemask() to set nodes.
2615  如果是错误则转到:free_scratch
2618  Protects ->fs, ->files, ->mm, ->group_info, ->comm, keyring* subscriptions and synchronises with wait4(). Also used in procfs. Also* pins the final release of task.io_context. Also protects ->cpuset and* ->cgroup.subsys[]. And ->vfork_done.
2619  ret等于mpol_set_nodemask is called after mpol_new() to set up the nodemask, if* any, for the new policy. mpol_new() has already validated the nodes* parameter with respect to the policy mode and flags. But, we need to
2620  task_unlock(当前进程)
2621  如果ret则转到:put_new
2625  vma_init( & pvma, NULL)
2626  The first byte after our end addresswithin vm_mm. 等于TASK_SIZE
2627  mpol_set_shared_policy(sp, & pvma, new)
2629  put_new :
2630  mpol_put(new)
2631  free_scratch :
2632  NODEMASK_SCRATCH_FREE(scratch)
2633  put_mpol :
2634  mpol_put(mpol)