函数逻辑报告 |
Source Code:kernel\locking\rwsem.c |
Create Date:2022-07-27 10:48:53 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:lease a read lock
函数原型:void up_read(struct rw_semaphore *sem)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct rw_semaphore * | sem |
1576 | rwsem_release( & dep_map, _RET_IP_) |
1577 | lock after reading |
名称 | 描述 |
---|---|
digsig_verify_rsa | RSA公钥签名验证 |
exit_mm | Turn us into a lazy TLB process if we* aren't already.. |
SYSCALL_DEFINE1 | |
SYSCALL_DEFINE1 | Old cruft |
SYSCALL_DEFINE1 | |
SYSCALL_DEFINE2 | |
prctl_set_mm_exe_file | |
prctl_set_mm | |
usermodehelper_read_trylock | |
usermodehelper_read_lock_wait | |
usermodehelper_read_unlock | |
__blocking_notifier_call_chain | __blocking_notifier_call_chain - Call functions in a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@val: Value passed unmodified to notifier function*@v: Pointer passed unmodified to notifier function |
proc_sched_autogroup_show_task | |
torture_rwsem_up_read | |
get_posix_clock | Returns NULL if the posix_clock instance attached to 'fp' is old and stale. |
put_posix_clock | |
posix_clock_open | |
fault_in_user_writeable | ault_in_user_writeable() - Fault in user address and verify RW access*@uaddr: pointer to faulting user space address* Slow path to fixup the fault we just took in the atomic write* access to @uaddr |
acct_collect | acct_collect - collect accounting information into pacct_struct*@exitcode: task exit code*@group_dead: not 0, if this thread is the last one in the process. |
clone_uts_ns | Clone a new ns copying an original utsname, setting refcount to 1*@old_ns: namespace to clone* Return ERR_PTR(-ENOMEM) on error (failure to allocate), new ns otherwise |
proc_do_uts_string | Special case of dostring for the UTS structure. This has locks* to observe. Should this be in kernel/sys.c ???? |
send_cpu_listeners | Send taskstats data in @skb to listeners registered for @cpu's exit data |
seq_print_user_ip | |
trace_event_read_unlock | |
bpf_prog_offload_verifier_prep | |
bpf_prog_offload_verify_insn | |
bpf_prog_offload_finalize | |
bpf_prog_offload_replace_insn | |
bpf_prog_offload_remove_insns | |
bpf_prog_offload_translate | |
bpf_prog_offload_info_fill_ns | |
bpf_prog_offload_info_fill | |
bpf_map_offload_lookup_elem | |
bpf_map_offload_update_elem | |
bpf_map_offload_delete_elem | |
bpf_map_offload_get_next_key | |
bpf_map_offload_info_fill_ns | |
bpf_offload_dev_match | |
bpf_offload_prog_map_match | |
stack_map_get_build_id_offset | |
perf_event_addr_filters_apply | Update event's address range filters based on the* task's existing mappings, if any. |
filter_chain | |
unapply_uprobe | |
find_active_uprobe | |
handler_chain | |
handle_uretprobe_chain | |
__lock_page_or_retry | Return values:* 1 - page is locked; mmap_sem is still held |
lock_page_maybe_drop_mmap | lock_page_maybe_drop_mmap - lock the page, possibly dropping the mmap_sem*@vmf - the vm_fault for this fault.*@page - the page to lock.*@fpin - the pointer to the file we may pin (or is already pinned). |
oom_reap_task_mm | Reaps the address space of the give task.* Returns true on success and false if none or part of the address space* has been reclaimed and the caller should retry later. |
shrink_slab_memcg | |
shrink_slab | shrink_slab - shrink slab caches*@gfp_mask: allocation context*@nid: node whose slab caches to target*@memcg: memory cgroup whose slab caches to target*@priority: the reclaim priority* Call the shrink functions to age shrinkable caches |
__get_user_pages_locked | |
__mm_populate | __mm_populate - populate and/or mlock pages within a range of address space.* This is used to implement mlock() and the MAP_POPULATE / MAP_LOCKED mmap* flags. VMAs must be already marked with the desired vm_flags, and* mmap_sem must not be held. |
get_user_pages_unlocked | get_user_pages_unlocked() is suitable to replace the form:* down_read(&mm->mmap_sem);* get_user_pages(tsk, mm, |
__gup_longterm_unlocked | |
__access_remote_vm | |
__access_remote_vm | Access another process' address space as given in mm. If non-NULL, use the* given task for page fault accounting. |
print_vma_addr | Print the name of a VMA. |
SYSCALL_DEFINE3 | The mincore(2) system call |
SYSCALL_DEFINE1 | |
__vm_munmap | |
SYSCALL_DEFINE5 | Expand (or shrink) an existing mapping, potentially moving it at the* same time (controlled by the MREMAP_MAYMOVE flag and available VM space)* MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise* This option implies MREMAP_MAYMOVE. |
SYSCALL_DEFINE3 | MS_SYNC syncs the entire file - including mappings |
page_lock_anon_vma_read | Similar to page_get_anon_vma() except it locks the anon_vma.* Its a little more complex as it tries to keep the fast path to a single* atomic op -- the trylock. If we fail the trylock, we fall back to getting a |
process_vm_rw_single_vec | process_vm_rw_single_vec - read/write pages from task specified*@addr: start memory address of target process*@len: size of area to copy to/from*@iter: where to copy to/from locally*@process_pages: struct pages area that can store at least* |
madvise_willneed | Schedule all required I/O operations. Do not wait for completion. |
madvise_remove | Application wants to free up the pages and associated backing store.* This is effectively punching a hole into the middle of a file. |
SYSCALL_DEFINE3 | The madvise(2) system call |
unuse_mm | |
lookup_node | |
do_get_mempolicy | Retrieve NUMA policy |
do_migrate_pages | Move pages between the two nodesets so as to preserve the physical* layout as much as possible.* Returns the number of page that could not be moved. |
break_cow | |
get_mergeable_page | |
try_to_merge_with_ksm_page | ry_to_merge_with_ksm_page - like try_to_merge_two_pages,* but no new kernel page is allocated: kpage must already be a ksm page.* This function returns 0 if the pages were merged, -EFAULT otherwise. |
cmp_and_merge_page | mp_and_merge_page - first see if page can be merged into the stable tree;* if not, compare checksum to previous and if it's the same, see if page can* be inserted into the unstable tree, or merged with a page already there and |
scan_get_next_rmap_item | |
add_page_for_migration | Resolves the given address to a struct page, isolates it from the LRU and* puts it to the given pagelist |
do_pages_stat_array | Determine the nodes of an array of pages and store it in an array of status. |
collapse_huge_page | |
khugepaged_scan_mm_slot | |
mem_cgroup_count_precharge | |
mem_cgroup_move_charge | |
__mcopy_atomic_hugetlb | __mcopy_atomic processing for HUGETLB vmas. Note that this routine is* called with mmap_sem held, it will release mmap_sem before returning. |
__mcopy_atomic | |
get_vaddr_frames | get_vaddr_frames() - map virtual addresses to pfns*@start: starting user address*@nr_frames: number of pages / pfns from start to map*@gup_flags: flags modifying lookup behaviour*@vec: structure which receives pages / pfns of the addresses mapped. |
msgctl_info | |
semctl_info | |
exit_shm | Locking assumes this will only be called with task == current |
shmctl_ipc_info | |
shmctl_shm_info | |
get_gendisk | get_gendisk - get partitioning information for a given device*@devt: device to get partitioning information for*@partno: returned partition index* This function gets the structure containing partitioning* information for the given device @devt. |
key_type_put | Unlock a key type locked by key_type_lookup(). |
unregister_key_type | register_key_type - Unregister a type of key.*@ktype: The key type.* Unregister a key type and mark all the extant keys of this type as dead.* Those keys of this type are then destroyed to get rid of their payloads and |
keyctl_read_key | Read a key's payload |
lookup_user_key | Look up a key ID given us by userspace with a given permissions mask to get* the key it refers to.* Flags can be passed to request that special keyrings be created if referred* to directly, to permit partially constructed keys to be found and to skip |
construct_get_dest_keyring | Get the appropriate destination keyring for the request.* The keyring selected is returned with an extra reference upon it which the* caller must release. |
request_key_auth_new | Create an authorisation token for /sbin/request-key or whoever to gain* access to the caller's security data. |
key_get_persistent | Get the persistent keyring for a specific UID and link it to the nominated* keyring. |
dh_data_from_key | |
request_user_key | quest_user_key - request the user key* Use a user provided key to encrypt/decrypt an encrypted-key. |
encrypted_key_decrypt | |
encrypted_read | rypted_read - format and copy the encrypted data to userspace* The resulting datablob format is:* |
evm_init_key | Get the key from the TPM for the SHA1-HMAC |
trylock_super | rylock_super - try to grab ->s_umount shared*@sb: reference we are trying to grab* Try to prevent fs shutdown. This is used in places where we* cannot take an active reference but we need to ensure that the |
drop_super | |
iterate_supers | rate_supers - call function for all active superblocks*@f: function to call*@arg: argument to pass to it* Scans the superblock list and calls given function, passing it* locked superblock and given argument. |
iterate_supers_type | rate_supers_type - call function for superblocks of given type*@type: fs type*@f: function to call*@arg: argument to pass to it* Scans the superblock list and calls given function, passing it* locked superblock and given argument. |
__get_super | |
__get_super_thawed | |
user_get_super | |
exec_mmap | |
__d_unalias | This helper attempts to cope with remotely renamed directories* It assumes that the caller is already holding* Note: If ever the locking in lock_rename() changes, then please* remember to update this too... |
__is_local_mountpoint | __is_local_mountpoint - Test to see if dentry is a mountpoint in the* current mount namespace |
m_stop | |
may_umount | may_umount - check if a mount point is busy*@mnt: root of mount* This is called to check if a mount point has any* open files, pwds, chroots or sub mounts. If the* mount has sub mounts this will return busy* regardless of whether the sub mounts are busy. |
mnt_already_visible | |
__writeback_inodes_wb | |
try_to_writeback_inodes_sb | ry_to_writeback_inodes_sb - try to start writeback if none underway*@sb: the superblock*@reason: reason why some writeback work was initiated* Invoke __writeback_inodes_sb_nr if no writeback is currently underway. |
SYSCALL_DEFINE1 | sync a single super |
handle_userfault | The locking rules involved in returning VM_FAULT_RETRY depending on* FAULT_FLAG_ALLOW_RETRY, FAULT_FLAG_RETRY_NOWAIT and* FAULT_FLAG_KILLABLE are not straightforward |
userfaultfd_remove | |
io_sqe_buffer_register | |
try_to_lock_encrypted_files | |
fscrypt_ioctl_get_key_status | Retrieve the status of an fscrypt master encryption key |
setup_file_encryption_key | Find the master key, then set up the inode's actual encryption key.* If the master key is found in the filesystem-level keyring, then the* corresponding 'struct key' is returned in *master_key_ret with* ->mk_secret_sem read-locked |
fscrypt_get_encryption_info | |
find_and_lock_process_key | Search the current task's subscribed keyrings for a "logon" key with* description prefix:descriptor, and if found acquire a read lock on it and* return a pointer to its validated payload in *payload_ret. |
fscrypt_setup_v1_file_key_via_subscribed_keyrings | |
format_corename | rmat_corename will inspect the pattern parameter, and output a* name into corename, which must have space for at least* CORENAME_MAX_SIZE bytes plus one byte for the zero terminator. |
dquot_disable | Turn quota off on a device. type == -1 ==> quotaoff for all types (umount) |
dquot_load_quota_sb | |
dquot_resume | Reenable quotas on remount RW |
v1_read_file_info | |
v2_read_file_info | Read information header from quota file |
v2_read_dquot | |
v2_write_dquot | |
v2_get_next_id | |
test_func | |
read_ldt | |
sysvipc_proc_stop | |
key_type_lookup | Find and lock the specified key type against removal.* We return with the sem read-locked if successful. If the type wasn't* available -ENOKEY is returned instead. |
selinux_xfrm_notify_policyload | |
super_cache_scan | One thing we have to be careful of with a per-sb shrinker is that we don't* drop the last active reference to the superblock from within the shrinker.* If that happens we could trigger unregistering the shrinker from within the |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |